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]







  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.


  2. ^ 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.


  3. ^ 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 :)


  4. ^ 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.


  5. ^ 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.


  6. ^ 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).


  7. ^ “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.




is your network flexible?