VLANs y múltiples alias de red en Red Hat 6

networking vlanPara poder trabajar con VLANs tageadas en un servidor Red Hat Enterprise 6.0 con múltiples alias de red, tendremos que esforzarnos un poco. En mi caso, he partido de un servidor con una única tarjeta de red (eth0) configurada con 10 alias, todo IPs del mismo rango, del siguiente estilo:

Por supuesto, el servidor contaba con un default gateway configurado en cada uno de los alias:

Con este servidor en producción, y con mucho sudor frío, he pasado a configurar el rango 10.0.0.2-10.0.0.25 en el servidor, con default gateway 10.0.0.1, todo perteneciente a la VLAN 30, y todo tageado, también usando la misma interfaz eth0, y lo más importante, manteniendo la configuración de red original (es decir, acabaremos teniendo el servidor configurado para trabajar con 2 rangos de IPs diferentes, uno de ellos perteneciente a la VLAN 30).

Por cierto, si estás pensando en seguir los pasos aquí descritos en un servidor en producción, te recomendaría testearlos primero en un entorno de test, y tener un plan B para recuperar la conectividad con el servidor en caso de cometer algún error.

Configuración del soporte VLAN

Lo primero que tendremos que hacer, es asegurarnos que el servidor tiene soporte para trabajar con VLANs tageadas:

Si no hay respuesta tras ejecutar el comando anterior, deberemos cargar el módulo 8021q con el siguiente comando:

Tras ello, podremos verificar como ahora sí estará cargado el soporte para VLANs tageadas:

Para que el nuevo módulo se cargue tras cada reinicio, deberemos seguir la documentación oficial de Red Hat 6, y crear un fichero para dicho propósito:

NOTA: Ésto mismo, también me ha funcionado bien en un antiguo servidor Fedora 13.

Configuración de las interficies de red

En entornos del tipo Red Hat, una interfaz que pertenece a la VLAN con ID 30, se configurará mediante un fichero en /etc/sysconfig/network-scripts con nombre “interfaz”.”VlanID” En nuestro caso, crearemos una interfaz de este estilo para la primera IP del nuevo rango:

Una vez tengamos lista la interfaz, pasaremos a configurar el resto del rango, creando un fichero de rango para nuestra recién creada interfaz:

Con ésto, habremos configurado el rango de IPs 10.0.0.2-10.0.0.25 como alias de nuestra interfaz eth0, todas trabajando con la VLAN tageada con VLANID 30.

Si reiniciamos la red veremos como nos aparecen los nuevos alias de nuestra interfasz eth0. Hay que tener en cuenta, que en el ejemplo, se ha especificado como CLONENUM_START=20, lo cual significa que los nuevos alias se empezarán a crear a partir del alias 20, tal que así eth0.30:20, eth0.30:21, etc.

Ruta estática para el nuevo gateway

Ahora que tenemos el soporte VLAN con el módulo 8021q, y hemos definido el nuevo rango de IPs como alias pertenecientes a la VLAN 30, con todo el tráfico tageado, faltará definir las rutas estáticas para que el nuevo rango de IPs salga por su gateway (10.0.0.1) en lugar de por el default gateway del server (192.168.1.1). A ésto se le conoce como “source based policy routing“, puesto que el enrutado se hace basandose en la red origen en lugar de en la red destino.

Primero, deberemos crear una nueva tabla de rutas para la nueva VLAN:

A continuación crearemos una regla para que todo el tráfico que tenga como origen la nueva red que hemos creado (10.0.0.0/24) mire la nueva tabla de rutas:

Finalmente, llenaremos la nueva tabla de rutas con el default gateway para el nuevo rango:

Como se puede ver, en la instrucción anterior indicamos que el default gateway para la tabla vlan30 corresponde con la IP 10.0.0.1, y sale a través de la nueva interfaz de red eth0.30. De esta manera, el tráfico saldrá por la interfaz configurada para tagear el tráfico con el VLANID 30.

En este punto, ya podremos trabajar con nuestro anterior rango de IPs del servidor, 192.168.1.0/24, además de con el nuevo rango 10.0.0.1 que saldrá tageado con VLANID 30. Sin embargo, aun no habremos acabado, pues estos cambios en las tablas de rutas no son persistentes.

Para hacer estos cambios permanentes, tendremos que crear un fichero para la regla, y otro para la ruta. Respecto a la regla, lo crearemos así:

Siguiendo la misma filosofía, crearemos un nuevo fichero para la ruta:

Con ésto conseguiremos que los cambios referentes a las rutas estáticas, no se pierdan tras reiniciar la red o la máquina, y ya tendríamos nuestra nueva red, con múltiples alias, lista para trabajar con tráfico VLAN tageado, manteniendo la red original del servidor.

Fuentes:

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s2-networkscripts-interfaces_802.1q-vlan-tagging.html

http://www.pukkapanel.com/guide6/add-vlan-and-ip-range

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/sec-Persistent_Module_Loading.html

https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/5/html/Deployment_Guide/s1-networkscripts-static-routes.html

http://random.cconn.info/2013/01/14/centos-policy-routing-why-yes-it-can-be-done/

Flickr! Foto por twicepix

2 opiniones en “VLANs y múltiples alias de red en Red Hat 6”

  1. Por cierto, asegúrate de contar con el paquete “vconfig” (puedes instalarlo con yum si no lo tienes) antes de aplicar los cambios, pues en caso contrario podrías encontrarte con el siguiente mensaje de error al reiniciar la red para aplicar los cambios:

    “Bringing up interface eth0.30: Device eth0.30 does not seem to be present, delaying initialization.”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *