Understanding basic Linux networking on Red Hat 9 involves configuring network interfaces, managing network services, troubleshooting common issues, and ensuring connectivity and security. By mastering these concepts and commands, you can effectively configure and manage network connections on your Red Hat 9 system.
1. Network Configuration Files:
/etc/sysconfig/network-scripts/ifcfg-eth0: Configuration file for the first Ethernet interface. Similar files exist for other interfaces (e.g., ifcfg-eth1). Various Linux distributions have spread interface configurations over many places: Debian and its derivatives traditionally use /etc/network/interfaces, CentOS and related distros use /etc/sysconfig/network-scripts, and so on. With more distros adopting NetworkManager, keyfiles in /etc/NetworkManager/system-connections have become the canonical place for network connections on Linux.
/etc/sysconfig/network: Global network configuration file containing hostname, gateway, and DNS settings.
/etc/resolv.conf: DNS resolver configuration file specifying DNS server IP addresses.
2. Network Configuration Commands:
ifconfig: Displays or configures network interfaces and their IP addresses.
Example: ifconfig eth0 192.168.1.10 netmask 255.255.255.0
[devnixops@uadev etc]$ ifconfig
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.22.131 netmask 255.255.255.0 broadcast 192.168.22.255
inet6 fe80::20c:29ff:fe50:a628 prefixlen 64 scopeid 0x20
ether 00:0c:29:50:a6:28 txqueuelen 1000 (Ethernet)
RX packets 41561 bytes 57517469 (54.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6338 bytes 487668 (476.2 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 46 memory 0x3fe00000-3fe2000
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 19 bytes 2247 (2.1 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 19 bytes 2247 (2.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions
[devnixops@uadev etc]$
route: Displays or configures the IP routing table.
Example: route -n to show the routing table.
[devnixops@uadev etc]$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 100 0 0 ens160
192.168.22.0 0.0.0.0 255.255.255.0 U 100 0 0 ens160
[devnixops@uadev etc]$
Example: hostname redhat9.example.com
ping: Tests connectivity to another host by sending ICMP echo requests. Example: ping google.com
[devnixops@uadev etc]$ ping google.com
PING google.com (142.250.195.46) 56(84) bytes of data.
64 bytes from maa03s37-in-f14.1e100.net (142.250.195.46): icmp_seq=1 ttl=128 time=19.0 ms
64 bytes from maa03s37-in-f14.1e100.net (142.250.195.46): icmp_seq=2 ttl=128 time=21.6 ms
64 bytes from maa03s37-in-f14.1e100.net (142.250.195.46): icmp_seq=3 ttl=128 time=20.4 ms
^C
--- google.com ping statistics ---
8 packets transmitted, 8 received, 0% packet loss, time 7009ms
rtt min/avg/max/mdev = 19.046/20.709/21.553/0.717 ms
[devnixops@uadev etc]$
3. Network Services:
iptables: Command-line firewall utility for managing firewall rules. Example: iptables -A INPUT -p tcp --dport 22 -j ACCEPT to allow SSH connections.
/etc/hosts.allow and /etc/hosts.deny: Access control files for TCP Wrappers, allowing or denying access to network services based on hostnames or IP addresses.
/etc/services: File containing a list of network services and their associated port numbers.
4. Troubleshooting Network Issues:
– Check network interface status with ifconfig.
– Verify IP configuration with ifconfig and route.
– Test connectivity using ping.
– Check DNS resolution with nslookup or dig.
– Review firewall rules with iptables.
5. Network Daemon Management:
Start, stop, and restart network services using service. Example: service network restart to restart the network service.
[devnixops@uadev ~]$ systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; preset: enabled)
Active: active (running) since Mon 2024-05-27 22:57:52 IST; 4 days ago
Docs: man:NetworkManager(8)
Main PID: 926 (NetworkManager)
Tasks: 3 (limit: 10116)
Memory: 7.9M
CPU: 1.863s
CGroup: /system.slice/NetworkManager.service
└─926 /usr/sbin/NetworkManager --no-daemon
Jun 01 10:14:20 uadev NetworkManager[926]: [1717217060.9497] dhcp4 (ens160): state changed new lease, address=192.1>
Jun 01 10:29:20 uadev NetworkManager[926]: [1717217960.9532] dhcp4 (ens160): state changed new lease, address=192.1>
Jun 01 10:44:20 uadev NetworkManager[926]: [1717218860.9491] dhcp4 (ens160): state changed new lease, address=192.1>
Jun 01 10:59:20 uadev NetworkManager[926]: [1717219760.9499] dhcp4 (ens160): state changed new lease, address=192.1>
Jun 01 11:14:20 uadev NetworkManager[926]: [1717220660.9558] dhcp4 (ens160): state changed new lease, address=192.1>
Jun 01 11:28:07 uadev NetworkManager[926]: [1717221487.7386] device (ens160): carrier: link connected
Jun 01 17:17:55 uadev NetworkManager[926]: [1717242475.7306] dhcp4 (ens160): state changed new lease, address=192.1>
Jun 01 17:18:41 uadev NetworkManager[926]: [1717242521.9354] device (ens160): carrier: link connected
Jun 01 17:37:26 uadev NetworkManager[926]: [1717243646.2269] dhcp4 (ens160): state changed new lease, address=192.1>
Jun 01 17:44:15 uadev NetworkManager[926]: [1717244055.8304] device (ens160): carrier: link connected
[devnixops@uadev ~]$
nmcli can be used in modern linux operating systems.
[devnixops@uadev ~]$ nmcli
ens160: connected to ens160
"Intel 82574L"
ethernet (e1000e), 00:0C:29:50:A6:28, hw, mtu 1500
ip4 default
inet4 192.168.22.131/24
route4 default via 192.168.22.2 metric 100
route4 192.168.22.0/24 metric 100
inet6 fe80::20c:29ff:fe50:a628/64
route6 fe80::/64 metric 1024
lo: connected (externally) to lo
"lo"
loopback (unknown), 00:00:00:00:00:00, sw, mtu 65536
inet4 127.0.0.1/8
inet6 ::1/128
route6 ::1/128 metric 256
DNS configuration:
servers: 192.168.22.2
domains: localdomain
interface: ens160
Use "nmcli device show" to get complete information about known devices and
"nmcli connection show" to get an overview on active connection profiles.
Consult nmcli(1) and nmcli-examples(7) manual pages for complete usage details.
[devnixops@uadev ~]$
Enable or disable network services to start at boot using chkconfig. It manages only sysV services and can’t be used to manage systemd services. To manage systemd services , use the systemctl command.
[devnixops@uadev ~]$ systemctl list-unit-files
UNIT FILE STATE PRESET
proc-sys-fs-binfmt_misc.automount static -
-.mount generated -
boot-efi.mount generated -
boot.mount generated -
dev-hugepages.mount static -
dev-mqueue.mount static -
proc-sys-fs-binfmt_misc.mount disabled disabled
run-vmblockx2dfuse.mount enabled disabled
sys-fs-fuse-connections.mount static -
sys-kernel-config.mount static -
sys-kernel-debug.mount static -
sys-kernel-tracing.mount static -
tmp.mount disabled disabled
cups.path enabled enabled
ostree-finalize-staged.path disabled disabled
systemd-ask-password-console.path static -
systemd-ask-password-plymouth.path static -
systemd-ask-password-wall.path static -
session-2.scope transient -
session-c1.scope transient -
accounts-daemon.service enabled enabled
alsa-restore.service static -
alsa-state.service static -
arp-ethers.service disabled disabled
atd.service enabled enabled
auditd.service enabled enabled