JUNIPER: ทำไม OSPF adjacency ถึงแตกเมื่อฉันเปิดใช้งาน FBF ในส่วนต่อประสาน OSPF


9

ฉันสร้างห้องปฏิบัติการทดสอบที่ฉันกำลังทดสอบการส่งต่อตามตัวกรอง (FBF) หรือที่รู้จักในการกำหนดเส้นทางตามนโยบาย คำถามจะตามมาด้านล่าง แต่ก่อนอื่นรายละเอียด:

ด้านล่างเป็นแผนภาพโทโพโลยี:

ป้อนคำอธิบายรูปภาพที่นี่

วัตถุประสงค์:การรับส่งข้อมูลใด ๆ ที่กำหนดไปยัง Staging จากไซต์ 1 ควรกำหนดเส้นทางผ่านลิงก์ 2 เข้าสู่ WAN และไม่ผ่านลิงก์ 1 เนื่องจากลิงก์ 1 จะอิ่มตัวด้วยปริมาณการจำลองข้อมูลระหว่างศูนย์ข้อมูลสองแห่ง

  • SW-1 & SW-2 เป็นสวิตช์ Juniper EX4200
  • RTR-1 & RTR-2 เป็นของ Juniper J4350
  • PE-1 & PE-2 เป็นเราเตอร์ของซิสโก้ 1841 ที่ใช้ ISIS และ MPLS VPN เพื่อจำลองผู้ให้บริการ WAN กระดูกสันหลัง

SW-1, SW-2, RTR-1 และ RTR-2 เป็นเพื่อนบ้านของ OSPF ทั้งหมดในพื้นที่ 0 ทั้ง RTR-1 และ RTR-2 เป็น ASBR และฉีดเส้นทาง BGP ที่เรียนรู้ไปสู่ ​​OSPF เราเตอร์แต่ละตัวมีการโฆษณาเส้นทางไปยัง WAN สำหรับเว็บไซต์นั้น ๆ (รวมถึงเส้นทางที่ถูกจัดเตรียมไว้ล่วงหน้าสำหรับเว็บไซต์อื่นเพื่อความซ้ำซ้อน)

การกำหนดเส้นทางการรับส่งข้อมูลจากไซต์ 1 ไปยัง Staging ที่ไซต์ 2 ทำได้ง่าย ๆ เพียงแค่แจกจ่ายเส้นทางสแตติกไปยัง Staging บน 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 อีกครั้งที่อินเทอร์เฟซ LAN ขาเข้าของ RTR-2 (หันหน้าไปทาง SW-2)

นี่คือปัญหา ... เมื่อ FBF ถูกนำไปใช้กับเราเตอร์นั้น OSPF adjacency ที่มีตัวแบ่ง SW-2

คำถาม:เพราะเหตุใด OSPF ถึงการแตกกันระหว่าง RTR-2 และ SW-2

มีการแนบการกำหนดค่าสำหรับ RTR-2 และ SW-2:

RTR-2 Configs

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

คุณสามารถรวม ACF การทดสอบ FBF ได้ไหมฉันเดาว่าคุณไม่ได้ยกเว้นที่อยู่ IP ของ SW2 หรือคุณกำลังรวมทราฟฟิกที่สร้างขึ้นภายในของเราเตอร์ด้วย
fredpbaker

ACL รวมอยู่ด้วย ค้นหาบรรทัด "แสดงการกำหนดค่าไฟร์วอลล์"
NetEng76

คุณสามารถรวมการกำหนดค่าส่วนต่อประสานได้หรือไม่
user2697

ฉันได้เพิ่มส่วนต่อประสานกำหนดค่าให้กับโพสต์ต้นฉบับด้านบน
NetEng76

ตัวกรองของคุณไม่ควรมีบรรทัด "แล้วยอมรับ" ในตอนท้ายของแต่ละคำ ไม่เช่นนั้นจะไม่ลดทราฟฟิกที่ไม่ตรงกันใด ๆ
SpacemanSpiff

คำตอบ:


4

ดังนั้นหลังจากทำงานกับ JTAC เมื่อวานนี้ "ฉัน" ในขณะที่ฉันไม่ต้องการ JTAC เพราะฉันพบปัญหาด้วยตัวเอง .. ตระหนักว่าตัวกรองไฟร์วอลล์ของฉันซ้ำซ้อนเล็กน้อยและขาดคำสั่ง "อนุญาตใด ๆ " .

OSPF adjacency แตกเนื่องจากตัวกรองไฟร์วอลล์กำลังรับปริมาณข้อมูล "else" (คำศัพท์เริ่มต้น) และส่งไปยังเส้นทาง - อินสแตนซ์ PATH-2 ซึ่งไม่ได้ช่วยอย่างใดอย่างหนึ่งเนื่องจากมันได้ส่งทราฟฟิกกลับไปที่ SW-2 คำสั่ง "ยอมรับแล้ว" จะทำได้อย่างง่ายดาย

ดังนั้นเพื่อซ่อมแซมปัญหา ..

New 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

ใหม่ config snips สำหรับ 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;
                    }
                }
            }
        }
    }
}

ใหม่ snips การกำหนดค่าสำหรับ 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;
                    }
                }
            }
        }
    }
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.