Virtual Wire
Resumen
Virtual Wire (vwire) es el modo más sencillo de poner un firewall en una red existente: el firewall se comporta como un “cable inteligente” entre dos interfaces. No tiene IP en esas interfaces, no enruta, no aprende MAC ni participa en la red; solo recibe el tráfico por un lado, lo inspecciona con la Security Policy y los perfiles, y lo deja salir por el otro. Los equipos a ambos lados ni se enteran de que está ahí.
Es ideal para añadir seguridad sin rediseñar la red (sin cambiar IP, gateways ni VLAN). Cada vwire une exactamente dos interfaces, cada una en su zona de tipoVirtual Wire, y por eso se pueden escribir reglas por zona (por ejemplovw-insideavw-outside). También puede dejar pasar tráfico etiquetado con VLAN (según los Tag Allowed). Esta nota cubre la creación de un Virtual Wire, las reglas necesarias (incluido el sentido contrario para cosas como DHCP) y sus limitaciones.
Requisitos previos
- Dos interfaces físicas libres, que no estén en uso (en el lab:
ethernet1/4yethernet1/5) (ver Lab PCNSA (curso)) - Zonas de tipo
Virtual Wire(una por interfaz) - Conocer el sentido del tráfico y las reglas que necesitarás en ambas direcciones
- Si el tráfico lleva VLAN tags: definir qué tags se permiten
- Security Policy: aunque el vwire sea transparente, las reglas siguen aplicando (ver Security Policy Fundamentals)
Conceptos clave
| Concepto | Qué es |
|---|---|
| Interfaz Virtual Wire | Interfaz sin IP, pareada con otra |
| Objeto Virtual Wire | Une las dos interfaces; define Tag Allowed y Multicast Firewalling |
| Zona Virtual Wire | Tipo de zona que contiene interfaces vwire |
| Tag Allowed | VLAN tags que el vwire deja pasar (por defecto 0 = solo sin tag; admite tags, rangos y listas separados por comas, p. ej. 0,10-20; 0-4094 = todos) |
| Link State Pass Through | Si un lado cae, el otro también se baja, para que los equipos detecten el fallo |
graph LR A["Red / Router A"] --- I1["ethernet1/4<br/>zona vw-inside"] I1 -. "Virtual Wire" .- I2["ethernet1/5<br/>zona vw-outside"] I2 --- B["Red / Router B"]
Lo que un Virtual Wire no puede hacer
No tiene IP ni enruta, así que no aplica funciones de capa 3 propias del firewall en esas interfaces: no es servidor DHCP ni hace routing, ni se usa para VPN/GlobalProtect terminadas en la interfaz. Soporta NAT, pero con las limitaciones propias de no tener IP en la interfaz (ver el aviso de NAT más abajo).
Configuración (Ejemplo, Lab PCNSA)
1. Interfaces en modo Virtual Wire
- Network > Interfaces > Ethernet >
ethernet1/4> Interface TypeVirtual Wire. - Pestaña Config: Virtual Wire
New Virtual Wire. - En la ventana: Name
vwire-1, Interface1ethernet1/4, Interface2ethernet1/5, Tag Allowed (vacío o0para sin tag; para trunks, el rango de VLAN), Multicast Firewalling (marca si quieres aplicar reglas a multicast), Link State Pass Through (opcional). - OK.
- Security Zone:
New Zone> Namevw-inside, TypeVirtual Wire. OK. - Repite con
ethernet1/5: Interface TypeVirtual Wire, Virtual Wirevwire-1, Security ZoneNew Zone>vw-outside(tipoVirtual Wire). - Commit.
set network virtual-wire vwire-1 interface1 ethernet1/4 interface2 ethernet1/5
set zone vw-inside network virtual-wire ethernet1/4
set zone vw-outside network virtual-wire ethernet1/5
commit
Si un comando no coincide con tu versión, usa Tab o ?.
2. Reglas de Security Policy
El tráfico se evalúa por zona, como siempre. La Security Policy es stateful: el tráfico de respuesta de una sesión permitida no necesita regla inversa; solo las sesiones iniciadas desde el lado contrario (y casos como DHCP, cuyo Offer es un flujo nuevo) necesitan su propia regla.
- Policies > Security > Add > Name
vw-in-to-out. - Source Zone
vw-inside, Destination Zonevw-outside, Applicationany(o las que necesites), ActionAllow, Log at Session End. - Commit.
Para tráfico que inicia el lado contrario, crea la regla inversa:
- Policies > Security > Add > Name
vw-out-to-in. - Source Zone
vw-outside, Destination Zonevw-inside, y la Application que corresponda. - Commit.
El caso de DHCP
Un cliente en un lado pide IP a un servidor en el otro lado. El DHCP Discover va en el sentido cliente → servidor, pero la DHCP Offer vuelve en el sentido contrario como un paquete broadcast/nuevo y, si no hay regla para ese sentido, se bloquea. Por eso, para DHCP a través de un vwire hace falta una regla con la aplicación
dhcpen ambos sentidos.
3. Tráfico con VLAN tags
- Network > Virtual Wires >
vwire-1> Tag Allowed: por ejemplo10,20o un rango10-20;0para tráfico sin etiqueta. - Para aplicar políticas distintas por VLAN, crea subinterfaces Virtual Wire: edita la interfaz > Add Subinterface > Tag
10, Virtual Wire (vwire-1) y una zona propia. Cada subinterfaz de un lado debe tener su par con el mismo tag en el otro. - Commit.
4. Link State Pass Through
- Network > Virtual Wires >
vwire-1> marca Link State Pass Through. - Si un lado pierde enlace, el firewall baja el otro, y los equipos detectan el fallo.
- Commit.
5. Un aviso sobre NAT
Se puede aplicar NAT en un Virtual Wire (reglas de NAT Policy entre las zonas Virtual Wire), pero como las interfaces no tienen IP, el firewall no responde a ARP por las direcciones traducidas. Las IP de origen o destino traducidas deben estar en la subred de la interfaz y el equipo vecino debe tener una ruta o una entrada ARP hacia ellas. Es un caso delicado: pruébalo en laboratorio y revisa la guía de tu versión.
Verificación
| Comando o lugar | Qué debes ver | Si no lo ves |
|---|---|---|
| Network > Interfaces > Ethernet | Ambas interfaces en verde, tipo Virtual Wire, con su zona | Si está rojo, revisa el cable y el equipo del otro lado |
| Network > Virtual Wires | vwire-1 con Interface1 y Interface2 | Si falta una interfaz, edítalo |
show interface ethernet1/4 | Estado, tipo vwire y zona | Si indica otro modo, corrige el Interface Type |
| Ping de extremo a extremo entre equipos a ambos lados | Respuestas | Si no hay, revisa las reglas en ambos sentidos y los tags |
| Monitor > Logs > Traffic | Sesiones con zonas vw-inside y vw-outside y la regla | Si no aparece nada, no coincide ninguna regla o no pasa tráfico |
show session all filter source <IP> | La sesión con las interfaces de entrada y salida | Si no hay, el tráfico no llega al firewall |
show counter global filter delta yes | match drop | Contadores de descartes | Útil si el tráfico se pierde sin logs |
DHCP a través del vwire: Monitor > Logs > Traffic con aplicación dhcp | Sesiones permitidas en ambos sentidos | Si solo ves el Discover, falta la regla inversa |
Errores comunes
El tráfico no pasa por el Virtual Wire
- Causa: no hay regla de Security Policy para esas zonas (aunque sea transparente, la política aplica), o el sentido contrario no tiene regla.
- Revisa: Monitor > Logs > Traffic y las reglas por zona.
- Solución: crea las reglas necesarias en cada sentido.
DHCP no funciona a través del vwire
- Causa: falta la regla para la respuesta (Offer/ACK) en el sentido contrario.
- Solución: permite la aplicación
dhcpen ambos sentidos entre las dos zonas.
Los equipos pierden conectividad con VLAN
- Causa: Tag Allowed no incluye esa VLAN, o falta la subinterfaz del otro lado.
- Solución: añade el tag a Tag Allowed o crea subinterfaces par en ambos lados.
No puedo asignar una interfaz al vwire
- Causa: ya está en uso en otro modo, o el objeto vwire ya tiene dos interfaces.
- Solución: cambia el tipo de la interfaz; un vwire usa exactamente dos interfaces.
Un equipo no detecta que el enlace cayó
- Causa: el vwire mantiene el enlace del otro lado activo.
- Solución: activa Link State Pass Through.
El NAT en vwire no se comporta como esperaba
- Causa: el firewall no tiene IP en las interfaces y no responde ARP por las direcciones traducidas.
- Solución: usa direcciones traducidas dentro de la subred conectada, agrega rutas o ARP estático en el vecino, o cambia a Layer 3 si necesitas NAT con más facilidad (ver Source NAT).
Quiero VPN o administración en esa interfaz
- Causa: el vwire no tiene IP.
- Solución: usa una interfaz Layer 3 para esas funciones (ver L3 Interfaces, Subinterfaces y DHCP).
El multicast (por ejemplo OSPF o routing de vecinos) no pasa
- Causa: Multicast Firewalling está activado y no hay una regla Allow para ese multicast (con la opción desactivada el multicast cruza el vwire sin evaluar la Security Policy).
- Solución: desactiva Multicast Firewalling en el objeto vwire, o déjalo activo y permite la aplicación correspondiente (por ejemplo
ospf) en la Security Policy.