Networking Concepts in RHEL
Table of Contents
user01@rhel10-vm5:~$ cat /etc/protocols
# /etc/protocols:
# $Id: protocols,v 1.12 2016/07/08 12:27 ovasik Exp $
#
# Internet (IP) protocols
#
# from: @(#)protocols 5.1 (Berkeley) 4/17/89
#
# Updated for NetBSD based on RFC 1340, Assigned Numbers (July 1992).
# Last IANA update included dated 2011-05-03
#
# See also http://www.iana.org/assignments/protocol-numbers
ip 0 IP # internet protocol, pseudo protocol number
hopopt 0 HOPOPT # hop-by-hop options for ipv6
icmp 1 ICMP # internet control message protocol
igmp 2 IGMP # internet group management protocol
ggp 3 GGP # gateway-gateway protocol
ipv4 4 IPv4 # IPv4 encapsulation
st 5 ST # ST datagram mode
tcp 6 TCP # transmission control protocol
cbt 7 CBT # CBT, Tony Ballardie <[email protected]>
egp 8 EGP # exterior gateway protocol
igp 9 IGP # any private interior gateway (Cisco: for IGRP)
bbn-rcc 10 BBN-RCC-MON # BBN RCC Monitoring
nvp 11 NVP-II # Network Voice Protocol
pup 12 PUP # PARC universal packet protocol
argus 13 ARGUS # ARGUS (deprecated)
<---- output omitted ---->
user01@rhel10-vm5:~$ ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host noprefixroute
valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 08:00:27:41:01:e5 brd ff:ff:ff:ff:ff:ff
altname enx0800274101e5
inet 192.168.56.103/24 brd 192.168.56.255 scope global dynamic noprefixroute enp0s3
valid_lft 437sec preferred_lft 437sec
inet6 fe80::a00:27ff:fe41:1e5/64 scope link noprefixroute
valid_lft forever preferred_lft forever
user01@rhel10-vm5:~$
NetworkManager.service is the Linux unit that runs the daemon responsible for networking on RHEL. One of the tools to interact with NetworkManager is nmcli.
user01@rhel10-vm5:~$ systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; preset: enabled)
Active: active (running) since Mon 2026-10-26 23:50:49 EDT; 7min ago
Invocation: 29c372a1076f467a8f1c3a9fb72575a8
Docs: man:NetworkManager(8)
Main PID: 1134 (NetworkManager)
Tasks: 4 (limit: 10659)
Memory: 7.3M (peak: 7.8M)
CPU: 135ms
CGroup: /system.slice/NetworkManager.service
└─1134 /usr/sbin/NetworkManager --no-daemon
Oct 26 23:50:51 rhel10-vm5 NetworkManager[1134]: <info> [1793073051.8722] dhcp4 (enp0s3): state changed new lease, address=192.168.56.103
Oct 26 23:50:51 rhel10-vm5 NetworkManager[1134]: <info> [1793073051.8876] device (enp0s3): state change: ip-config -> ip-check (reason 'none', managed-type: 'full')
Oct 26 23:50:51 rhel10-vm5 NetworkManager[1134]: <info> [1793073051.8995] device (enp0s3): state change: ip-check -> secondaries (reason 'none', managed-type: 'full')
Oct 26 23:50:51 rhel10-vm5 NetworkManager[1134]: <info> [1793073051.9003] device (enp0s3): state change: secondaries -> activated (reason 'none', managed-type: 'full')
Oct 26 23:50:51 rhel10-vm5 NetworkManager[1134]: <info> [1793073051.9030] manager: NetworkManager state is now CONNECTED_LOCAL
Oct 26 23:50:51 rhel10-vm5 NetworkManager[1134]: <info> [1793073051.9034] device (enp0s3): Activation: successful, device activated.
Oct 26 23:50:51 rhel10-vm5 NetworkManager[1134]: <info> [1793073051.9042] manager: startup complete
Oct 26 23:50:52 rhel10-vm5 NetworkManager[1134]: <info> [1793073052.9290] agent-manager: agent[4d5948468dc9883c,:1.27/org.gnome.Shell.NetworkAgent/42]: agent registered
Oct 26 23:51:02 rhel10-vm5 NetworkManager[1134]: <info> [1793073062.0480] agent-manager: agent[41601fe551b2082e,:1.78/org.gnome.Shell.NetworkAgent/1000]: agent registered
Oct 26 23:55:51 rhel10-vm5 NetworkManager[1134]: <info> [1793073351.6937] dhcp4 (enp0s3): state changed new lease, address=192.168.56.103
user01@rhel10-vm5:~$
network devices#
A network adapter, or NIC, contains one or more network interfaces. Each network interface is represented by a network device in RHEL.
To list network devices, I can use nmcli device show or an abbreviation of the arguments:
user01@rhel10-vm5:~$ nmcli d s
DEVICE TYPE STATE CONNECTION
enp0s3 ethernet connected enp0s3
lo loopback connected (externally) lo
user01@rhel10-vm5:~$
The lo network device is by default active in RHEL.
Both network devices show connected. The enp0s3 network device has an ethernet type and is assigned the connection enp0s3.
Point of confusion: the network device and the assigned connection profile might have the same name. The /etc/NetworkManager/system-connections/enp0s3.nmconnection is the network connection profile file, not the network device.
connection profiles#
A connection profile is a collection of IP settings. A connection profile must be assigned an active network device by NetworkManager, using one of the available tools.
For each connection profile, a connection profile file is created under /etc/NetworkManager/system-connections/:
user01@rhel10-vm5:~$ ls /etc/NetworkManager/system-connections/
enp0s3.nmconnection
user01@rhel10-vm5:~$ ls -l /etc/NetworkManager/system-connections/
total 4
-rw-------. 1 root root 268 Oct 17 13:04 enp0s3.nmconnection
user01@rhel10-vm5:~$ sudo more /etc/NetworkManager/system-connections/enp0s3.nmconnection
[sudo] password for user01:
[connection]
id=enp0s3
uuid=b3e92c22-8cf7-3bf5-bce2-6bdd208fcca7
type=ethernet
autoconnect-priority=-999
interface-name=enp0s3
timestamp=1792256569
[ethernet]
[ipv4]
dns=1.1.1.1;
dns-search=hola.muchacho;
method=auto
[ipv6]
addr-gen-mode=eui64
method=auto
[proxy]
user01@rhel10-vm5:~$
I can generate a brief list of connection profiles with nmcli connection show or using abbreviated arguments:
user01@rhel10-vm5:~$ nmcli c s
NAME UUID TYPE DEVICE
enp0s3 b3e92c22-8cf7-3bf5-bce2-6bdd208fcca7 ethernet enp0s3
lo 76c0b07a-fa09-4896-a1d6-8e3b925a432d loopback lo
user01@rhel10-vm5:~$
user01@rhel10-vm5:~$
The column NAME represents the name of the connection. The column DEVICE represents the network device that is assigned to the connection.