He creado un laboratorio de pruebas donde estoy probando el reenvío basado en filtros (FBF), también conocido como enrutamiento basado en políticas. La pregunta seguirá a continuación, pero primero, los detalles:
A continuación se muestra el diagrama de topología:
OBJETIVO: Cualquier tráfico destinado a la Etapa desde el Sitio 1 debe enrutarse a través del Enlace 2 a la WAN y NO a través del Enlace 1. Dado que el Enlace 1 estará saturado con tráfico de replicación entre los dos centros de datos.
- SW-1 y SW-2 son conmutadores Juniper EX4200
- RTR-1 y RTR-2 son Juniper J4350's
- PE-1 y PE-2 son enrutadores Cisco 1841 que ejecutan ISIS y MPLS VPN para simular la red troncal WAN del proveedor
SW-1, SW-2, RTR-1 y RTR-2 son vecinos de OSPF en el Área 0. Tanto RTR-1 como RTR-2 son ASBR e inyectan rutas aprendidas BGP en OSPF. Cada enrutador anuncia rutas en la WAN para su sitio respectivo (así como rutas pre-pendientes para el otro sitio por redundancia).
El enrutamiento del tráfico del Sitio 1 a la Etapa en el Sitio 2 se logra fácilmente redistribuyendo la ruta estática a la Etapa en SW-2 en OSPF con una métrica más alta. Dado que RTR-2 anuncia esa ruta en la WAN, RTR-1 aprenderá esa ruta y la redistribuirá en OSPF con una métrica de 0. La ruta OSPF aprendida en SW-1 de SW-2 tendría una métrica más alta, por lo tanto se preferiría el enrutamiento sobre la WAN.
El tráfico de retorno del sitio 2 también debe fluir de esta manera para evitar el enrutamiento asimétrico. FBF se aplica en la interfaz entrante (Enlace 4) que ingresa SW-2. Este filtro tomará todo el tráfico proveniente de la Etapa (10.100.190 / 24) y realizará el próximo salto RTR-2. Esta parte del FBF está funcionando, como lo he probado en el laboratorio.
Dado que la ruta preferida de RTR-2 de regreso al Sitio 1 es a través del Enlace 1, necesitamos aplicar FBF una vez más en la interfaz LAN entrante de RTR-2 (frente a SW-2).
Aquí está el problema ... Cuando se aplica FBF en ese enrutador, la adyacencia de OSPF con SW-2 se rompe.
PREGUNTA: ¿Por qué se rompe la adyacencia OSPF entre RTR-2 y SW-2?
Se adjunta la configuración para RTR-2 y SW-2:
Configuraciones RTR-2
root@RTR-2> show configuration interfaces | display set
set interfaces ge-0/0/0 unit 0 family inet filter input FBF-TEST
deactivate interfaces ge-0/0/0 unit 0 family inet filter
set interfaces ge-0/0/0 unit 0 family inet address 10.100.254.2/24
set interfaces ge-0/0/3 description "Uplink to WAN"
set interfaces ge-0/0/3 unit 0 family inet address 200.200.200.2/30
set interfaces lo0 unit 0 family inet address 10.100.199.4/32
root@RTR-2> show configuration routing-options | display set
set routing-options interface-routes rib-group inet STAGING-RIB
set routing-options rib-groups STAGING-RIB import-rib inet.0
set routing-options rib-groups STAGING-RIB import-rib PATH-1.inet.0
set routing-options rib-groups STAGING-RIB import-rib PATH-2.inet.0
set routing-options router-id 200.200.200.2
set routing-options autonomous-system 1
root@RTR-2> show configuration routing-instances | display set
set routing-instances PATH-1 instance-type forwarding
set routing-instances PATH-1 routing-options static route 10.100.30.0/24 next-hop 200.200.200.1
set routing-instances PATH-1 routing-options static route 10.100.30.0/24 qualified-next-hop 10.100.254.1 preference 100
set routing-instances PATH-2 instance-type forwarding
set routing-instances PATH-2 routing-options static route 10.100.30.0/24 next-hop 10.100.254.1
set routing-instances PATH-2 routing-options static route 10.100.30.0/24 qualified-next-hop 200.200.200.1 preference 100
root@RTR-2> show configuration firewall | display set
set firewall family inet filter FBF-TEST term TERM-1 from source-address 10.100.190.0/24
set firewall family inet filter FBF-TEST term TERM-1 from source-address 10.100.191.0/24
set firewall family inet filter FBF-TEST term TERM-1 then routing-instance PATH-1
set firewall family inet filter FBF-TEST term DEFAULT then routing-instance PATH-2
root@RTR-2> show configuration protocols | display set
set protocols bgp path-selection cisco-non-deterministic
set protocols bgp log-updown
set protocols bgp group TEST type external
set protocols bgp group TEST local-address 200.200.200.2
set protocols bgp group TEST import REJECT
set protocols bgp group TEST export ADVERTISED
set protocols bgp group TEST peer-as 65000
set protocols bgp group TEST neighbor 200.200.200.1 preference 20
set protocols ospf rib-group STAGING-RIB
set protocols ospf export BGP-to-OSPF
set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 priority 150
set protocols ospf area 0.0.0.0 interface lo0.0 passive
Configuraciones SW-2
root@SW-2> show configuration interfaces | display set
set interfaces ge-0/0/0 unit 0 family inet address 10.10.10.2/30
set interfaces ge-0/0/1 unit 0 family ethernet-switching port-mode access
set interfaces ge-0/0/1 unit 0 family ethernet-switching vlan members VLAN-254
set interfaces ge-0/0/11 description "Uplink to STAGING"
set interfaces ge-0/0/11 unit 0 family inet filter input FBF-TEST
set interfaces ge-0/0/11 unit 0 family inet address 10.100.100.1/30
set interfaces lo0 unit 0 family inet address 10.100.199.2/32
set interfaces vlan unit 2 family inet address 10.100.2.1/24
set interfaces vlan unit 251 family inet address 10.100.251.1/24
set interfaces vlan unit 254 family inet address 10.100.254.1/24
root@SW-2> show configuration routing-options | display set
set routing-options nonstop-routing
set routing-options interface-routes rib-group inet STAGING-RIB
set routing-options static route 172.22.128.0/21 next-hop 10.22.76.1
set routing-options static route 10.22.20.0/24 next-hop 10.22.76.1
set routing-options static route 10.100.190.0/24 next-hop 10.100.100.2
set routing-options static route 10.100.191.0/24 next-hop 10.100.100.2
set routing-options rib-groups STAGING-RIB import-rib inet.0
set routing-options rib-groups STAGING-RIB import-rib PATH-1.inet.0
set routing-options rib-groups STAGING-RIB import-rib PATH-2.inet.0
set routing-options router-id 10.100.254.1
root@SW-2> show configuration routing-instances | display set
set routing-instances PATH-1 instance-type forwarding
set routing-instances PATH-1 routing-options static route 10.100.30.0/24 next-hop 10.100.254.2
set routing-instances PATH-1 routing-options static route 10.100.30.0/24 qualified-next-hop 10.10.10.1 preference 100
set routing-instances PATH-2 instance-type forwarding
set routing-instances PATH-2 routing-options static route 10.100.30.0/24 next-hop 10.10.10.1
set routing-instances PATH-2 routing-options static route 10.100.30.0/24 qualified-next-hop 10.100.254.2 preference 100
root@SW-2> show configuration firewall | display set
set firewall family inet filter FBF-TEST term TERM-1 from source-address 10.100.190.0/24
set firewall family inet filter FBF-TEST term TERM-1 from source-address 10.100.191.0/24
set firewall family inet filter FBF-TEST term TERM-1 then routing-instance PATH-1
set firewall family inet filter FBF-TEST term DEFAULT then routing-instance PATH-2
root@SW-2> show configuration protocols | display set
set protocols ospf export ADVERTISED
set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 interface-type p2p
set protocols ospf area 0.0.0.0 interface vlan.2 passive
set protocols ospf area 0.0.0.0 interface vlan.251 passive
set protocols ospf area 0.0.0.0 interface vlan.254 priority 250
Respuestas:
Entonces, después de trabajar con JTAC ayer, "yo", ya que realmente no necesitaba JTAC ya que descubrí el problema por mi cuenta ... me di cuenta de que mi filtro de firewall era un poco redundante y carecía de una declaración de "permitir cualquier" .
La adyacencia de OSPF se estaba rompiendo porque el filtro del firewall estaba tomando el tráfico "else" (término PREDETERMINADO) y enviándolo a la instancia de enrutamiento PATH-2, lo que no ayudó de ninguna manera ya que estaba enviando tráfico de regreso al SW-2, algo una declaración de "aceptar" habría sido fácil
Entonces, para reparar el problema ...
Nuevos configlets corregidos SW-2 y RTR-2:
Nuevos recortes de configuración para SW-2:
Nuevos recortes de configuración para RTR-2:
fuente