ДЖУНИПЕР: Почему нарушается смежность OSPF, когда я включаю FBF на интерфейсе OSPF?

9

Я построил тестовую лабораторию, в которой я тестирую переадресацию на основе фильтров (FBF), то есть маршрутизацию на основе политик. Вопрос будет следовать ниже, но сначала подробности:

Ниже приведена схема топологии:

введите описание изображения здесь

ЦЕЛЬ: Любой трафик, предназначенный для промежуточного соединения с сайта 1, должен направляться через канал 2 в глобальную сеть, а НЕ через канал 1. Поскольку канал 1 будет насыщен трафиком репликации между двумя центрами обработки данных.

  • SW-1 и SW-2 являются переключателями Juniper EX4200
  • РТР-1 и РТР-2 - это можжевельник J4350
  • PE-1 и PE-2 - это маршрутизаторы Cisco 1841 с ISIS и MPLS VPN для имитации магистрали WAN провайдера.

SW-1, SW-2, RTR-1 и RTR-2 являются соседями OSPF в Зоне 0. Оба RTR-1 и RTR-2 являются ASBR и внедряют изученные маршруты BGP в OSPF. Каждый маршрутизатор объявляет маршруты в глобальную сеть для своего соответствующего сайта (а также предварительно ожидаемые маршруты для другого сайта для обеспечения избыточности).

Маршрутизация трафика с сайта 1 на промежуточную работу на площадке 2 легко осуществляется путем простого перераспределения статического маршрута на промежуточную работу на SW-2 в OSPF с более высокой метрикой. Поскольку этот маршрут объявляется RTR-2 в WAN, RTR-1 узнает этот маршрут и перераспределяет его в OSPF с метрикой 0. Маршрут OSPF, изученный на SW-1 от SW-2, будет иметь более высокую метрику, поэтому маршрутизация будет предпочтительнее, чем WAN.

Обратный трафик с сайта 2 также должен проходить таким образом, чтобы избежать асимметричной маршрутизации. FBF применяется к входящему интерфейсу (ссылка 4), входящему в SW-2. Этот фильтр будет принимать весь трафик, полученный из Staging (10.100.190 / 24), и делать RTR-2 следующего перехода. Эта часть FBF работает, как я тестировал в лаборатории.

Поскольку RTR-2 предпочитает обратный маршрут к сайту 1 через канал 1, нам нужно снова применить FBF на входящем интерфейсе локальной сети RTR-2 (обращенном к SW-2).

Вот проблема ... Когда FBF применяется на этом маршрутизаторе, смежность OSPF с SW-2 разрывается.

ВОПРОС: Почему смежность OSPF нарушается между RTR-2 и SW-2 ??

Конфигурации для RTR-2 и SW-2 прилагаются:

Конфигурации РТР-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

SW-2 Configs

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
источник
Не могли бы вы включить ACL-тест FBF, я предполагаю, что вы не исключаете IP-адрес SW2 или включаете внутренне сгенерированный трафик маршрутизатора
fredpbaker,
ACL включен. Найдите строку «Показать конфигурацию брандмауэра».
NetEng76
Можете ли вы включить конфигурации интерфейса?
user2697
Я добавил конфиги интерфейса в исходный пост выше.
NetEng76
Разве ваш фильтр не должен иметь строку «затем принять» в конце каждого термина? Разве это не бросит беспрецедентный трафик?
SpacemanSpiff

Ответы:

4

Итак, после вчерашней работы с JTAC, «я», как и раньше, мне действительно не требовался JTAC, так как я сам решил проблему ... понял, что мой фильтр брандмауэра был немного избыточным и в нем не было оператора «разрешить любое» ,

Соседство с OSPF нарушалось, потому что фильтр брандмауэра брал трафик «else» (термин DEFAULT) и отправлял его в экземпляр PATH-2 с маршрутизацией, что не помогало в любом случае, поскольку он отправлял трафик обратно на SW-2, что-то заявление "затем принять" было бы легко

Итак, чтобы исправить проблему ..

Новые исправленные SW-2 и 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

Новый конфиг для 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;
                    }
                }
            }
        }
    }
}

Новый конфиг для 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
источник