La utilidad nmcli (NetworkManager Command Line Interface) es utilizada para gestionar el estado de las redes. Con esta herramienta podemos, crear, editar, activar, eliminar y desactivar conexiones de red. Aprender el uso de esta herramienta es necesario ya que las nuevas versiones de Red Hat (9) y sus Forks (Rocky y Alma) han depreciado el funcionamiento de las interfaces ifcfg.
La sintaxis para usar este comando es la siguiente:
nmcli [OPTIONS] OBJECT { COMMAND | help }
Listar información de las interfaces
[tusysadmin@lab ~]$ sudo nmcli con show
NAME UUID TYPE DEVICE
cableada 8531cd56-9e22-3a04-9f99-44ca92be00c4 ethernet eno1
lo 3115100c-122b-482b-8653-fe4802d55f2e loopback lo
SSID 51229f3b-5809-439e-a328-5b641b1a80ee wifi wlp0s20f0u2i2
virbr0 88690a18-991b-4ec5-81fb-83bdc24aca57 bridge virbr0
Las interfaces mostradas son de un equipo con cuenta con wifi y cable de red activos, la interfaz virbr0 corresponde al servicio de libvirtd ya que el mencionado dispositivo es un anfitrión de maquinas virtuales. De ser necesario, puede mostrarse la información de una interfaz en concreto:
[tusysadmin@lab ~]$ sudo nmcli con show id cableada
connection.id: cableada
connection.uuid: 8531cd56-9e22-3a04-9f99-44ca92be00c4
connection.stable-id: --
connection.interface-name: eno1
connection.autoconnect: sí
------
IP4.ADDRESS[1]: 192.168.1.21/24
IP4.GATEWAY: 192.168.1.1
Establecer IP
La salida de este comando nos muestra las configuraciones con las que cuenta esta interfaz. Para esta publicación lo que haremos es establecer una IP estática modificando estos parámetros. Si aun no estás tan familiarizado con el uso de nmcli usemos el comando ip para ver las IP’s la configuración de las interfaces.
[tusysadmin@lab ~]$ ip a
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: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 10:62:e5:19:83:60 brd ff:ff:ff:ff:ff:ff
altname enp0s31f6
inet 192.168.1.21/24 brd 192.168.1.255 scope global dynamic noprefixroute eno1
valid_lft 71830sec preferred_lft 71830sec
inet6 fe80::4845:e957:bf2b:b3f4/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: wlp0s20f0u2i2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether e0:e1:a9:3a:60:e4 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.20/24 brd 192.168.1.255 scope global dynamic noprefixroute wlp0s20f0u2i2
valid_lft 71830sec preferred_lft 71830sec
inet6 fe80::b145:75ae:fc15:38f4/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Vamos a establecer la IP 192.168.1.15 a la interfaz eno1. Para esto, primeramente tenemos que saber algunos datos como la mascara de subred y el gateway que se está usando actualmente.
[tusysadmin@lab ~]$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 100 0 0 eno1
default _gateway 0.0.0.0 UG 600 0 0 wlp0s20f0u2i2
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno1
192.168.1.0 0.0.0.0 255.255.255.0 U 600 0 0 wlp0s20f0u2i2
192.168.124.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
Los valores a configurar son los siguientes:
Ipaddress = 192.168.1.15
Netmask = 255.255.255.0
Gateway = 192.168.1.1
DNS = 80.80.80.80
[tusysadmin@lab ~]$ sudo nmcli con modify cableada ipv4.method manual
[tusysadmin@lab ~]$ sudo nmcli con modify cableada ipv4.addresses 192.168.1.15/24
[tusysadmin@lab ~]$ sudo nmcli con modify cableada ipv4.gateway 192.168.1.1
[tusysadmin@lab ~]$ sudo nmcli con modify cableada ipv4.dns 80.80.80.80
[tusysadmin@lab ~]$ sudo nmcli con up cableada
Conexión activada con éxito (ruta activa D-Bus: /org/freedesktop/NetworkManager/ActiveConnection/7)
[tusysadmin@lab ~]$
Finalmente validamos
[tusysadmin@lab ~]$ ip a
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: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 10:62:e5:19:83:60 brd ff:ff:ff:ff:ff:ff
altname enp0s31f6
inet 192.168.1.15/24 brd 192.168.1.255 scope global noprefixroute eno1
valid_lft forever preferred_lft forever
inet6 fe80::4845:e957:bf2b:b3f4/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[tusysadmin@lab ~]$ ping -c3 google.com
PING google.com (142.250.74.206) 56(84) bytes of data.
64 bytes from fra24s02-in-f14.1e100.net (142.250.74.206): icmp_seq=1 ttl=48 time=152 ms
64 bytes from fra24s02-in-f14.1e100.net (142.250.74.206): icmp_seq=2 ttl=48 time=152 ms
64 bytes from fra24s02-in-f14.1e100.net (142.250.74.206): icmp_seq=3 ttl=48 time=152 ms
--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 151.663/151.773/151.925/0.111 ms
[tusysadmin@lab ~]$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default _gateway 0.0.0.0 UG 100 0 0 eno1
192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eno1
[tusysadmin@lab ~]$ nslookup google.com
Server: 127.0.0.53
Address: 127.0.0.53#53
Non-authoritative answer:
Name: google.com
Address: 142.250.74.206
Name: google.com
Address: 2a00:1450:4001:803::200e
[tusysadmin@lab ~]$
Con estos últimos comandos hemos validado que la IP efectivamente ha sido cambiada y que tenemos salida a Internet. El uso del DNS 80.80.80.80 es para proteger mi privacidad, puedes usar el DNS que prefieras.