Añadir dirección IPv4 o IPv6 adicional en Servidor Linux Ubuntu 20.04 o 22.04
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:
- Accede al directorio /etc/netplan.
[root@localhost ~]# cd /etc/netplan
- 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 addr1: 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 forever2: 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
- Para consultar los servidores DNS utilizados, introduce los siguientes comandos:
[root@localhost ~]# curl https://169.254.169.254/latest/meta_data/dns/nameservers -Lv[root@localhost ~]# curl https://169.254.169.254/latest/meta_data/dns/nameservers6 -Lv
Los servidores DNS utilizados se muestran al final del mensaje.
Ejemplo:
[root@localhost ~]# curl https://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
- 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
- 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'
- 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 onlinkdefault 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 highdefault via fe80::1 dev ens192 proto static métrica 1024 pref medium
Añadir direcciones IPv4 e IPv6
- Comprueba si ya existe un archivo de configuración en este directorio. Para ello, introduce el siguiente comando:
[root@localhost ~]# ls /etc/netplan
- 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. |
- 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
- 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: 2Ejemplo: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
- 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. |
- Sustituye GATEWAY PARA IPv6 por la puerta de enlace (gateway) IPv6 anotada.
- Sustituye DIRECCIÓN IP DEL SERVIDOR DE NOMBRES 1 y DIRECCIÓN IP DEL SERVIDOR DE NOMBRES 2 por los servidores de nombres comprobados.
- Sustituye STANDARD-GATEWAY DE LA INTERFAZ ACTIVA por la puerta de enlace (gateway) IPv4 anotada.
- Para comprobar el archivo de configuración, introduce el siguiente comando:
root@localhost:~# netplan --debug apply
| AtenciónLos 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. |
- 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í: