Knowledge Center Monthly Newsletter - March 2025
Stay up to date with the latest from the Knowledge Center. See all new and updated Knowledge Center articles published in the last month and re:Post’s top contributors.
¿Cómo puedo hacer que mi interfaz de red secundaria funcione en mi instancia de EC2 de Ubuntu?
Quiero que mi interfaz de red secundaria funcione en mi instancia de Amazon Elastic Compute Cloud (Amazon EC2) de Ubuntu.
Breve descripción
Advertencia: El uso de una segunda interfaz de red elástica está destinado a usuarios avanzados. Utiliza esta solución únicamente en los siguientes casos prácticos: No puedes usar una sola interfaz de red. Debes conectar dos interfaces de red de la misma subred a una instancia. Para evitar problemas de enrutamiento asimétrico, utiliza una única interfaz de red elástica o coloca las interfaces de red elástica duplicadas en subredes que no se superpongan. O bien, usa Ubuntu 24.04 LTS o una versión posterior.
Añadir una interfaz de red secundaria a una instancia que no sea una instancia de EC2 de Amazon Linux provoca problemas de flujo de tráfico. Estos problemas se producen porque las interfaces de red principal y secundaria están en la misma subred y hay una tabla de enrutamiento con una puerta de enlace. El tráfico que entra en la interfaz de red secundaria utiliza la interfaz de red principal para salir de la instancia. Como la dirección IP secundaria no pertenece a la dirección MAC de la interfaz de red principal, la interfaz secundaria no funciona.
Nota: Los pasos siguientes no son necesarios para Ubuntu 24.04. Ubuntu 24.04 gestiona automáticamente esta configuración avanzada.
Para que la interfaz secundaria funcione después de crearla, siga estos pasos:
- Configure la tabla de enrutamiento.
- Configure reglas en la base de datos de políticas de la tabla de enrutamiento personalizada para que el tráfico de la interfaz secundaria utilice la nueva tabla de enrutamiento.
Antes de empezar, tenga en cuenta que las instancias de Amazon EC2 se encuentran en la nube de AWS, por lo que no todos los casos de uso se benefician de tener varias interfaces. En los siguientes ejemplos se muestra cuándo es posible que no necesite usar una interfaz de red secundaria:
- Para aumentar el rendimiento de la red: Como los límites se establecen en función del tipo y tamaño de la instancia, el rendimiento de la red no aumenta. Para obtener más información, consulta Tipos de instancias de Amazon EC2.
- Para aumentar las direcciones IP elásticas: No es necesario añadir direcciones IP elásticas a la instancia porque la mayoría de las aplicaciones funcionan bien con el DNS. Por ejemplo, Apache puede usar hosts virtuales basados en nombres. Para obtener más información, consulta Name-based virtual host support (Compatibilidad con hosts virtuales basados en nombres) en el sitio web de Apache.
Nota: Los pasos para añadir una interfaz de red secundaria son diferentes para cada una de las siguientes versiones de Ubuntu:
- Ubuntu 14.04
- Ubuntu 16.04
- Ubuntu 18.04
- Ubuntu 20.04
- Ubuntu 22.04
Resolución
Nota: Si bien los pasos de la siguiente resolución se han probado en las versiones de Linux enumeradas, es posible que tengas que modificar los ajustes personalizados de la configuración. Todos los procedimientos deben ejecutarse con privilegios de usuario raíz. Conviértete en el usuario raíz con sudo -i o ejecuta todos los comandos con sudo.
Configurar Ubuntu 14.04 o 16.04
Puede utilizar un solo archivo para crear el archivo de configuración de la interfaz secundaria, configurar la tabla de enrutamiento y establecer las reglas de política de enrutamiento para Ubuntu.
Para configurar Ubuntu 14.04 o 16.04, siga estos pasos:
-
Para obtener el nombre de la interfaz de red principal, ejecute el siguiente comando:
ip a | grep ^[[:digit:]]
Obtendrá un resultado similar al mensaje siguiente:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc pfifo_fast state UP group default qlen 1000 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
Importante: En el ejemplo anterior, las interfaces principales se denominan eth0, eth1, etc. Sin embargo, en los casos que admiten redes mejoradas, como los tipos de familia m4 y m5, es posible que se produzca una incoherencia en los nombres. Por ejemplo, la principal podría llamarse ens3 si la secundaria se denomina eth0. Esta incoherencia en los nombres se produce cuando se añade la interfaz secundaria mientras la instancia está en ejecución. Para evitar incoherencias en los nombres, añade la interfaz en el momento del inicio o reinicia la instancia. O bien, si la interfaz se está ejecutando, utilice el siguiente comando para cambiar el nombre:
ip link set eth0 name ens4 ip link set ens4 up ip link show ens4 --->verify
-
Cree un archivo de configuración para la interfaz secundaria:
vi /etc/network/interfaces.d/51-eth1.cfg
Nota: Cambia eth1 para que coincida con el nombre de la interfaz secundaria.
El siguiente comando es un ejemplo de una dirección IP única de 172.31.21.115 con una puerta de enlace de 172.31.16.1 en la interfaz secundaria:
auto eth1 iface eth1 inet static address 172.31.21.115 netmask 255.255.240.0 # Gateway configuration up ip route add default via 172.31.16.1 dev eth1 table 1000 # Routes and rules up ip route add 172.31.21.115 dev eth1 table 1000 up ip rule add from 172.31.21.115 lookup 1000
Nota: Sustituya la dirección IP y la puerta de enlace del ejemplo por su propia información. Su puerta de enlace debe ser la primera dirección IP válida de su subred.
El siguiente comando es un ejemplo de varias direcciones IP. En este ejemplo, las direcciones IP son 172.31.21.115 y 172.31.18.46, y la puerta de enlace es 172.31.16.1:
auto eth1 # Enter one or more IP settings iface eth1 inet static address 172.31.21.115 netmask 255.255.240.0 iface eth1 inet static address 172.31.18.46 netmask 255.255.240.0 # Default gateway for eth1 up ip route add default via 172.31.16.1 dev eth1 table 1000 # A route for every IP up ip route add 172.31.21.115 dev eth1 table 1000 up ip route add 172.31.18.46 dev eth1 table 1000 # A policy rule for every IP up ip rule add from 172.31.21.115 lookup 1000 up ip rule add from 172.31.18.46 lookup 1000
Nota: Sustituya las direcciones IP y la puerta de enlace de ejemplo por las suyas propias.
-
Cree el archivo restrict-default-gw para evitar que la puerta de enlace predeterminada se sobrescriba en la tabla principal:
vi /etc/dhcp/dhclient-enter-hooks.d/restrict-default-gw
-
Añada las siguientes líneas al archivo restrict-default-gw:
case ${interface} in eth0) ;; *) unset new_routers ;; esac
Nota: Sustituya eth0 por el nombre de su interfaz principal.
-
Reinicie la red.
Para Ubuntu 14.04, ejecute el siguiente comando:
(ifdown eth1 && ifup eth1)
Para Ubuntu 16.04, ejecute el siguiente comando:
systemctl restart networking
Configurar Ubuntu 18.04, 20.04 y 22.04
Ubuntu 18.04, 20.04 y 22.04 utilizan la configuración de red de Netplan. Tenga en cuenta que Netplan usa el formato YAML. Este formato YAML significa que la indentación es fundamental. El siguiente ejemplo de Netplan utiliza una indentación de dos espacios.
Para configurar Ubuntu 18.04, 20.04 y 22.04, siga estos pasos:
-
Cree un archivo de configuración para la interfaz secundaria:
vi /etc/netplan/51-eth1.yaml
-
Añada las siguientes líneas al archivo 51-eth1.yaml:
network: version: 2 renderer: networkd ethernets: eth1: addresses: - 172.31.24.153/20 - 172.31.28.195/20 dhcp4: no routes: - to: 0.0.0.0/0 via: 172.31.16.1 # Default gateway table: 1000 - to: 172.31.24.153 via: 0.0.0.0 scope: link table: 1000 - to: 172.31.28.195 via: 0.0.0.0 scope: link table: 1000 routing-policy: - from: 172.31.24.153 table: 1000 - from: 172.31.28.195 table: 1000
Nota: Sustituya la información del ejemplo anterior por información específica para su caso de uso. Este archivo YAML del ejemplo anterior configura dos direcciones IP en eth1, la interfaz secundaria.
Para encontrar el rango CIDR que se va a utilizar en el archivo YAML, siga estos pasos:
- Abra la consola de Amazon EC2, seleccione Instancias y, a continuación, seleccione la instancia.
- En la pestaña Redes, vaya a Interfaces de red y anote el ID de subred de la interfaz de red secundaria.
- Abra la consola de Amazon Virtual Private Cloud (Amazon VPC), seleccione Subredes y, a continuación, anote el rango CIDR de IPv4 indicado para el ID de subred.
- Para aplicar la configuración de red, ejecute el siguiente comando:
netplan --debug apply
Información relacionada
Vídeos relacionados


Contenido relevante
- Respuesta aceptadapreguntada hace 20 díaslg...
- preguntada hace 3 meseslg...
- preguntada hace un meslg...
- preguntada hace 23 díaslg...
- preguntada hace 2 meseslg...
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace 7 meses
- OFICIAL DE AWSActualizada hace 2 años