Configurando Troncal de Vlan en la Raspberry Pi 2

Summary. On this post we configure Raspberry Pi in VLAN trunk mode, in this way rpi 2 has a potential use as an IP probe in a telecom network. We define basic concepts, show networking scenario and configuration files used in Raspberry Pi 2.

wpid-img_20150421_082806.jpg

 

En algunos escenarios, como por ejemplo en pruebas de performance de enlace, se requiere configurar la raspberry pi en modo troncal. En este artículo veremos como se puede hacer esto con un ejemplo de configuración permanente.

 

Definiciones básicas

La VLAN es una forma de separar el tráfico a nivel de capa 2. Desde el punto de vista del usuario este no sabe ni configura VLAN esto es un concepto que permanece en el equipo que trabaja hasta la capa 2 o switch, en ocasiones se debe comunicar la información de VLANs entre equipos, esto se hace a través de troncales de VLAN.

Una troncal de VLAN es un modo de comunicación de capa 2 donde un mismo enlace es capaz de transportar múltiples vlan. Esto se realiza de acuerdo a las definiciones del estandard 802.1q. Esencialmente un Trunk de VLANs consiste en agregar un TAG al frame Ethernet donde, entre otros campos, se considera el valor de VLAN o VLAN id. Esta información solo tiene significado entre los dos equipos participantes del trunk.

Escenario de prueba

La prueba se define del siguiente modo: Un router conecta a un switch en modo acceso a través de la VLAN 1 proporcionando servicio de DHCP a traves de esta VLAN. El switch a su vez tiene una puerta en modo troncal para conectar a la rasberry pi usando las Vlan 1, 10, 20. En la Raspberry se define el direccionamiento estático asociado a la vlan 10 y 20 y se deja la configuración dinámica para la VLAN 1

Para hacer esta prueba usamos un switch administrable modelo 260GS y un router modelo 750GL, ambos de marca Mikrotik conectados como se muestra en la figura.

vlantrunk

Definiciones de diseño
Se consideran las siguientes definiciones para los servicios y direccionamiento
VLAN 1 192.168.88.0/24, con DHCP client en la Raspberry Pi 2
VLAN 10 192.168.10.0/24, con .2 en la Raspberry Pi 2
VLAN 20 192.168.20.0/24, con .2 en la Raspberry Pi 2

 

Configuración en Raspberry Pi 2

Usamos una Raspberry Pi 2 con Raspbian, como hemos descrito en otro artículo
Conectamos la Raspberry Pi en una puerta en modo acceso, en la VLAN 1.

Los comandos usados son los siguientes,

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install vlan
sudo modprobe 8021q

El último comando se verifica con

lsmod | grep 8021q

Luego se ejecutan los siguientes comandos

pi@raspberrypi ~ $ sudo su -
root@raspberrypi:~# echo 8021q >> /etc/modules
root@raspberrypi:~# exit

Luego se abre el archivo de configuración con el comando

sudo nano /etc/network/interfaces

El archivo queda de esta manera

auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

# Connect all virtual VLAN trunks once the physical
# Ethernet comes up.
post-up ifup eth0.10
post-up ifup eth0.20

# Define subinterfaz para VLAN 10
iface eth0.10 inet static
address 192.168.10.250
netmask 255.255.255.0

# Define subinterfaz para VLAN 20
iface eth0.20 inet static
address 192.168.20.250
netmask 255.255.255.0

El objetivo del archivo anterior es usar la VLAN 1 para levantar la puerta INDEPENDIENTEMENTE si las otras VLANs existen o no, es decir, considera failover.

Luego haces restart de los servicios de red

sudo /etc/init.d/networking restart

Y verificamos

pi@raspberrypi ~ $ ifconfig -a
eth0      Link encap:Ethernet  HWaddr b8:27:eb:d5:6e:dd
          inet addr:192.168.88.254  Bcast:192.168.88.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:155668 errors:0 dropped:0 overruns:0 frame:0
          TX packets:102024 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:10658583 (10.1 MiB)  TX bytes:8356417 (7.9 MiB)

eth0.10   Link encap:Ethernet  HWaddr b8:27:eb:d5:6e:dd
          inet addr:192.168.10.2  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

eth0.20   Link encap:Ethernet  HWaddr b8:27:eb:d5:6e:dd
          inet addr:192.168.20.2  Bcast:192.168.20.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Referencias

http://www.sbprojects.com/projects/raspberrypi/vlan.php
https://blog.sleeplessbeastie.eu/2012/12/23/debian-how-to-create-vlan-interface/
http://www.cyberciti.biz/tips/howto-configure-linux-virtual-local-area-network-vlan.html

Author: Manuel Carrasco

Ingeniero Eléctrico, Institutano, instructor certificado Cisco, en twitter @mcarrasco con comentarios y opiniones personales.

Deja una respuesta

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