This is an old revision of the document!
Configure Networking And Hostname Resolution Statically Or Dynamically
General Information
Networking has changed from RHEL 6 to 7. You can still edit network scripts in /etc/sysconfig/network-scripts/, but the “preferred” method is using front end tools that tie into the NetworkManager service.
Troubleshooting Tools
Show IP Address of Devices
ip addr show
- ifconfig is deprecated in RHEL 7.
Show all Established Connections
ss
Show Established and Listening TCP Connections
ss -ant
flags:
- a ⇒ show both established and listening
- t ⇒ show tcp connections
- n ⇒ do not resolve service names (ports)
Other tools to use:
- ping -c 5 (send 5 pings)
- traceroute
- tracepath
- netstat - netstat has been deprecated (use ss instead), but can still be installed as part of the net-tools package
Network Manager
NetworkManager is the default network service in RHEL 7.
- Main Service = NetworkManager.service
- Tools to interface with NetworkManager
- nm-connection-editor (GUI)
- nmtui (ncurses based)
- nmcli (cli)
- Fallback service = network.service
- This uses the traditional network scripts in /etc/sysconfig/network-scripts/ as a fallback if NetworkManager is not in control of an interface.
Open GUI for network connections (GUI Only)
nm-connection-editor
Open text based wizard
nmtui
CLI Tool: nmcli
nmcli makes configuration changes to files in: /etc/sysconfig/network-scripts/
These files can alternatively be modified manually.
Network Device Status
nmcli dev status
Show all connection configurations
nmcli con show
- Configurations location: /etc/sysconfig/network-scripts/
Example: Create new connection (dhcp)
nmcli con add con-name "mycon" autoconnect yes type ethernet ifname eth1
Example: Create new connection (static ip)
nmcli con add con-name "mycon-static" autoconnect yes type ethernet ifname eth1 ipv4.method manual ip4 10.0.0.5/24 gw4 10.0.0.254
- The above produces the following config:
- /etc/sysconfig/network-scripts/ifcfg-mycon-static
TYPE=Ethernet # from: 'type ethernet' BOOTPROTO=none # from: 'ipv4.method manual' IPADDR=10.0.0.5 # from: 'ip4 10.0.0.5/24' PREFIX=24 # from: 'ipv 10.0.0.5/24' GATEWAY=10.0.0.254 # from: 'gw4 10.0.0.254' DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes IPV6_FAILURE_FATAL=no NAME=mycon-static # from: 'con-name "mycon-static"' UUID=f7e0c9af-715d-43da-9576-e6ce218d0c28 DEVICE=eth1 # from: 'ifname eth1' ONBOOT=yes # from: 'autoconnect yes'
Show only active connections
nmcli con show --active
Bring connections up/down
nmcli con down "mycon-static" nmcli con up "mycon"
Change an existing connection's IP and Gateway
nmcli con mod eth0 ipv4.addresses 192.168.1.50/24 nmcli con mod eth0 ipv4.gateway 192.168.1.254 nmcli con mod eth0 ipv4.method manual nmcli con up eth0
- Changes do not take place until “nmcli con up eth0”
Hostname Configuration
View current hostname
hostname
Set temporary(transient) hostname
hostname myserver.domain.com exec bash
View detailed hostname information
hostnamectl
- static hostname (stored in: /etc/hostname) - used to initialize kernel at boot (persistent)
- transient hostname - assigned temporarily due to network configuration, may revert back to static if network connectivity is lost
- pretty hostname (stored in: /etc/machine-info) - little restrictions on characters used
Set persistent(static) hostname
hostnamectl set-hostname myserver.com
Order of name resolution (hosts entry)
/etc/nsswitch.conf #....other entries above # hosts: search local files and then DNS hosts: files dns #....other entries below
System wide dns name server entries (static or network manager generated)
/etc/resolv.conf # Generated by NetworkManager search us-west-2.compute.internal nameserver 172.31.0.2
Local system hostname resolution and example entry
/etc/hosts # IP Hostname Aliases 10.1.1.2 myserver01.example.com website.domain.com
Add DNS (not replace) for eth0 with nmcli or with config file
- Using nmcli
nmcli con show (observe NAME field) nmcli con mod "System eth0" +ipv4.dns 8.8.8.8
- Edit files directly
vim /etc/sysconfig/network-scripts/ifcfg-eth0 DNS1=8.8.8.8
- Apply changes: restart NetworkManager or issue nmcli command
- nmcli method
nmcli con up eth0 * Service restart<code bash>systemctl restart NetworkManager