JUNIPER: Perché si rompe l'adiacenza OSPF quando abilito FBF su un'interfaccia OSPF?


9

Ho creato un laboratorio di prova in cui sto testando il Filter Based Forwarding (FBF), noto anche come Policy Based Routing. La domanda seguirà di seguito, ma prima i dettagli:

Di seguito è riportato il diagramma della topologia:

inserisci qui la descrizione dell'immagine

OBIETTIVO: Qualsiasi traffico destinato alla gestione temporanea dal sito 1 dovrebbe instradare tramite collegamento 2 nella WAN e NON tramite collegamento 1. Poiché il collegamento 1 sarà saturo di traffico di replica tra i due data center.

  • SW-1 e SW-2 sono switch Juniper EX4200
  • RTR-1 e RTR-2 sono Juniper J4350
  • PE-1 e PE-2 sono router Cisco 1841 con ISIS e MPLS VPN per simulare il backbone WAN del provider

SW-1, SW-2, RTR-1 e RTR-2 sono tutti vicini OSPF nell'area 0. Sia RTR-1 che RTR-2 sono ASBR e iniettano percorsi appresi BGP in OSPF. Ogni router sta pubblicizzando percorsi nella WAN per il rispettivo sito (nonché percorsi in attesa dell'altro sito per ridondanza).

Il routing del traffico dal sito 1 allo staging sul sito 2 è facilmente realizzabile semplicemente ridistribuendo il percorso statico allo staging su SW-2 in OSPF con una metrica più elevata. Poiché tale percorso viene pubblicizzato da RTR-2 nella WAN, RTR-1 imparerà quel percorso e lo ridistribuirà in OSPF con una metrica di 0. Il percorso OSPF appreso su SW-1 da SW-2 avrebbe una metrica più alta, quindi il routing sarebbe preferito rispetto alla WAN.

Anche il traffico di ritorno dal sito 2 deve fluire in questo modo in modo da evitare il routing asimmetrico. FBF viene applicato sull'interfaccia in entrata (Link 4) inserendo SW-2. Questo filtro prenderà tutto il traffico proveniente dalla gestione temporanea (10.100.190 / 24) e creerà l'RTR-2 dell'hop successivo. Questa parte dell'FBF funziona, come ho testato in laboratorio.

Poiché il percorso preferito da RTR-2 al sito 1 è tramite Link 1, è necessario applicare nuovamente FBF all'interfaccia LAN in ingresso di RTR-2 (fronte SW-2).

Ecco il problema ... Quando viene applicato FBF su quel router, l'adiacenza OSPF con SW-2 si interrompe.

DOMANDA: Perché l'interruzione di adiacenza OSPF tra RTR-2 e SW-2 ??

La configurazione per RTR-2 e SW-2 è allegata:

Configurazioni 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

Configurazioni 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

potresti includere l'ACL del test FBF, la mia ipotesi è che non stai escludendo l'indirizzo IP di SW2 o stai includendo il traffico generato internamente del router
fredpbaker,

L'ACL è incluso. Cerca la riga "mostra firewall di configurazione".
NetEng76,

Puoi includere le configurazioni dell'interfaccia?
user2697

Ho aggiunto le configurazioni dell'interfaccia al post originale sopra.
NetEng76,

Il tuo filtro non dovrebbe avere una riga "quindi accetta" alla fine di ogni termine? Altrimenti non lascerà cadere alcun traffico senza pari?
SpacemanSpiff

Risposte:


4

Quindi, dopo aver lavorato con JTAC ieri, "io", come in realtà non avevo bisogno di JTAC da quando ho capito il problema da solo .. ho capito che il mio filtro firewall era un po 'ridondante e mancava un'istruzione "permetti qualsiasi" .

L'adiacenza OSPF si stava interrompendo perché il filtro firewall stava prendendo il traffico "else" (termine DEFAULT) e lo stava inviando all'istanza di instradamento PATH-2, il che non ha aiutato in entrambi i modi poiché stava inviando il traffico direttamente a SW-2, qualcosa un'istruzione "poi accetta" sarebbe stata facile

Quindi, per riparare il problema ..

Nuovi configlet corretti SW-2 e RTR-2:

delete routing-instances PATH-2
delete firewall family inet filter FBF-TEST term DEFAULT
set firewall family inet filter FBF-TEST term PERMIT-ANY then accept

Nuovi snapshot di configurazione per SW-2:

routing-options {
    nonstop-routing;
    interface-routes {
        rib-group inet STAGING-RIB;
    }
    static {
        route 10.100.190.0/24 next-hop 10.100.100.2;
        route 10.100.191.0/24 next-hop 10.100.100.2;
    }
    rib-groups {
        STAGING-RIB {
            import-rib [ inet.0 PATH-1.inet.0 ];
        }
    }
    router-id 10.100.254.1;
}
firewall {
    family inet {
        filter FBF-TEST {
            term TERM-1 {
                from {
                    source-address {
                        10.100.190.0/24;
                        10.100.191.0/24;
                    }
                }
                then {
                    routing-instance PATH-1;
                }
            }
            term PERMIT-ANY {
                then accept;
            }
        }
    }
}
routing-instances {
    PATH-1 {
        instance-type forwarding;
        routing-options {
            static {
                route 10.100.30.0/24 {
                    next-hop 10.100.254.2;
                    qualified-next-hop 10.10.10.1 {
                        preference 100;
                    }
                }
            }
        }
    }
}

Nuovi snapshot di configurazione per RTR-2:

routing-options {
    interface-routes {
        rib-group inet STAGING-RIB;
    }
    rib-groups {
        STAGING-RIB {
            import-rib [ inet.0 PATH-1.inet.0 ];
        }
    }
    router-id 200.200.200.2;
    autonomous-system 1;
}
firewall {
    family inet {
        filter FBF-TEST {
            term TERM-1 {
                from {
                    source-address {
                        10.100.190.0/24;
                        10.100.191.0/24;
                    }
                }
                then {
                    routing-instance PATH-1;
                }
            }
            term PERMIT-ANY {
                then accept;
            }
        }
    }
}
routing-instances {
    PATH-1 {
        instance-type forwarding;
        routing-options {
            static {
                route 10.100.30.0/24 {
                    next-hop 200.200.200.1;
                    qualified-next-hop 10.100.254.1 {
                        preference 100;
                    }
                }
            }
        }
    }
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.