シナプスの技術部ネットワーク課の福山と申します。
ループバックインターフェースのOSPFコストのデフォルト値はIOSとJUNOSで異なります。
- IOS : 1
- JUNOS: 0
デフォルトのままだと何か問題があるのか検証してみました。
検証環境
■MX204 Juniper MX204 Junos: 20.4R3-S1.3 ■Cat4948E_A, Cat4948E_B Cisco Catalyst 4948E IOS: 15.0(2)SG11 (cat4500e-ENTSERVICES-M)
- 隣接するルータはOSPFでネイバー関係
- ループバックインターフェースもOSPFを有効化
- ループバックインターフェースのコストはデフォルト値
- MX204:0
- Cat4948E_A, Cat4948E_B:1
- その他インターフェースのコストは全て1
- 隣接するルータはIBGPでネイバー関係
- ループバックインターフェースをネイバーIPアドレスとして指定
- MX204とCat4948E_BがCat4948E_Aに192.168.100.0/24を経路広報
- Cat4948E_AはECMPによる負荷分散を実装
- 192.168.100.0/24向けは帯域を有効活用するためマルチパスにしたい
主な設定内容
Cat4948E_A
interface Loopback0 ip address 172.16.0.1 255.255.255.255 ! interface GigabitEthernet1/1 no switchport ip address 192.168.2.1 255.255.255.0 ! interface GigabitEthernet1/2 no switchport ip address 192.168.3.1 255.255.255.0 ! router ospf 1 network 172.16.0.1 0.0.0.0 area 0 network 192.168.2.0 0.0.0.255 area 0 network 192.168.3.0 0.0.0.255 area 0 ! router bgp 65000 neighbor 172.16.0.2 remote-as 65000 neighbor 172.16.0.2 update-source Loopback0 neighbor 172.16.0.3 remote-as 65000 neighbor 172.16.0.3 update-source Loopback0 maximum-paths ibgp 2
Cat4948E_B
interface Loopback0 ip address 172.16.0.3 255.255.255.255 ! interface GigabitEthernet1/1 no switchport ip address 192.168.3.2 255.255.255.0 ! router ospf 1 network 172.16.0.3 0.0.0.0 area 0 network 192.168.3.0 0.0.0.255 area 0 ! router bgp 65000 network 192.168.100.0 mask 255.255.255.0 neighbor 172.16.0.1 remote-as 65000 neighbor 172.16.0.1 update-source Loopback0 ! ip route 192.168.100.0 255.255.255.0 Null0
MX204
set interfaces xe-0/1/0 gigether-options speed 1g set interfaces xe-0/1/0 unit 0 family inet address 192.168.2.2/24 set interfaces lo0 unit 0 family inet address 172.16.0.2/32 set policy-options prefix-list MX204-ROUTE1 192.168.100.0/24 set policy-options policy-statement ADV-ROUTE0 term 1 from prefix-list MX204-ROUTE1 set policy-options policy-statement ADV-ROUTE0 term 1 then accept set routing-options static route 192.168.100.0/24 discard set routing-options autonomous-system 65000 set protocols bgp group MX204-Cat4948E_A type internal set protocols bgp group MX204-Cat4948E_A local-address 172.16.0.2 set protocols bgp group MX204-Cat4948E_A neighbor 172.16.0.1 export ADV-ROUTE0 set protocols ospf area 0.0.0.0 interface lo0.0 set protocols ospf area 0.0.0.0 interface xe-0/1/0.0
Cat4948E_Aの経路情報を確認
ルーティングテーブルを見てみると 192.168.100.0/24向けは帯域を有効活用するため、2経路のマルチパスにしたかったのですが、ネクストホップが172.16.0.2の1経路のみとなっています。
Cat4948E_A#show ip route <<抜粋>> 172.16.0.0/32 is subnetted, 3 subnets C 172.16.0.1 is directly connected, Loopback0 O 172.16.0.2 [110/1] via 192.168.2.2, 00:01:46, GigabitEthernet1/1 O 172.16.0.3 [110/2] via 192.168.3.2, 00:01:46, GigabitEthernet1/2 C 192.168.2.0/24 is directly connected, GigabitEthernet1/1 B 192.168.100.0/24 [200/0] via 172.16.0.2, 4d20h C 192.168.3.0/24 is directly connected, GigabitEthernet1/2
BGPテーブルには 172.16.0.2, 172.16.0.3の2経路選出されています。
Cat4948E_A#show ip bgp BGP table version is 13, local router ID is 172.16.0.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path * i192.168.100.0 172.16.0.3 0 100 0 i *>i 172.16.0.2 100 0 i
OSPFコストを確認
ここで、BGPテーブルで192.168.100.0/24向けのネクストホップとなる 172.16.0.2, 172.16.0.3へのOSPFコストを確認してみます。
MX204
root@MX204> show ospf interface lo0.0 detail Interface State Area DR ID BDR ID Nbrs lo0.0 DR 0.0.0.0 172.16.0.2 0.0.0.0 0 Type: LAN, Address: 172.16.0.2, Mask: 255.255.255.255, MTU: 65535, Cost: 0 DR addr: 172.16.0.2, Priority: 128 Adj count: 0 Hello: 10, Dead: 40, ReXmit: 5, Not Stub Auth type: None Protection type: None Topology default (ID 0) -> Cost: 0
Cat4948E_B
Cat4948E_B#show ip ospf interface brief Interface PID Area IP Address/Mask Cost State Nbrs F/C Lo0 1 0 172.16.0.3/32 1 LOOP 0/0 Gi1/1 1 0 192.168.3.2/24 1 DR 1/1
Cat4948E_A
Cat4948E_A#show ip ospf interface brief Interface PID Area IP Address/Mask Cost State Nbrs F/C Lo0 1 0 172.16.0.1/32 1 LOOP 0/0 Gi1/2 1 0 192.168.3.1/24 1 BDR 1/1 Gi1/1 1 0 192.168.2.1/24 1 BDR 1/1
BGPでマルチパスに選出されるためには、ネクストホップに対してIGPメトリックが同じである必要がありますが、172.16.0.2へのOSPFコストの合計が1+0=1, 172.16.0.3へのOSPFコストの合計が1+1=2となり、172.16.0.2のみがベストパスとして選出されるため、マルチパスになりません。
OSPFコストを変更
MX204のループバックインターフェースのOSPFコストを1に変更してみます。
[edit] root@MX204# set protocols ospf area 0.0.0.0 interface lo0.0 metric 1
MX204のループバックインターフェースのOSPFコストが1になっていることがわかります。
root@MX204> show ospf interface lo0.0 detail Interface State Area DR ID BDR ID Nbrs lo0.0 DR 0.0.0.0 172.16.0.2 0.0.0.0 0 Type: LAN, Address: 172.16.0.2, Mask: 255.255.255.255, MTU: 65535, Cost: 1 DR addr: 172.16.0.2, Priority: 128 Adj count: 0 Hello: 10, Dead: 40, ReXmit: 5, Not Stub Auth type: None Protection type: None Topology default (ID 0) -> Cost: 1
これで172.16.0.2へのOSPFコストの合計が1+1=2, 172.16.0.3へのOSPFコストの合計が1+1=2となり、IGPメトリックが同じになります。
再度、Cat4948E_Aの経路情報を確認してみます。
Cat4948E_A#show ip route <<抜粋>> 172.16.0.0/32 is subnetted, 3 subnets C 172.16.0.1 is directly connected, Loopback0 O 172.16.0.2 [110/2] via 192.168.2.2, 00:02:50, GigabitEthernet1/1 O 172.16.0.3 [110/2] via 192.168.3.2, 00:02:50, GigabitEthernet1/2 C 192.168.2.0/24 is directly connected, GigabitEthernet1/1 B 192.168.100.0/24 [200/0] via 172.16.0.3, 00:02:45 [200/0] via 172.16.0.2, 5d00h C 192.168.3.0/24 is directly connected, GigabitEthernet1/2
192.168.100.0/24向けはネクストホップが172.16.0.2, 172.16.0.3のマルチパスになっていることがわかります。
まとめ
ループバックインターフェースのOSPFコストが異なるとネクストホップまでのコストが異なる場合があり、経路選択に影響が出る場合があることがわかりました。
IOSとJUNOSで他にもデフォルト値の異なるものもありそうなので、今後も検証していきたいと思います。