LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

Hay muchos casos en los que es posible que deseemos establecer una IP estática para una interfaz de red. En RHEL 8 / CentOS 8, las conexiones de red son administradas por el demonio NetworkManager, por lo que en este tutorial vemos cómo podemos realizar dicha tarea, bien editando un archivo de interfaz directamente, usando una utilidad de línea de comando "nmcli", o mediante una interfaz de usuario de texto: "nmtui" .

En este tutorial aprenderá:

  • Cómo configurar una dirección IP estática editando directamente un archivo de interfaz
  • Cómo configurar una dirección IP estática usando la utilidad nmcli
  • Cómo configurar una dirección IP estática usando nmtui

 

El archivo de interfaz de red editado

Introducción

En Red Hat Enterprise Linux 8, las interfaces de red son administradas por el "NetworkManager" demonio, por lo que para cambiar la configuración de una interfaz de red debemos interactuar de alguna manera con ella. En este tutorial veremos cómo podemos configurar una dirección IP estática, una puerta de enlace y un servidor dns para una NIC usando tres métodos diferentes.

Identificando nuestra interfaz

Lo primero que queremos hacer es encontrar la interfaz que queremos modificar. Para listar todas las interfaces en nuestro sistema, podemos usar el comando "ip addr":

$ ip addr
1: lo:  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
      valid_lft forever preferred_lft forever
2: enp1s0:  mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.189/24 brd 192.168.122.255 scope global dynamic noprefixroute enp1s0
       valid_lft 3004sec preferred_lft 3004sec
    inet6 fe80::9ab6:ba48:1ddd:a8e1/64 scope link noprefixroute
       valid_lft forever preferred_lft forever"

En la salida anterior, que es el resultado de ejecutar el comando en mi máquina virtualizada rhel8, podemos ver dos interfaces: "lo" y "enp1s0". La primera es una interfaz "virtual", que el sistema utiliza para "hablar" consigo mismo. El segundo es la que nos interesa, y actualmente su dirección IPv4 es 192.168.122.189: queremos cambiarla.

Método 1: modificar el archivo de configuración de la interfaz manualmente

Para cada interfaz de red administrada por el demonio NetworkManager, se crea un archivo de configuración dentro del directorio "/etc/sysconfig/network-scripts". El nombre del archivo está compuesto por el prefijo "ifcfg-" más el nombre de la interfaz. Si inspeccionamos el archivo relacionado con nuestra NIC, podemos ver su configuración real:

$ cat /etc/sysconfig/network-scrIPts/ifcfg-enp1s0
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp1s0"
UUID="d5f41bf4-de0a-43b3-b633-7e2ec6212e58"
DEVICE="enp1s0"
ONBOOT="yes"

Si la opción "BOOTPROTO" se establece en "dhcp" : la opción establece el protocolo que se utilizará en el arranque para establecer la dirección IP de la interfaz. Las posibles opciones a utilizar son:

  • none: no se debe utilizar ningún protocolo
  • bootp: usa el protocolo bootp
  • dhcp: utiliza el protocolo dhcp

Como queremos establecer una dirección IPv4 estática, queremos cambiar el valor de BOOTPROTO a "none" y configurar nuestra IP, prefijo de ruta, puerta de enlace y servidor dns de forma estática. Podemos lograr esto mediante el uso de, respectivamente, las opciones "IPADDR", "PREFIX", "GATEWAY" y "DNS" . Dado que se pueden especificar muchos servidores dns, la opción "DNS" debe informarse junto con un número progresivo, comenzando desde 1. Después de las modificaciones necesarias, nuestro archivo debería verse así:

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="none"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="enp1s0"
UUID="d5f41bf4-de0a-43b3-b633-7e2ec6212e58"
DEVICE="enp1s0"
ONBOOT="yes"
IPADDR=192.168.122.66
PREFIX=24
GATEWAY=192.168.122.1
DNS1=192.168.122.1


Configuramos nuestra IP estática "192.168.122.66" y configuramos tanto nuestra puerta de enlace como nuestro servidor dns "192.168.122.1" . Ahora, para que nuestros cambios sean efectivos, debemos desactivar y volver a activar la interfaz de red. Tenga en cuenta que esto interrumpirá las conexiones ssh existentes a través de dicha interfaz:

$ sudo nmcli connection down enp1s0 && sudo nmcli connection up enp1s0

Al ejecutar el comando "ip addr" nuevamente podemos verificar que la IP haya cambiado:

"IP addr|grep enp1s0 | grep inet
inet 192.168.122.66/24 brd 192.168.122.255 scope global noprefix" 

Método 2: usar nmcli

"Nmcli" es una herramienta de línea de comandos que se utiliza para controlar NetworkManager. Al usarlo, podemos, entre otras cosas, cambiar la configuración de red para una interfaz específica. En nuestro caso debemos usar nmcli con el subcomando "connection" con "modify" o la acción "edit" . El primero nos permite cambiar la configuración directamente, mientras que el segundo lanza el shell nmcli, donde podemos operar de forma interactiva.

Usando nmcli directamente

Para cambiar la dirección IP de la interfaz "enp1s0" con un comando nmcli directo, ejecutamos:

$ sudo nmcli connection modify enp1s0 IPv4.address 192.168.122.66/24

Observe que especificamos el prefijo de enrutamiento junto con la IP utilizando la denominada notación "CIDR" (Classes Inter-Domain Routing). Usamos una sintaxis similar para cambiar la puerta de enlace y la configuración de dns:

$ sudo nmcli connection modify enp1s0 IPv4.gateway 192.168.122.1
$ sudo nmcli connection modify enp1s0 IPv4.dns 192.168.122.1" 

Finalmente, configuramos el método "manual" para evitar usar cualquier otro protocolo de arranque para la interfaz. Este comando establece la opción BOOTPROTO en none en el archivo de configuración de la interfaz:



$ sudo nmcli connection modify enp1s0 IPv4.method manual

Usando el shell nmcli

Como mencionamos anteriormente, también podemos usar un método interactivo para realizar los mismos cambios. Para ingresar en la "shell  nmcli" usamos la acción "edit", seguida del nombre de la interfaz que queremos editar:

$ sudo nmcli connection edit enp1s0
===| nmcli interactive connection editor |===

Editing existing '802-3-ethernet' connection: 'enp1s0'

Type 'help' or '?' for available commands.
Type 'print' to show all the connection properties.
Type 'describe [.]' for detailed property descrIPtion.

You may edit the following settings: connection, 802-3-ethernet (ethernet), 802-1x, dcb, sriov, ethtool, match, IPv4, IPv6, tc, proxy
nmcli>"

El cursor parpadeante nos dice que el shell está aceptando comandos: podemos escribir "help" para obtener una lista de los disponibles, "print" para ver todas las propiedades de conexión o "describe" seguido de una configuración y una de sus propiedades (representada con una notación de puntos), para obtener una descripción de este último. Por ejemplo:

nmcli>
nmcli> describe IPv4.address

=== [addresses] ===
[NM property descrIPtion]
Array of IP addresses.

[nmcli specific descrIPtion]
Enter a list of IPv4 addresses formatted as:
  IP[/prefix], IP[/prefix],...
Missing prefix is regarded as prefix of 32.

Example: 192.168.1.5/24, 10.0.0.11/24"

Para cambiar la dirección de nuestra interfaz:

nmcli> set IPv4.address 192.168.122.66/24

El mismo principio se utiliza para cambiar las otras propiedades:

nmcli> set IPv4.gateway 192.168.122.1
nmcli> set IPv4.dns 192.168.122.1
nmcli> set IPv4.method manual

Para guardar las modificaciones que hicimos, necesitamos emitir un último comando:

nmcli> save
Connection 'enp1s0' (d5f41bf4-de0a-43b3-b633-7e2ec6212e58) successfully updated."

Para salir del shell nmcli simplemente escriba "quit" y presione enter:

nmcli> quit

Nuevamente, para que los cambios sean efectivos, debemos recargar la interfaz con el mismo comando que usamos antes.

Método 3 - usando nmtui

Además de cambiar los parámetros de una interfaz de red modificando su archivo manualmente o usando la utilidad nmcli, también podemos controlar NetworkManager usando una interfaz de usuario de texto. Para lanzarlo simplemente invocamos "nmtui" en nuestro terminal:


$ sudo nmtui

 

La interfaz de usuario de texto nmtui

Seleccionamos "Edit a connection" y luego el nombre de la interfaz que queremos manipular; luego procedemos a cambiar los valores deseados. Por ejemplo:

 

Editar la configuración de conexión con nmtui

Después de que estemos satisfechos, seleccionamos "OK" y presionamos enter: regresaremos al menú de selección de interfaz. Esta vez seleccionamos "back" , y luego elegimos "quit" salir. Para aplicar la configuración necesitamos volver a cargar la conexión de la interfaz:

$ sudo nmcli connection down enp1s0 && sudo nmcli connection up enp1s0

Conclusiones

En este tutorial vimos tres métodos que podemos usar para establecer una dirección IP estática en Red Hat Enterprise Linux 8. Vemos qué opciones debemos cambiar y qué debemos agregar en el archivo de configuración de la interfaz al editarlo manualmente, y cómo realizar el mismos cambios usando nmcli y nmtui, que son respectivamente una utilidad de línea de comando y una interfaz de usuario de texto: ambas se usan para controlar el demonio NetworkManager.

Pin It

Escribir un comentario


Código de seguridad
Refescar



Redes:



 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías