Configuración de interfaces físicas, VLANs (vif) y agregación de enlaces (bonding) en Vyatta
Seguimos con los tutoriales de ejemplo para mostrar la forma de configurar los módulos de Vyatta. En este paso a paso de configuración de Vyatta nos centramos en la topología o esquema base que hemos creado para explicar la forma de configurar nuestra máquina Vyatta como router open source de la red, configuraremos interfaces, VLANs (vif) y enlaces agregados de red (bonding) para conseguir el primer paso y que actúe como router open source de la red interna y la mantenga segmentada según la topología propuesta.
En un post anterior pusimos un ejemplo de configuración básica inicial de Vyatta. Conviene pasar de nuevo y refrescar algunos conceptos y consejos de uso del CLI de Vyatta.
En esta publicación vamos a centrarnos en una configuración similar aunque algo más avanzada a la citada en el párrafo anterior pero en este caso vamos a ceñirnos a la topología o esquema base que hemos creado en la que se ha tratado de simular un entorno que se ajuste perfectamente a la realidad y para que sirva como referencia y punto de partida a las siguientes publicaciones que se vayan poniendo mostrando con ejemplos como se configuran los diferentes módulos y servicios que Vyatta integra.
Según la topología ejemplo tenemos un entorno con dos oficinas de la misma empresa geográficamente separadas y que habremos de interconectar de forma segura mediante una máquina Vyatta conectada a internet en cada una de las oficinas, a estas máquinas Vyatta las hemos llamado openredesR1 y openredesR2.
Configuration de openredesR1
openredesR1 tiene 3 interfaces de red, dos de ellas (eth0 y eth1) estarán configuradas como Link Aggregation (LACP, IEEE 802.3ad, NIC bonding, NIC teaming) 1 formando bond0 y la otra, eth2 está conectada al router ADSL. A su vez para posteriormente poder aplicar diferentes políticas de seguridad a los distintos departamentos de la empresa se ha decidido crear diferentes VLANs 2 que dividen la red LAN en subredes más pequeñas y homogéneas en cuanto a forma de trabajo y tipo de tráfico generado en la red se refiere. Para esto es necesario dividir bond0 en 5 subredes exactamente y configurar en openredesR1 una IP dentro del rango establecido para cada una de las subredes o VLAN que vamos a crear.
Entonces para configurar las 3 interfaces que tiene openredesR1 en la forma especificada y tener conectividad a Internet desde openredesR1 y las subredes creadas seguimos los siguientes pasos:
-
Creamos y editamos la interfaz bond0:
openredes@openredesR1# edit interfaces bonding bond0 3 [edit interfaces bonding bond0] openredes@openredesR1# set description LANTRUNK1A [edit interfaces bonding bond0] openredes@openredesR1# set mode 802.3ad 4 [edit interfaces bonding bond0] openredes@openredesR1# commit [edit interfaces bonding bond0] openredes@openredesR1# top 5 [edit] -
Añadimos las interfaces esclavas que van a formar parte de bond0:
openredes@openredesR1# set interfaces ethernet eth0 bond-group bond0 [edit] openredes@openredesR1# set interfaces ethernet eth1 bond-group bond0 [edit] openredes@openredesR1# commit [edit] -
Creamos las interfaces virtuales (VLANs) en bond0 asignándoles por ahora a cada una su IP (utilizaremos la última de cada rango) y una descripción:
openredes@openredesR1# edit interfaces bonding bond0 [edit interfaces bonding bond0] openredes@openredesR1# set vif 10 address 192.168.0.126/25 [edit interfaces bonding bond0] openredes@openredesR1# set vif 10 description Ventas [edit interfaces bonding bond0] openredes@openredesR1# set vif 20 address 192.168.0.190/26 [edit interfaces bonding bond0] openredes@openredesR1# set vif 20 description Marketing [edit interfaces bonding bond0] openredes@openredesR1# set vif 30 address 192.168.0.206/28 [edit interfaces bonding bond0] openredes@openredesR1# set vif 30 description Admon [edit interfaces bonding bond0] openredes@openredesR1# set vif 40 address 192.168.0.222/28 [edit interfaces bonding bond0] openredes@openredesR1# set vif 40 description Gerencia [edit interfaces bonding bond0] openredes@openredesR1# set vif 50 address 192.168.0.238/28 [edit interfaces bonding bond0] openredes@openredesR1# set vif 50 description DMZ [edit interfaces bonding bond0] openredes@openredesR1# commit [edit interfaces bonding bond0] openredes@openredesR1# top [edit] -
Después configuramos la interfaz conectada al router ADSL (en este caso suponemos que el router esta configurado en monopuesto o bridge con lo que tenemos la IP pública en la interfaz eth2 de Vyatta y tenemos que gestionar los parámetros de conexión con el ISP, que suponemos usa encapsulación PPPoE 6, en el ejemplo, usaremos también direcciones IP “TEST-NET” 7), todos estos datos necesitaremos obtenerlos de nuestro ISP:
openredes@openredesR1# set interfaces ethernet eth2 pppoe 0 local-address 192.0.2.10 [edit] openredes@openredesR1# set interfaces ethernet eth2 pppoe 0 user-id usuario@adsl [edit] openredes@openredesR1# set interfaces ethernet eth2 pppoe 0 password password [edit] openredes@openredesR1# set interfaces ethernet eth2 remote-address 192.0.2.1 [edit] openredes@openredesR1# commit [edit] -
Vemos a modo de resumen la configuración que acabamos de dar a las interfaces para comprobar posibles errores:
openredes@openredesR1# run show interfaces bonding bond0 { description LANTRUNK1A mode 802.3ad vif 10 { address 192.168.0.126/25 description Ventas } vif 20 { address 192.168.0.190/26 description Marketing } vif 30 { address 192.168.0.206/28 description Admon } vif 40 { address 192.168.0.222/28 description Gerencia } vif 50 { address 192.168.0.238/28 description DMZ } } ethernet eth0 { bond-group bond0 duplex auto hw-id aa:bb:cc:dd:ee:ff smp_affinity auto speed auto } ethernet eth1 { bond-group bond0 duplex auto hw-id ff:ee:dd:cc:bb:aa smp_affinity auto speed auto } ethernet eth2 { description Publica duplex auto hw-id a1:b2:c3:d4:e5:f6 pppoe 0 { local-address 192.0.2.10 password password remote-address 192.0.2.1 user-id usuario@adsl } smp_affinity auto speed auto } loopback lo { } -
También desde el modo de operación podemos ver la configuración que acabamos de hacer y el estado de las interfaces:
openredes@openredesR1# run show interfaces Interface IP Address State Link Description bond0 - up up LANTRUNK1A bond0.10 192.168.0.126/25 up up Ventas bond0.20 192.168.0.190/26 up up Marketing bond0.30 192.168.0.206/28 up up Administracion bond0.40 192.168.0.222/28 up up Gerencia bond0.50 192.168.0.238/28 up up DMZ eth0 - up up eth1 - up up eth2 192.0.2.10/24 up up lo 127.0.0.1/8 up up lo ::1/128 up up [edit] openredes@openredesR1#
Con esto ya tenemos en openredesR1 todas las subredes creadas (habiendo configurado previamente el switch para gestionar dichas VLANs y para soportar LACP en los puertos especificados), las interfaces operativas para actuar como router en todas las subredes y con acceso internet sin limitaciones.
-
El último paso una vez terminado de configurar openredesR1 como router para la primera sede ejemplo es guardar la configuración para que sea persistente ante cualquier reinicio:
openredes@openredesR1# save Saving configuration to '/opt/vyatta/etc/config/config.boot'... Done [edit]
Configuración de openredesR2
De la misma forma pasamos a la configuración básica de openredesR2, al igual que openredesR1 también tiene 3 interfaces de red, dos de ellas (eth0 y eth1) estarán configuradas como Link Aggregation (LACP, IEEE 802.3ad, NIC bonding, NIC teaming) 1 formando bond0 y la otra, eth2 está conectada al router ADSL. A su vez para posteriormente poder aplicar diferentes políticas de seguridad a los distintos departamentos de la empresa se ha decidido crear diferentes VLANs 2 que dividen la red LAN en subredes más pequeñas y homogéneas en cuanto a forma de trabajo y tipo de tráfico generado en la red se refiere. Para esto, en este caso, es necesario dividir bond0 en 3 subredes exactamente y configurar en openredesR2 una IP dentro del rango establecido para cada una de las subredes o VLAN que vamos a crear.
Entonces para configurar las 3 interfaces que tiene openredesR2 en la forma especificada y tener conectividad a Internet desde openredesR2 y las subredes creadas seguimos los siguientes pasos:
-
Creamos y editamos la interfaz bond0:
openredes@openredesR2# edit interfaces bonding bond0 3 [edit interfaces bonding bond0] openredes@openredesR2# set description LANTRUNK1B [edit interfaces bonding bond0] openredes@openredesR2# set mode 802.3ad 4 [edit interfaces bonding bond0] openredes@openredesR2# commit [edit interfaces bonding bond0] openredes@openredesR2# top 5 [edit] -
Añadimos las interfaces esclavas que van a formar parte de bond0:
openredes@openredesR2# set interfaces ethernet eth0 bond-group bond0 [edit] openredes@openredesR2# set interfaces ethernet eth1 bond-group bond0 [edit] openredes@openredesR2# commit [edit] -
Creamos las interfaces virtuales (VLANs) en bond0 asignándoles por ahora a cada una su IP (utilizaremos la última de cada rango) y una descripción:
openredes@openredesR2# edit interfaces bonding bond0 [edit interfaces bonding bond0] openredes@openredesR2# set vif 60 address 192.168.1.126/25 [edit interfaces bonding bond0] openredes@openredesR2# set vif 60 description I+D [edit interfaces bonding bond0] openredes@openredesR2# set vif 70 address 192.168.1.190/26 [edit interfaces bonding bond0] openredes@openredesR2# set vif 70 description Desarrollo [edit interfaces bonding bond0] openredes@openredesR2# set vif 80 address 192.168.1.254/26 [edit interfaces bonding bond0] openredes@openredesR2# set vif 80 description Servers [edit interfaces bonding bond0] openredes@openredesR2# commit [edit interfaces bonding bond0] openredes@openredesR2# top [edit] -
Después configuramos la interfaz conectada al router ADSL (en este caso suponemos que el router está configurado en monopuesto o bridge con lo que tenemos la IP pública en la interfaz eth2 de Vyatta y tenemos que gestionar los parámetros de conexión con el ISP, que suponemos usa encapsulación PPPoE 6, en el ejemplo, usaremos también direcciones IP del bloque “TEST-NET” 7), todos estos datos necesitaremos obtenerlos de nuestro ISP:
openredes@openredesR2# set interfaces ethernet eth2 pppoe 0 local-address 192.0.2.20 [edit] openredes@openredesR2# set interfaces ethernet eth2 pppoe 0 user-id usuario@adsl [edit] openredes@openredesR2# set interfaces ethernet eth2 pppoe 0 password password [edit] openredes@openredesR2# set interfaces ethernet eth2 remote-address 192.0.2.1 [edit] openredes@openredesR2# commit [edit] -
Comprobamos la configuración de interfaces que acabamos de hacer:
openredes@openredesR2# run show interfaces bonding bond0 { description LANTRUNK1B mode 802.3ad vif 60 { address 192.168.1.126/25 description I+D } vif 70 { address 192.168.1.190/26 description Desarrollo } vif 80 { address 192.168.1.254/26 description Servers } } ethernet eth0 { bond-group bond0 duplex auto hw-id 00:11:22:33:44:55 smp_affinity auto speed auto } ethernet eth1 { bond-group bond0 duplex auto hw-id 01:23:45:67:89:ab smp_affinity auto speed auto } ethernet eth2 { description Publica duplex auto hw-id 55:44:33:22:11:00 pppoe 0 { local-address 192.0.2.20 password password remote-address 192.0.2.1 user-id usuario@adsl } smp_affinity auto speed auto } loopback lo { }
Con esto ya tenemos en openredesR2 todas las subredes creadas (habiendo configurado previamente el switch para gestionar dichas VLANs y para soportar LACP en los puertos especificados), las interfaces operativas para actuar como router en todas las subredes y con acceso internet sin limitaciones.
-
El último paso una vez terminado de configurar openredesR2 como router para la segunda sede ejemplo es guardar la configuración para que sea persistente ante cualquier reinicio:
openredes@openredesR2# save Saving configuration to '/opt/vyatta/etc/config/config.boot'... Done [edit]
[ad] Empty ad slot (#1)!
- ^ Para por llevar a cabo la configuración citada de agregación de enlaces es necesario que el switch al que conectemos los enlaces soporte y tenga los puertos a los que conectamos dichos enlaces configurados según el protocolo LACP.
- ^ Para el funcionamiento de las subredes hemos de configurar el switch para que refleje las VLANs etiquetadas de la misma forma que lo hemos hecho en nuestro router Vyatta.
- ^ Recordemos que con el comando “edit” nos posicionamos directamente en la rama del nodo que especifiquemos a continuación.
Recordemos también que el tabulador es nuestro amigo :) - ^ Usamos el ejemplo el modo 802.3ad o Dynamic link aggregation, que permite crear grupos de enlaces en agregación que compartan las mismas configuraciones de velocidad y duplex. Permite “sumar” las capacidades de todos los enlaces del grupo y ofrecer tolerancia a fallos ante la caída de puertos o de enlaces.
- ^ Recordemos que con el comando “top” salimos de la rama en la que estamos y volvemos a la raíz del sistema de configuración.
- ^ La encapsulación PPPoE (Point-to-Point Protocol over Ethernet) se usa crear un PVC en líneas ADSL tal y como define el RFC 2516. Podemos configurar para este fin tanto una interfaz ADSL como una interfaz Ethernet (no será así¬ para el resto de encapsulaciones ADSL).
- ^ “TEST-NET” es un bloque de direcciones de ejemplo que comprende las IPs contenidas en el bloque 192.0.2.0/24 (ver actualización de direcciones IPv4 reservadas para proposito especial) para su uso en documentación y código ejemplo como establece el RFC 3330.











jeje tranqui hombre, es que he estao liaillo ultimamente.
A ver, la regla no te funciona porque solo permites conexiones que ya se han iniciado antes, si añades despues de la regla 2 otra numero 5 por ejemplo en la que permitas el inicio de las conexiones que especificas en ese grupo de puertos ya no tendras problema.
Otra cosa que puedes hacer es no reflejar nada de estado de conexión o insertar tambien el comando que permita las conexiones iniciarse “set state new enable” en la regla 2.
No intentes llevar al pie de la letra los ejemplos que yo hago en los tutoriales, la idea es que entiendas perfectamente lo que hago y como lo hago y una vez entiendas todo no tendrás problema en enfrentarte a cualquier tipo de configuración.