JUNIPER: Por que a adjacência do OSPF é interrompida quando eu ativo o FBF em uma interface OSPF?

9

Criei um laboratório de teste no qual estou testando o FBF (Filter Based Forwarding), também conhecido como roteamento baseado em políticas. A pergunta seguirá abaixo, mas primeiro os detalhes:

Abaixo está o diagrama de topologia:

insira a descrição da imagem aqui

OBJETIVO: Qualquer tráfego destinado ao armazenamento temporário do Site 1 deve ser roteado pelo Link 2 para a WAN e NÃO pelo Link 1. Como o Link 1 será saturado com o tráfego de replicação entre os dois data centers.

  • SW-1 e SW-2 são comutadores Juniper EX4200
  • RTR-1 e RTR-2 são os Juniper J4350
  • PE-1 e PE-2 são roteadores Cisco 1841 executando ISIS e MPLS VPN para simular o backbone da WAN do provedor

SW-1, SW-2, RTR-1 e RTR-2 são todos vizinhos OSPF na Área 0. Ambos RTR-1 e RTR-2 são ASBR e injetam rotas aprendidas de BGP no OSPF. Cada roteador está anunciando rotas na WAN para seu respectivo site (bem como rotas pré-pendentes para o outro site para redundância).

O tráfego de roteamento do Site 1 para o Armazenamento temporário no Site 2 é facilmente realizado redistribuindo a rota estática para o Armazenamento temporário no SW-2 no OSPF com uma métrica mais alta. Como essa rota é anunciada pelo RTR-2 na WAN, o RTR-1 aprenderá essa rota e a redistribuirá no OSPF com uma métrica de 0. A rota OSPF aprendida no SW-1 do SW-2 teria uma métrica mais alta. o roteamento seria preferido sobre a WAN.

O tráfego de retorno do site 2 também precisa fluir dessa maneira, para evitar o roteamento assimétrico. O FBF é aplicado na interface de entrada (Link 4) que entra no SW-2. Esse filtro pega todo o tráfego originado no teste (10.100.190 / 24) e cria o RTR-2 do próximo salto. Essa parte do FBF está funcionando, como eu testei no laboratório.

Como a rota preferida do RTR-2 de volta ao Site 1 é via Link 1, precisamos aplicar o FBF novamente na interface LAN de entrada do RTR-2 (voltada para o SW-2).

Aqui está o problema ... Quando o FBF é aplicado nesse roteador, a adjacência do OSPF com interrupções do SW-2.

PERGUNTA: Por que a adjacência OSPF está quebrando entre RTR-2 e SW-2?

A configuração para RTR-2 e SW-2 está anexada:

Configurações 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

Configurações 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
NetEng76
fonte
você poderia incluir a FBF-teste ACL, meu palpite é que você não está excluindo o endereço IP do SW2 ou você está incluindo o tráfego gerado internamente do roteador
fredpbaker
A ACL está incluída. Procure a linha "show configuration firewall".
NetEng76
Você pode incluir as configurações da interface?
user2697
Eu adicionei as configurações da interface ao post original acima.
NetEng76
Seu filtro não deveria ter uma linha "então aceite" no final de cada período? Caso contrário, não deixará cair nenhum tráfego incomparável?
precisa

Respostas:

4

Então, depois de trabalhar com a JTAC ontem, "eu", como eu realmente não precisava da JTAC, já que descobri o problema por conta própria. Percebi que meu filtro de firewall era um pouco redundante e não possuía uma declaração "permitir qualquer" .

A adjacência do OSPF estava quebrando porque o filtro do firewall estava pegando o tráfego "else" (termo DEFAULT) e enviando-o para a instância de roteamento PATH-2, o que não ajudou em nada, pois estava enviando tráfego de volta ao SW-2, algo uma declaração "então aceite" teria sido fácil

Então, para reparar o problema ..

Novos configurlets corrigidos 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

Novos trechos de configuração para 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;
                    }
                }
            }
        }
    }
}

Novos trechos de configuração para o 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;
                    }
                }
            }
        }
    }
}
NetEng76
fonte