Establecer una dirección IP estática en Ubuntu Server 17.10 y posteriores

Publicado por P. Ruiz en

Hasta ahora, Ubuntu server basaba su configuración de red en los parámetros almacenados en el archivo de configuración /etc/network/interfaces, una estructura heredada directamente de Debian.

Sin embargo, a partir de la versión 17.10, Canonical introduce una nueva herramienta de configuración de red llamada NetPlan, que pretende facilitar el trabajo a desarrolladores y usuarios en general.

El funcionamiento de NetPlan se basa en un archivo con la descripción de los adaptadores de red que necesitemos definir. El archivo estará escrito en YAML (siglas de YAML Ain’t Markup Language), un archivo de texto plano con un formato específico para la serialización que resulta fácilmente comprensible para las personas.

Por lo tanto, a partir de la versión 17.10, deberemos utilizar archivos de configuración con extensión yaml, almacenados en la ruta /etc/netplan.

De forma predeterminada, sólo tenemos un archivo, llamado 01-netcfg.yaml.

Establecer-una-direccion-IP-estatica-en-Ubuntu-server-1710-y-posteriores-001

En cuanto a la sintaxis que debemos emplear en estos archivos, hoy trataremos de arrojar algo de luz sobre ella.

La configuración inicial de NetPlan

Para comprobar el valor inicial que tiene el archivo 01-netcfg.yaml, basta con escribir una orden como esta:

cat /etc/netplan/01-netcfg.yaml

Contenido del archivo 01-netcfg.yaml.

Establecer-una-direccion-IP-estatica-en-Ubuntu-server-1710-y-posteriores-002

En el caso de Ubuntu Server, la configuración predeterminada de NetPlan será similar a esta:

network:
  version: 2
  renderer: networkd
  ethernets:
enp0s3:
dhcp4: yes

Explicado de forma sencilla, lo que establece es que el administrador de la red será el demonio systemd-networkd, que el adaptador de red que estamos definiendo es enp0s3 y que utilizará DHCP. Es decir, que su dirección IP será asignada desde otro dispositivo de nuestra red, normalmente el router que nos facilita el acceso a Internet, que actuará como servidor DHCP.

Si realizas esta tarea en un sistema de escritorio, notarás que el administrador de red que aparece será NetworkManager, el programa que ofrece los servicios de detección y configuración automáticas en la interfaz gráfica.

Establecer una dirección IP fija en NetPlan

La mayoría de las veces, un servidor necesita disponer de una dirección IP fija. Imagina, por ejemplo, que quieres redireccionar algún puerto desde el router, usar SSH para administrar el servidor de forma remota, o alguna tarea por el estilo.

En estos casos, cuando utilicemos Ubuntu Server 17.10 o posterior, deberemos editar el archivo de configuración correspondiente (en nuestro ejemplo, 01-netcfg.yaml) y realizar las modificaciones oportunas. Para lograrlo, puedes usar el editor de textos nano:

sudo nano /etc/netplan/01-netcfg.yaml

Como es lógico, lo primero será cambiar el valor dhcp4: yes por dhcp4: no. A continuación, incluiremos los valores de configuración de la red:

network:
  version: 2
  renderer: networkd
  ethernets:
enp0s3:
dhcp4: no
addresses: [192.168.1.10/24] gateway4: 192.168.1.1 nameservers: addresses: [208.67.222.222]

Como habrás imaginado, las líneas que aparecen bajo dhcp4: no, establecen los valores estáticos que necesitamos:

  • addresses: [192.168.1.10/24]: Establece que la dirección IP de equipo será siempre 192.168.1.10. Como es lógico, deberás adecuar este valor a tus propias necesidades. También indica que la máscara de red utiliza 24 bits (lo que equivale a 255.255.255.0). Este valor también puede cambiar según las características de tu red.
  • gateway4: 192.168.1.1: Determina que la dirección de la puerta de enlace para TCP/IPv4. En nuestro caso, el dispositivo que nos facilita el acceso a Internet. Para este ejemplo, 192.168.1.1, aunque su valor también dependerá de la dirección que tenga este dispositivo en tu instalación.
  • nameservers: Configura la dirección (o direcciones) de Internet donde se encuentra el servidor DNS que usaremos para convertir los nombres de dominio en direcciones IP. En este caso utilizaremos el servidor primario de OpenDNS.

En el caso de que necesitemos definir más de un servidor DNS, podemos incluir varias direcciones separadas por comas:

addresses: [208.67.222.222,208.67.220.220]

Cuando hayamos completado la configuración, estaremos listos para salir de la edición del archivo.

Para lograrlo, sólo tenemos que pulsar la combinación de teclas Control + X.

Establecer-una-direccion-IP-estatica-en-Ubuntu-server-1710-y-posteriores-003

Al hacerlo, el editor nos pregunta si queremos guardar los cambios.

Para responder de forma afirmativa, pulsamos la tecla S.

Establecer-una-direccion-IP-estatica-en-Ubuntu-server-1710-y-posteriores-004

Entonces, el editor nos permite elegir entre sobrescribir el contenido del archivo original, o elegir un nombre o ubicación diferente.

Para sobrescribir, basta con pulsar la tecla Intro.

Establecer-una-direccion-IP-estatica-en-Ubuntu-server-1710-y-posteriores-005

Aplicar los cambios

De vuelta en el prompt del sistema, estaremos listos para aplicar los cambios del archivo de configuración. Algo que podemos conseguir ejecutando el siguiente comando:

sudo netplan apply

Escribimos el comando y pulsamos la tecla Intro.

Establecer-una-direccion-IP-estatica-en-Ubuntu-server-1710-y-posteriores-006

Y, por último, para comprobar que los cambios han surtido efecto, podemos consultar la configuración actual de la red:

ifconfig

Como antes, escribimos el comando y pulsamos la tecla Intro.

Establecer-una-direccion-IP-estatica-en-Ubuntu-server-1710-y-posteriores-007

Como puedes comprobar, la configuración coincide con los valores que hemos establecido.

Y hasta aquí el artículo de hoy. Espero que te resulte útil.