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

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;
                    }
                }
            }
        }
    }
}
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.