Soporte de VLANs

En alguna ocasión podemos necesitar soporte de VLANs en un servidor para que esté en diferentes redes/VLANs o haga de router con subinterfaces en diferentes VLANs. Debian y el Kernel (versión posterior a la 2.4.14) de Linux tienen soporte para ello.

Primero el kernel tiene que tener soporte para VLAN que es llamado 802.1q y el módulo por tanto 8021q. Los kernels de Debian por defecto viene con el módulo por lo que no es necesario compilar. En caso de tener que compilar el módulo debemos añadir esta característica. Para cargar el módulo:

modprobe 8021q

Segundo necesitamos ciertas herramientas para poder crear y manipular VLANs, esto se hace con el paquete Debian llamado vlan. Para instalarlo simplemente:

apt-get install vlan

Con esto ya podemos crear subinterfaces desde el shell de esta forma:

vconfig add interfaz vlanid

vconfig add eth0 123

y Podemos borrarlas de esta forma:

vconfig rem interfaz vlanid

vconfig rem eth0 123

En la ayuda del manual (man vconfig) tenemos todos los parámetros y opciones de las que disponemos.

Pero lo realmente interesante es que desde la versión 3.0 de Debian podemos configurar subinterfaces en el arranque de la red, es decir, configurar subinterfaces VLAN directamente en el fichero de configuración /etc/network/interfaces, con el siguiente formato (casi idéntico al de un interfaz normal):

iface vlannumero inet static
       address ip
       netmask mascara_de_red
       network red
       broadcast broadcast
       vlan_raw_device interfaz

En cursiva están los parámetros a introducir y en negrita los 2 referentes a VLANs:

  • vlannumero: debemos indicar el ID de la VLAN donde pone numero, por ejemplo VLAN123, es la VLAN 123.
  • interfaz: es la interfaz física donde se creará la subinterfaz VLAN, por ejemplo eth0.

En ejemplo de varias subinterfaces sería así:

# Subinterfaz VLAN 123
iface vlan123 inet static
       address 192.168.14.1
       netmask 255.255.255.0
       network 192.168.14.0
       broadcast 192.168.14.255
       vlan_raw_device eth1

# Subinterfaz VLAN 456
iface vlan456 inet static
       address 192.168.10.1
       netmask 255.255.255.0
       network 192.168.10.0
       broadcast 192.168.10.255
       vlan_raw_device eth0

También podemos crear alias dentro de una subinterfaz VLAN como siempre hemos hecho:

# Subinterfaz VLAN 123
iface vlan123 inet static
       address 192.168.14.1
       netmask 255.255.255.0
       network 192.168.14.0
       broadcast 192.168.14.255
       vlan_raw_device eth1

# Subinterfaz VLAN 123 ALIAS
iface vlan123:1 inet static
       address 192.168.14.2
       netmask 255.255.255.0
       network 192.168.14.0
       broadcast 192.168.14.255
       vlan_raw_device eth0

Con esto tenemos 2 IP dentro de la red 192.168.10.0/24 y de la VLAN 123.

Si ejecutamos un ifconfig -a o un ip addr veremos el listado de las subinterfaces.

Podemos obtener un listado de nombre de subinterfaz VLAN, VLAN ID y a que interfaz físico está asociado haciendo:

cat /proc/net/vlan/config

Retro

Lugares

Redes

Sistemas

Varios