====== 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
----