Configuración del router virtual VyOS – Router02
Configuración del router virtual VyOS – Router02

Configuración del router virtual VyOS – Router02

Hola a tod@s

En este post continuaremos con la configuración más avanzada de VyOS. Veremos la configuración del segundo router y las pruebas de conectividad.

Para más detalle de cómo realizar el deploy de VyOS, revisamos el post anterior “Configuración del router virtual VyOS – Router01”

Configurar VM VyOS

Las credenciales por defecto de la máquina virtual son las siguientes:

Usuario: vyos

Password: vyos

Desde este punto comenzaremos a ver los comandos que usaremos para configurar nuestro router vyos 02.

Configurar un nombre al router virtual

vyos@VyOS-witcherIT-02# configure

vyos@VyOS-witcherIT-02# set system host-name VyOS-witcherIT-02

Habilitar SSH en VyOS-01

vyos@VyOS-witcherIT-02# set service ssh port 22

Configurar servidor DNS

vyos@VyOS-witcherIT-02# set system name-server 8.8.8.8

Confirmamos los cambios y guardamos los mismos.

vyos@VyOS-witcherIT-02# commit

vyos@VyOS-witcherIT-02# save

Ahora, lo siguiente es configurar la interface con acceso a Internet. Esto nos permitirá poder acceder vía ssh a nuestro router.

Revisamos la configuración actual de la interfaces conectadas a nuestro router.

vyos@VyOS-witcherIT-02# exit

vyos@VyOS-witcherIT-02# show interfaces

Configuramos una IP en la interface eth0 que es la que tiene acceso a internet.

vyos@VyOS-witcherIT-02# configure

vyos@VyOS-witcherIT-02# set interfaces ethernet eth0 address 192.168.100.141/24

vyos@VyOS-witcherIT-02# set interfaces ethernet eth0 description Internet

vyos@VyOS-witcherIT-02# commit && save

Revisamos la configuración.

vyos@VyOS-witcherIT-02# exit

vyos@VyOS-witcherIT-02# show  interfaces

Ahora ya podemos conectarnos a la IP configurada via ssh.

Ahora necesitaremos crear una ruta estática a ISP (Internet). Con esta ruta podremos tener acceso a redes externa.

vyos@VyOS-witcherIT-02# configure

vyos@VyOS-witcherIT-02# set protocols static route 0.0.0.0/0 next-hop 192.168.100.1 distance 1

vyos@VyOS-witcherIT-02# commit && save

vyos@VyOS-witcherIT-02# ping 8.8.8.8

Configuración de router 02

En este punto veremos la configuración usada en el router 02, en mi laboratorio. Esta es una configuración y no es mandatorio, solo sirve como una humilde guía para saber cómo configurar algunas características de VyOS.

Para comenzar realizaremos la configuración de MTU en interface que usaremos.

vyos@VyOS-witcherIT-02# set interfaces ethernet eth2 mtu 9000

vyos@VyOS-witcherIT-02# set interfaces ethernet eth3 mtu 9000

Configuración de port-Channel en las interfaces eth2 y eth3.

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 description ‘Switch Port-Channel’

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 hash-policy ‘layer2’

vyos@VyOS-witcherIT-02# set interfaces ethernet eth2 bond-group ‘bond0’

vyos@VyOS-witcherIT-02# set interfaces ethernet eth2 description ‘member of bond0’

vyos@VyOS-witcherIT-02# set interfaces ethernet eth3 bond-group ‘bond0’

vyos@VyOS-witcherIT-02# set interfaces ethernet eth3 description ‘member of bond0’

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 mode round-robin

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 mtu 9000

Configuración de VRRP para red Internet

vyos@VyOS-witcherIT-02# set high-availability vrrp group Internet hello-source-address 192.168.100.142

vyos@VyOS-witcherIT-02# set high-availability vrrp group Internet interface eth0

vyos@VyOS-witcherIT-02# set high-availability vrrp group Internet peer-address 192.168.100.141

vyos@VyOS-witcherIT-02# set high-availability vrrp group Internet no-preempt

vyos@VyOS-witcherIT-02# set high-availability vrrp group Internet priority 100

vyos@VyOS-witcherIT-02# set high-availability vrrp group Internet virtual-address 192.168.100.145/24

vyos@VyOS-witcherIT-02# set high-availability vrrp group Internet vrid 200

vyos@VyOS-witcherIT-02# commit

vyos@VyOS-witcherIT-02# Save

Configuración de VRRP para red Interna

vyos@VyOS-witcherIT-02# set interfaces ethernet eth1 vif 201 address 10.200.201.3/24

vyos@VyOS-witcherIT-02# set interfaces ethernet eth1 vif 201 description Interno

vyos@VyOS-witcherIT-02# set high-availability vrrp group int hello-source-address 10.200.201.3

vyos@VyOS-witcherIT-02# set high-availability vrrp group int interface eth1.201

vyos@VyOS-witcherIT-02# set high-availability vrrp group int peer-address 10.200.201.2

vyos@VyOS-witcherIT-02# set high-availability vrrp group int no-preempt

vyos@VyOS-witcherIT-02# set high-availability vrrp group int priority 100

vyos@VyOS-witcherIT-02# set high-availability vrrp group int virtual-address 10.200.201.1/24

vyos@VyOS-witcherIT-02# set high-availability vrrp group int vrid 201

Configuración de VRRP para VLANs

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 205 address 172.16.150.3/24

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 205 description VLAN200

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 205 mtu 9000

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN200 hello-source-address 172.16.150.3

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN200 interface bond0.205

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN200 peer-address 172.16.150.2

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN200 no-preempt

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN200 priority 100

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN200 virtual-address 172.16.150.1/24

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN200 vrid 205

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 206 address 172.16.160.3/24

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 206 description VLAN300

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 206 mtu 9000

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN300 hello-source-address 172.16.160.3

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN300 interface bond0.206

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN300 peer-address 172.16.160.2

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN300 no-preempt

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN300 priority 100

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN300 virtual-address 172.16.160.1/24

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN300 vrid 206

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 207 address 172.16.170.3/24

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 207 description VLAN400

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 207 mtu 9000

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN400 hello-source-address 172.16.170.3

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN400 interface bond0.207

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN400 peer-address 172.16.170.2

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN400 no-preempt

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN400 priority 100

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN400 virtual-address 172.16.170.1/24

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN400 vrid 207

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 208 address 172.16.180.3/24

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 208 description VLAN500

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 208 mtu 9000

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN500 hello-source-address 172.16.180.3

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN500 interface bond0.208

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN500 peer-address 172.16.180.2

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN500 no-preempt

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN500 priority 100

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN500 virtual-address 172.16.180.1/24

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN500 vrid 208

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 209 address 172.16.190.3/24

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 209 description VLAN600

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 209 mtu 9000

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN600 hello-source-address 172.16.190.3

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN600 interface bond0.209

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN600 peer-address 172.16.190.2

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN600 no-preempt

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN600 priority 100

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN600 virtual-address 172.16.190.1/24

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN600 vrid 209

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 210 address 172.16.210.3/24

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 210 description VLAN700

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 210 mtu 9000

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN700 hello-source-address 172.16.210.3

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN700 interface bond0.210

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN700 peer-address 172.16.210.2

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN700 no-preempt

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN700 priority 100

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN700 virtual-address 172.16.210.1/24

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN700 vrid 210

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 220 address 172.16.220.3/24

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 220 description VLAN800

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 220 mtu 9000

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN800 hello-source-address 172.16.220.3

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN800 interface bond0.220

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN800 peer-address 172.16.220.2

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN800 no-preempt

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN800 priority 100

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN800 virtual-address 172.16.220.1/24

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN800 vrid 220

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 230 address 172.16.230.3/24

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 230 description VLAN900

vyos@VyOS-witcherIT-02# set interfaces bonding bond0 vif 230 mtu 9000

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN900 hello-source-address 172.16.230.3

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN900 interface bond0.230

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN900 peer-address 172.16.230.2

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN900 no-preempt

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN900 priority 100

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN900 virtual-address 172.16.230.1/24

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN900 vrid 230

Crear grupo de sincronización para VRRP

Un grupo de sincronización permite que los grupos VRRP realicen la transición juntos.

vyos@VyOS-witcherIT-02# edit high-availability vrrp

vyos@VyOS-witcherIT-02# set sync-group VLAN  member VLAN200

vyos@VyOS-witcherIT-02# set sync-group VLAN  member VLAN300

vyos@VyOS-witcherIT-02# set sync-group VLAN  member VLAN400

vyos@VyOS-witcherIT-02# set sync-group VLAN  member VLAN500

vyos@VyOS-witcherIT-02# set sync-group VLAN  member VLAN600

vyos@VyOS-witcherIT-02# set sync-group VLAN  member VLAN700

vyos@VyOS-witcherIT-02# set sync-group VLAN  member VLAN800

vyos@VyOS-witcherIT-02# set sync-group VLAN  member VLAN900

vyos@VyOS-witcherIT-02# set sync-group Internet  member Internet

vyos@VyOS-witcherIT-02# set sync-group Interno  member int

vyos@VyOS-witcherIT-02# exit

vyos@VyOS-witcherIT-02# commit

vyos@VyOS-witcherIT-02# save

Scripts de comprobación de estado

La funcionalidad VRRP se puede ampliar con scripts. VyOS soporta dos tipos de Scripts: health check scripts y scripts de transition. Scripts de health check se ejecutan comprobaciones personalizadas además de la accesibilidad del enrutador maestro. Los scripts de transition se ejecutan cuando el estado VRRP cambia de maestro a backup o error y viceversa, y se puede utilizar para habilitar o deshabilitar ciertos servicios.

Buscando en la web, encontré un script básico de comprobación de estado (https://forum.vyos.io/t/vrrp-check-script-succeeds-when-run-in-shell-fails-when-run-by-vrrp/4507/10). Para la configuración que tengo en mi laboratorio funciona correctamente.

vyos@VyOS-witcherIT-02# vi /config/scripts/vrrp.sh 

(Agregar al archivo)

#!/bin/bash

echo “$(date) test” >> /tmp/checkvtysh

/usr/bin/vtysh -c “show ip route” >> /tmp/checkvtysh 2>&1

“Guardar los cambios”

vyos@VyOS-witcherIT-02# chmod +x /config/scripts/vrrp.sh

Confirmamos los cambios y guardamos la configuración.

Configuración de comprobación de estado con script

Esta configuración hará que el proceso VRRP se ejecute cada 60 segundos y haga la transición del grupo si falla (es decir, salidas con estado distinto de cero) tres veces.

vyos@VyOS-witcherIT-02# set high-availability vrrp group int health-check script /config/scripts/vrrp.sh

vyos@VyOS-witcherIT-02# set high-availability vrrp group int health-check interval 60

vyos@VyOS-witcherIT-02# set high-availability vrrp group int health-check failure-count 3

vyos@VyOS-witcherIT-02# set high-availability vrrp group Internet health-check script /config/scripts/vrrp.sh

vyos@VyOS-witcherIT-02# set high-availability vrrp group Internet health-check interval 60

vyos@VyOS-witcherIT-02# set high-availability vrrp group Internet health-check failure-count 3

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN200 health-check script /config/scripts/vrrp.sh

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN200 health-check interval 60

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN200 health-check failure-count 3

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN300 health-check script /config/scripts/vrrp.sh

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN300 health-check interval 60

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN300 health-check failure-count 3

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN400 health-check script /config/scripts/vrrp.sh

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN400 health-check interval 60

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN400 health-check failure-count 3

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN500 health-check script /config/scripts/vrrp.sh

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN500 health-check interval 60

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN500 health-check failure-count 3

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN600 health-check script /config/scripts/vrrp.sh

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN600 health-check interval 60

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN600 health-check failure-count 3

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN700 health-check script /config/scripts/vrrp.sh

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN700 health-check interval 60

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN700 health-check failure-count 3

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN800 health-check script /config/scripts/vrrp.sh

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN800 health-check interval 60

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN800 health-check failure-count 3

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN900 health-check script /config/scripts/vrrp.sh

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN900 health-check interval 60

vyos@VyOS-witcherIT-02# set high-availability vrrp group VLAN900 health-check failure-count 3

Configurar NAT

Source NAT generalmente se conoce simplemente como NAT, y es el proceso de tener muchos host internos que se comunican con Internet utilizando una IP única o un subconjunto de direcciones IP.

Para configurar SNAT, necesitamos saber:

  • Las direcciones IP internas que queremos traducir;
  • La interfaz saliente para realizar la translation on;
  • La dirección IP externa a la que se va a traducir.

vyos@VyOS-witcherIT-02# set nat source rule 10 outbound-interface eth0

vyos@VyOS-witcherIT-02# set nat source rule 20 outbound-interface eth0

vyos@VyOS-witcherIT-02# set nat source rule 30 outbound-interface eth0

vyos@VyOS-witcherIT-02# set nat source rule 40 outbound-interface eth0

vyos@VyOS-witcherIT-02# set nat source rule 50 outbound-interface eth0

vyos@VyOS-witcherIT-02# set nat source rule 60 outbound-interface eth0

vyos@VyOS-witcherIT-02# set nat source rule 10 source address 10.200.201.0/24

vyos@VyOS-witcherIT-02# set nat source rule 20 source address 172.16.150.0/24

vyos@VyOS-witcherIT-02# set nat source rule 30 source address 172.16.160.0/24

vyos@VyOS-witcherIT-02# set nat source rule 40 source address 172.16.170.0/24

vyos@VyOS-witcherIT-02# set nat source rule 50 source address 172.16.180.0/24

vyos@VyOS-witcherIT-02# set nat source rule 60 source address 172.16.190.0/24

vyos@VyOS-witcherIT-02# set nat source rule 10 translation address masquerade

vyos@VyOS-witcherIT-02# set nat source rule 20 translation address masquerade

vyos@VyOS-witcherIT-02# set nat source rule 30 translation address masquerade

vyos@VyOS-witcherIT-02# set nat source rule 40 translation address masquerade

vyos@VyOS-witcherIT-02# set nat source rule 50 translation address masquerade

vyos@VyOS-witcherIT-02# set nat source rule 60 translation address masquerade

Configuración de OSPF

Open Shortest Path First (OSPF) es un protocolo de enrutamiento para el protocolo de Internet Redes (IP). Utiliza un algoritmo de enrutamiento de estado de enlace (LSR) y cae en el grupo de interior gateway protocols (IGP), que operan dentro de un único autónomo sistema (AS). Se define como OSPF Versión 2 en RFC2328 (1998) para IPv4. Actualizaciones para IPv6 se especifican como OSPF Versión 3 en RFC5340 (2008). OSPF apoya el Modelo de direccionamiento de enrutamiento entre dominios sin clases (CIDR).

Esta es una configuración básica de OSPF del Router 02.

Para tener un sistema VyOS intercambiando rutas con vecinos OSPF, al menos necesitaremos configurar un área y una red.

Configuración de OSPF para la red con salida a Internet:

vyos@VyOS-witcherIT-02# config

vyos@VyOS-witcherIT-02# set protocols ospf area 0 network 192.168.100.0/24

Configuración de OSPF para la red interna:

vyos@VyOS-witcherIT-02# set protocols ospf area 200 network 10.200.201.0/24

Configuración de OSPF para las VLAN sobre bond0:

vyos@VyOS-witcherIT-02# set protocols ospf area 100 network 172.16.150.0/24

vyos@VyOS-witcherIT-02# set protocols ospf area 100 network 172.16.160.0/24

vyos@VyOS-witcherIT-02# set protocols ospf area 100 network 172.16.170.0/24

vyos@VyOS-witcherIT-02# set protocols ospf area 100 network 172.16.180.0/24

vyos@VyOS-witcherIT-02# set protocols ospf area 100 network 172.16.190.0/24

vyos@VyOS-witcherIT-02# set protocols ospf area 100 network 172.16.210.0/24

vyos@VyOS-witcherIT-02# set protocols ospf area 100 network 172.16.220.0/24

vyos@VyOS-witcherIT-02# set protocols ospf area 100 network 172.16.230.0/24

El otro punto mínimo de la configuración es ID:

vyos@VyOS-witcherIT-02# set protocols ospf parameters router-id 2.2.2.2

vyos@VyOS-witcherIT-02# set protocols ospf  log-adjacency-changes

vyos@VyOS-witcherIT-02# commit

vyos@VyOS-witcherIT-02# save

Podemos revisar la configuración con el comando:

vyos@VyOS-witcherIT-02# run show ip ospf neighbor

Esta es la configuración de prueba que estoy manejando actualmente en mi laboratorio. No es una configuración perfecta y puede que tenga algunos problemas, ya que no soy experto en redes. La idea es brindar una pequeña guía y dar a conocer VyOS como una excelente alternativa para manejar el enrutamiento o firewall en nuestro laboratorio.

Espero que esta información pueda ser de ayuda, y cualquier duda o sugerencia la dejan en los comentarios. Saludos.

Lista completa de la serie:

Leave a Reply

Your email address will not be published. Required fields are marked *