Añadir dirección IPv4 o IPv6 adicional en Servidor Linux Ubuntu 20.04 o 22.04

Rate this post

Este artículo explica cómo añadir direcciones IPv4 e IPv6 públicas adicionales en un Servidor Cloud o VPS en el que está instalado Ubuntu 20.04 o 22.04.

La configuración de la red se realiza en las imágenes de Arsys para Ubuntu 20.04 y Ubuntu 22.04 a través de netplan. La configuración de la red ya no se controla a través del archivo /etc/network/interfaces, sino a través de archivos con la extensión .yaml, que se encuentran en el directorio /etc/netplan. Si hay varios archivos en este directorio, se cargan en orden lexicográfico.

Cómo configurar direcciones IPv4 e IPv6 públicas adicionales en Ubuntu 20.04 y 22.04:

Prerrequisitos:
– Has asignado una o más direcciones IPv4 y/o IPv6 públicas adicionales a tu Servidor Cloud en el Cloud Panel.
– Has iniciado la sesión en el servidor.
– Has anotado las direcciones IPv4 e IPv6 del servidor.

Comprobar si se utiliza netplan para la configuración de la red

Para comprobar si tu servidor ya utiliza netplan para la configuración de la red, introduce el siguiente comando:

  1. Accede al directorio /etc/netplan.
[root@localhost ~]# cd /etc/netplan
  1. Comprueba si ya existe un archivo de configuración en este directorio. Para ello, introduce el siguiente comando:
[root@localhost ~]# ls
Nota:
Si el directorio /etc/netplan no existe, netplan no ha sido instalado. En este caso, no instales netplan y sigue los pasos descritos en el siguiente artículo:
Añadir direcciones IPv4 públicas en un servidor Linux Ubuntu

Consultar la interfaz de red

Consulta el nombre del archivo de la interfaz de red. Para ello, introduce el siguiente comando:

[root@localhost ~]# ip addr

En este ejemplo, el nombre de la interfaz de red es ens192:

root@localhost:~# ip addr
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
       valid_lft forever preferred_lft forever
2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:08:a5:c6 brd ff:ff:ff:ff:ff:ff
    altname enp11s0
    inet 217.160.141.60/32 metric 100 scope global dynamic ens192
       valid_lft 21695sec preferred_lft 21695sec
    inet 82.165.254.101/32 scope global ens192
       valid_lft forever preferred_lft forever
    inet6 2001:8d8:1801:5d2::2/64 scope global
       valid_lft forever preferred_lft forever
    inet6 2001:8d8:1801:5d2::1/64 scope global dynamic noprefixroute
       valid_lft 3443sec preferred_lft 3443sec
    inet6 fe80::250:56ff:fe08:a5c6/64 scope link
       valid_lft forever preferred_lft forever

Consultar servidor DNS por defecto

  1. Para consultar los servidores DNS utilizados, introduce los siguientes comandos:
[root@localhost ~]# curl http://169.254.169.254/latest/meta_data/dns/nameservers -Lv
[root@localhost ~]# curl http://169.254.169.254/latest/meta_data/dns/nameservers6 -Lv

Los servidores DNS utilizados se muestran al final del mensaje.

Ejemplo:

[root@localhost ~]# curl http://169.254.169.254/latest/meta_data/dns/nameservers -Lv
*   Trying 169.254.169.254...
* TCP_NODELAY set
* Connected to 169.254.169.254 (169.254.169.254) port 80 (#0)
> GET /latest/meta_data/dns/nameservers HTTP/1.1
> Host: 169.254.169.254
> User-Agent: curl/7.61.1
> Accept: */*

< HTTP/1.1 200 OK
< Date: Thu, 08 Sep 2022 12:19:36 GMT
< Server: Apache
< Strict-Transport-Security: max-age=63072000; includeSubDomains
< Vary: Accept-Encoding
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Headers: X-TOKEN, X-HASH, X-MICROTIME, X-USER, Content-Type, X-API-TOKEN, Authorization
< Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS
< Access-Control-Expose-Headers: Error-Msg
< Cache-control: no-cache, no-store, max-age=0
< Access-Control-Allow-Origin: *
< Access-Control-Allow-Headers: X-TOKEN, X-HASH, X-MICROTIME, Content-Type, X-API-TOKEN, Authorization
< Access-Control-Allow-Methods: PUT, GET, POST, DELETE, OPTIONS
< Access-Control-Expose-Headers: Error-Msg
< Transfer-Encoding: chunked
< Content-Type: text/plain;charset=UTF-8

212.227.123.16,212.227.123.17
* Connection #0 to host 169.254.169.254 left intact
  1. Anota los servidores DNS. En el ejemplo anterior, los servidores DNS se muestran sobre la línea * Connection #0 to host 169.254.169.254 left intact.

Consultar puerta de enlace (gateway) para IPv4 e IPv6

  1. Para consultar la puerta de enlace predeterminada (defauult gateway) de la interfaz activa, introduce los siguientes comandos:

IPv4:

[root@localhost ~]# ip route show | grep 'default'

IPv6:

[root@localhost ~]# ip -6 route show | grep 'default'
  1. Anota las direcciones IP de las puertas de enlace (gateways). Estas aparecen directamente después de la parte de default via. Ejemplos:

Gateway IPv4:

root@localhost:~# ip route show | grep 'default'
default via 10.255.255.1 dev ens192 proto static onlink
default via 10.255.255.1 dev ens192 proto dhcp src 217.160.141.60 métrica 100

Gateway IPv6:

root@localhost:~# ip -6 route show | grep 'default'
default via fe80::1 dev ens192 proto ra métrica 100 expires 3sec pref high
default via fe80::1 dev ens192 proto static métrica 1024 pref medium

Añadir direcciones IPv4 e IPv6

  1. Comprueba si ya existe un archivo de configuración en este directorio. Para ello, introduce el siguiente comando:
[root@localhost ~]# ls /etc/netplan
  1. Si ya existe un archivo de configuración en este directorio, cámbiale el nombre. Para ello, introduce el siguiente comando y sustituye los marcadores de posición.
[root@localhost ~]# mv ANTIGUO_ARCHIVO.yaml ANTIGUO_ARCHIVO.yaml.old
¡Atención!
Si el directorio contiene el archivo 00-Public_network.yaml, no le cambies el nombre, ya que este archivo es necesario para la red pública.
  1. Crea el archivo /etc/netplan/01-netcfg.yaml con el editor nano. Para ello, introduce el siguiente comando:
[root@localhost ~]# nano etc/netplan/01-netcfg.yaml
  1. Añade la siguiente información:
network:
  version: 2
  renderer: networkd
  ethernets:
    INTERFAZ DE RED:
      addresses:
        - DIRECCIÓN IPv4 PRINCIPAL/32
        - DIRECCIÓN IPv4 ADICIONAL 1/32
        - DIRECCIÓN IPv6 PRINCIPAL/64
        - DIRECCIÓN IPv6 ADICIONAL 1/64  
      gateway6: GATEWAY PARA IPv6
      nameservers:
        addresses:
          - DIRECCIÓN IP DEL SERVIDOR DE NOMBRES 1
          - DIRECCIÓN IP DEL SERVIDOR DE NOMBRES 2 
      routes:
        - on-link: true
          to: default
          via: STANDARD-GATEWAY DE LA INTERFAZ ACTIVA
  version: 2
Ejemplo:network:
  ethernets:
    ens192:
      addresses:
      - 217.160.141.60/32
      - 82.165.254.101/32
      - 2001:8d8:1801:5d2::1/64
      - 2001:8d8:1801:5d2::2/64
      gateway6: fe80::1
      nameservers:
        addresses:
        - 127.0.0.53
      routes:
      - on-link: true
        to: default
        via: 10.255.255.1
  version: 2
  1. Sustituye INTERFAZ DE RED por ens192. A continuación, introduce la dirección IPv4 principal, las direcciones IPv4 adicionales, la dirección IPv6 principal y las direcciones IPv6 adicionales.
Atención
– Las sangrías pertenecen a la sintaxis del formato YAML. Por lo tanto, asegúrate de que se visualizan correctamente. De lo contrario, la configuración no podrá realizarse correctamente y el servidor podría dejar de estar accesible.
– Utiliza siempre la barra espaciadora para las sangrías.
  1. Sustituye GATEWAY PARA IPv6 por la puerta de enlace (gateway) IPv6 anotada.
  2. Sustituye DIRECCIÓN IP DEL SERVIDOR DE NOMBRES 1 y DIRECCIÓN IP DEL SERVIDOR DE NOMBRES 2 por los servidores de nombres comprobados.
  3. Sustituye STANDARD-GATEWAY DE LA INTERFAZ ACTIVA por la puerta de enlace (gateway) IPv4 anotada.
  4. Para comprobar el archivo de configuración, introduce el siguiente comando:
root@localhost:~# netplan --debug apply
Atención
Los cambios que has realizado en el archivo /etc/netplan/01-netcfg.yaml se almacenan en el sistema y debes modificarlos si no son correctos. De lo contrario, el sistema operativo intentará cargarlos después de un reinicio.
  1. Reinicia el servidor para que se apliquen los cambios. Para ello, introduce el siguiente comando:
systemctl reboot

Puedes encontrar más información sobre netplan aquí: