====== 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-staticTYPE=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 * nmcli method nmcli con show (observe NAME field) nmcli con mod "System eth0" +ipv4.dns 8.8.8.8 * Edit files directly method vim /etc/sysconfig/network-scripts/ifcfg-eth0 DNS1=8.8.8.8 * Apply changes: Issue nmcli command or restart NetworkManager * nmcli methodnmcli con up eth0 * Service restartsystemctl restart NetworkManager ----