シナプス技術者ブログ

シナプスの技術者公式ブログ。インターネットで、鹿児島の毎日を笑顔にします。

IOSとJUNOSのOSPFコスト

シナプスの技術部ネットワーク課の福山と申します。

ループバックインターフェースの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で他にもデフォルト値の異なるものもありそうなので、今後も検証していきたいと思います。