VyOS: Primera Configuración — NAT, Firewall, Rutas Estáticas y VLANs
VyOS es un router/firewall de código abierto basado en Debian. A diferencia de equipos como MikroTik o Cisco, toda la configuración vive en un árbol jerárquico que se edita en modo de configuración y se confirma con commit. Este modelo — inspirado en Junos — hace que los cambios sean atómicos y reversibles, lo cual es una ventaja real en producción.
Este post cubre los cuatro bloques fundamentales para dejar un router VyOS operativo: NAT, Firewall, Rutas Estáticas y VLANs.
Escenario de referencia
1Internet
2 │
3 eth0 (WAN — IP pública o DHCP del ISP)
4 │
5 [VyOS]
6 │
7 eth1 (LAN — 192.168.1.1/24)
8 │
9 eth1.10 VLAN 10 — Servidores (10.10.10.1/24)
10 eth1.20 VLAN 20 — Usuarios (10.10.20.1/24)
1. Configuración inicial de interfaces
Entrar al modo de configuración es siempre el primer paso:
1configure
Asignar IPs a las interfaces:
1set interfaces ethernet eth0 description 'WAN'
2set interfaces ethernet eth0 address dhcp
3
4set interfaces ethernet eth1 description 'LAN'
5set interfaces ethernet eth1 address '192.168.1.1/24'
Confirmar y guardar:
1commit
2save
Tip:
compareantes decommitmuestra exactamente qué cambiará. Útil para auditar en sesiones largas.
2. NAT — Masquerade hacia WAN
VyOS implementa NAT como reglas numeradas. Para salida a internet desde cualquier subred interna:
1set nat source rule 10 description 'LAN a Internet'
2set nat source rule 10 outbound-interface name 'eth0'
3set nat source rule 10 source address '192.168.0.0/16'
4set nat source rule 10 translation address masquerade
5
6commit
7save
El bloque 192.168.0.0/16 cubre la LAN y las VLANs que se agregarán más adelante. Si preferís ser más estricto, podés crear una regla por subred.
Verificar:
1show nat source rules
2show nat source translations
3. Firewall por zonas
VyOS permite un modelo de firewall basado en zonas, donde cada interfaz pertenece a una zona y se define la política entre pares de zonas. Es más ordenado que aplicar reglas sueltas por interfaz.
Definir zonas
1set firewall zone WAN interface eth0
2set firewall zone LAN interface eth1
3set firewall zone LOCAL local-zone
local-zone es el propio router (tráfico que termina o sale de VyOS mismo).
Política WAN → LOCAL (acceso al router desde internet)
Por defecto denegar todo; permitir solo ICMP y respuestas de conexiones establecidas:
1set firewall ipv4 name WAN-TO-LOCAL default-action drop
2set firewall ipv4 name WAN-TO-LOCAL rule 10 action accept
3set firewall ipv4 name WAN-TO-LOCAL rule 10 state established
4set firewall ipv4 name WAN-TO-LOCAL rule 10 state related
5set firewall ipv4 name WAN-TO-LOCAL rule 20 action accept
6set firewall ipv4 name WAN-TO-LOCAL rule 20 protocol icmp
7
8set firewall zone LOCAL from WAN firewall name WAN-TO-LOCAL
Política WAN → LAN (tráfico entrante hacia la red)
1set firewall ipv4 name WAN-TO-LAN default-action drop
2set firewall ipv4 name WAN-TO-LAN rule 10 action accept
3set firewall ipv4 name WAN-TO-LAN rule 10 state established
4set firewall ipv4 name WAN-TO-LAN rule 10 state related
5
6set firewall zone LAN from WAN firewall name WAN-TO-LAN
Política LAN → WAN (tráfico saliente de la LAN)
1set firewall ipv4 name LAN-TO-WAN default-action accept
2
3set firewall zone WAN from LAN firewall name LAN-TO-WAN
1commit
2save
Verificar:
1show firewall zones
2show firewall ipv4 name WAN-TO-LOCAL statistics
4. Rutas estáticas
Para redes que no son directamente conectadas ni aprendidas por un protocolo de ruteo dinámico.
Ruta por defecto manual (si eth0 no usa DHCP)
1set protocols static route 0.0.0.0/0 next-hop 203.0.113.1
Ruta hacia una red remota detrás de otro router
Supongamos que 192.168.100.0/24 está detrás de un router en 192.168.1.254:
1set protocols static route 192.168.100.0/24 next-hop 192.168.1.254
Ruta de descarte (blackhole)
Útil para agregar supernets y evitar loops de ruteo:
1set protocols static route 10.10.0.0/16 blackhole distance 254
1commit
2save
Verificar:
1show ip route
2show ip route static
5. VLANs — Subinterfaces 802.1Q
VyOS crea VLANs como subinterfaces ethn.vlan-id sobre la interfaz troncal.
Crear subinterfaces
1set interfaces ethernet eth1 vif 10 description 'Servidores'
2set interfaces ethernet eth1 vif 10 address '10.10.10.1/24'
3
4set interfaces ethernet eth1 vif 20 description 'Usuarios'
5set interfaces ethernet eth1 vif 20 address '10.10.20.1/24'
Agregar las VLANs a las zonas de firewall
1set firewall zone LAN interface eth1.10
2set firewall zone LAN interface eth1.20
Extender el NAT para las nuevas subredes
La regla de NAT ya usa 192.168.0.0/16, así que las subredes 10.10.x.x quedan fuera. Agregar una regla adicional:
1set nat source rule 20 description 'VLANs a Internet'
2set nat source rule 20 outbound-interface name 'eth0'
3set nat source rule 20 source address '10.10.0.0/16'
4set nat source rule 20 translation address masquerade
1commit
2save
Verificar:
1show interfaces
2show interfaces ethernet eth1 vif
3ping 10.10.10.1 from-address 10.10.20.1
Resumen de comandos útiles
| Tarea | Comando |
|---|---|
| Ver configuración activa | show configuration |
| Ver diff sin hacer commit | compare |
| Revertir cambios sin commit | discard |
| Rollback al commit anterior | rollback 1 (en modo config) |
| Ver tabla de ruteo | show ip route |
| Ver traducciones NAT activas | show nat source translations |
| Ver logs del firewall | show log firewall |
Próximos pasos
Con esta base podés avanzar hacia:
- DHCP Server por VLAN (
set service dhcp-server) - DNS Forwarder local (
set service dns forwarding) - BGP / OSPF con el stack
set protocols bgposet protocols ospf - WireGuard o IPsec para acceso remoto
VyOS tiene la ventaja de que la curva de aprendizaje inicial es confusa, pero una vez que entiendes el modelo de configure → set → commit → save, la configuración escala de forma muy limpia.