IPv6 en Linux: varias interfaces de red (multihoming)

De Wiki de BandaAncha.eu
Saltar a: navegación, buscar

En ocasiones puede resultar interesante tener dos (o más) interfaces de red en nuestro equipo o servidor. Esto no es ningún problema, configuramos las direcciones IP de las interfaces y listo. El problema es que nuestro sistema enviará todo el tráfico a través de la interfaz principal, aunque proceda de una dirección IP de una interfaz secundaria. Si queremos enviar el tráfico de cada IP por su interfaz correspondiente, tendremos que utilizar tablas de rutas separadas. Veamos cómo.

En primer lugar, seguiremos el tutorial IPv6 en Linux: Red Hat, CentOS y Fedora para configurar las direcciones IP de las interfaces. Lo repetimos para todas y cada una de ellas, exceptuando la línea IPV6_DEFAULTGW que solamente añadiremos en la interfaz principal (en nuestro caso, eth0).

En este momento, nuestro sistema funcionará con IPv6, pero todo el tráfico se envía a través de la interfaz principal. Para separarlo, tendremos que crear una tabla de rutas secundaria, que utilizará la segunda interfaz de red. En ella vamos a añadir varias líneas: dos líneas generales y una adicional por cada una de las interfaces que tengamos en el sistema. En nuestro caso tenemos dos interfaces, así que tendremos un total de cuatro entradas en la tabla de rutas. Primero configuramos la línea que enviará el tráfico local de la interfaz eth0, donde 10 es el número arbitrario que hemos asignado a nuestra tabla y 2001:db8:1989:1::/64 la subred de la interfaz eth0:

sudo ip -6 route add table 10 2001:db8:1989:1::/64 dev eth0

Ahora lo repetimos para la interfaz secundaria, con su correspondiente subred:

sudo ip -6 route add table 10 2001:db8:1989:2::/64 dev eth1

Y así con cada una de las interfaces de que dispongamos. Una vez lo tengamos listo, añadimos dos líneas específicas para la interfaz que estamos configurando (en nuestro caso, eth1), sustituyendo la IP de nuestro gateway:

sudo ip -6 route add table 10 fe80::/64 dev eth1
sudo ip -6 route add table 10 default via 2001:db8:1989:2::1 metric 1

Con esto tenemos lista nuestra tabla de rutas. Ahora solo nos falta un comando que discrimine el tráfico según su IP de origen, para que el tráfico generado por la IP de la interfaz secundaria pase a través de la tabla de rutas que acabamos de crear y salga a través de la interfaz correspondiente. Sustituimos la dirección IP por la de nuestra interfaz eth1 (si tiene varias direcciones, podemos repetir la línea tantas veces como sea necesario):

sudo ip -6 rule add from 2001:db8:1989:2::27 lookup 10

Ya está, ahora tendremos el tráfico saliendo a través de su correspondiente interfaz de red.

Enlaces[editar]