メインコンテンツへスキップ
  1. Router および Switch 関連記事一覧/
  2. IOS-XR/

IOS XR OSPF基本設定

目次

Cisco IOS XR OSPF設定方法

Cisco IOS XR でOSPFを有効にするコマンドです。router ospfコンフィグレーションモードで、エリアごとにOSPFを動かすインタフェースを列挙します。OSPFの仕組み(隣接関係、LSDB、SPF計算)はOSPFとはを参照してください。

IOS XR OSPF基本設定
router ospf [プロセス名]
 router-id [ルータID]
 area [エリアID]
  interface [インタフェース名]
  !
 !
!
入力箇所入力内容
[プロセス名]OSPFプロセスの名前。数字でも文字列でもよい(例: 1CORE
[ルータID]IPv4アドレス形式の32ビット値(例: 1.1.1.1)。省略すると自動で決まるが、明示的に設定することを推奨(OSPF ルータID
[エリアID]0のような10進数か、0.0.0.0のようなドット付き10進表記
[インタフェース名]そのエリアでOSPFを動かすインタフェース(例: GigabitEthernet0/0/0/0Loopback0

IOS XR には IOS XE のnetworkコマンドがありません。OSPFを動かすインタフェースはarea配下にinterfaceとして1つずつ列挙します。

パッシブインタフェース

Loopbackや端末を収容するセグメントのように、経路として広告はするがOSPFの相手がいないインタフェースにはpassive enableを付けます。Helloの送信を止めるので隣接は張られませんが、そのインタフェースのネットワークはOSPFに広告されます。IOS XEのpassive-interfaceに相当します。

IOS XR OSPF パッシブインタフェース設定
router ospf [プロセス名]
 area [エリアID]
  interface [インタフェース名]
   passive enable
  !
 !
!

passive enableが効いているかはshow ospf interfaceで確認できます。物理インタフェースではNo Hellos (Passive interface)の行が出ます。LoopbackはNetwork Type LOOPBACKとなり元々Helloを送らないため、この行は出ません。

設定の継承

passivecostpriorityhello-intervalなどインタフェースに効く設定は、router ospf直下・area配下・interface配下のどこにでも書けます。上位に書いた値は下位に継承され、下位に書いた値が優先されます。 router ospf直下にpassive enableを書けば全インタフェースがパッシブになり、Helloを送るインタフェースにだけpassive disableを書いて打ち消せます。

IOS XEはrouter ospf <プロセス番号>配下のnetwork <アドレス> <ワイルドカードマスク> area <エリアID>でOSPFを有効にし、インタフェース固有の設定はinterface配下のip ospf ...で行います。IOS XRはプロセス / エリア / インタフェースの階層にすべてまとまるため、OSPFの設定がshow running-config router ospfだけで読めます。

Cisco IOS XR OSPF確認コマンド

IOS XR のOSPFはshow ospf系のコマンドで確認します(IOS XEのshow ip ospfに相当。ipは付けません)。プロセスが1つなら[プロセス名]は省略できます。

コマンド確認できること
show ospf [プロセス名]プロセスの概要。ルータID、エリアの一覧、SPFの実行回数、各種タイマー
show ospf neighborネイバーの一覧。Neighbor ID、状態(FULL/DRなど)、Dead timer、対向アドレス、インタフェース
show ospf neighbor detailネイバーの詳細。Optionsフィールド、DR/BDR、状態遷移の回数と時刻
show ospf interface briefOSPFを動かしているインタフェースの一覧。エリア、コスト、状態(DR/BDR/DROTHER/LOOP)、隣接数が1行ずつ
show ospf interface [インタフェース名]インタフェースの詳細。ネットワークタイプ、コスト、プライオリティ、DR/BDR、Hello/Deadタイマー、Passive
show ospf databaseLSDBの一覧(LSAタイプごとの要約)。router / network / summary / externalなどを続けると各LSAの中身
show ospf routesSPFの計算結果。宛先ごとのコストとネクストホップ、広告元ルータ
show route ospfルーティングテーブルのうちOSPFで学んだ経路(O / O IA / O E2など)
show ospf statisticsSPFの実行回数と所要時間、LSAの生成・受信回数
show ospf trace eventsOSPFプロセス内部のイベント履歴(ルータIDの決定、隣接の状態変化など)。操作の後から読み出せる
show running-config router ospfOSPFの設定全体
show router-id装置のグローバルルータIDとその由来インタフェース(router-idを省略したときの候補)

OSPFの状態をリセットする操作は次のとおりです。

コマンド動作
clear ospf [プロセス名] processOSPFプロセスをリセットする(隣接とLSDBを消して作り直す)。Reset OSPF process? [no]:の確認が出る
clear ospf [プロセス名] statisticsshow ospf statisticsのカウンタをクリアする
process restart ospfOSPFプロセス自体を再起動する。確認は出ない

実機での検証

XR1〜XR3の3台をGigabitEthernetで直列に接続し、両端のXR1・XR3にホストを収容したシングルエリア構成でOSPFを設定しました。すべてのリンクがエリア0です。各ルータのLoopback0のアドレス(1.1.1.13.3.3.3)をルータIDにしています。

Loopback0と、ホストを収容するXR1・XR3のGigabitEthernet0/0/0/1はパッシブインタフェースにしています。ホスト側にOSPFルータはいないため、Helloを送る必要がありません。

ルータルータIDOSPFを動かすインタフェース
XR11.1.1.1Loopback0(passive)、Gi0/0/0/0(10.1.2.1/24)、Gi0/0/0/1(10.1.10.1/24、passive)
XR22.2.2.2Loopback0(passive)、Gi0/0/0/0(10.1.2.2/24)、Gi0/0/0/1(10.2.3.2/24)
XR33.3.3.3Loopback0(passive)、Gi0/0/0/0(10.2.3.3/24)、Gi0/0/0/1(10.3.10.1/24、passive)

ホストはUbuntu 26.04で、HOST1に10.1.10.10/24、HOST2に10.3.10.10/24を設定し、デフォルトゲートウェイを収容側のルータに向けています。

OSPF設定

XR1 OSPF設定Config
router ospf 1
 router-id 1.1.1.1
 area 0
  interface Loopback0
   passive enable
  !
  interface GigabitEthernet0/0/0/0
  !
  interface GigabitEthernet0/0/0/1
   passive enable
  !
 !
!
XR2 OSPF設定Config
router ospf 1
 router-id 2.2.2.2
 area 0
  interface Loopback0
   passive enable
  !
  interface GigabitEthernet0/0/0/0
  !
  interface GigabitEthernet0/0/0/1
  !
 !
!
XR3 OSPF設定Config
router ospf 1
 router-id 3.3.3.3
 area 0
  interface Loopback0
   passive enable
  !
  interface GigabitEthernet0/0/0/0
  !
  interface GigabitEthernet0/0/0/1
   passive enable
  !
 !
!

XR1での投入の実行例です。commitで反映されます。

XR1 OSPF設定 実行例
RP/0/RP0/CPU0:XR1#configure
Thu Sep 10 04:38:23.855 UTC
RP/0/RP0/CPU0:XR1(config)#router ospf 1
RP/0/RP0/CPU0:XR1(config-ospf)#router-id 1.1.1.1
RP/0/RP0/CPU0:XR1(config-ospf)#area 0
RP/0/RP0/CPU0:XR1(config-ospf-ar)#interface Loopback0
RP/0/RP0/CPU0:XR1(config-ospf-ar-if)#passive enable
RP/0/RP0/CPU0:XR1(config-ospf-ar-if)#exit
RP/0/RP0/CPU0:XR1(config-ospf-ar)#interface GigabitEthernet0/0/0/0
RP/0/RP0/CPU0:XR1(config-ospf-ar-if)#exit
RP/0/RP0/CPU0:XR1(config-ospf-ar)#interface GigabitEthernet0/0/0/1
RP/0/RP0/CPU0:XR1(config-ospf-ar-if)#passive enable
RP/0/RP0/CPU0:XR1(config-ospf-ar-if)#exit
RP/0/RP0/CPU0:XR1(config-ospf-ar)#commit
Thu Sep 10 04:38:25.172 UTC
RP/0/RP0/CPU0:XR1(config-ospf-ar)#end
RP/0/RP0/CPU0:XR1#show running-config router ospf
Thu Sep 10 04:38:28.041 UTC
router ospf 1
 router-id 1.1.1.1
 area 0
  interface Loopback0
   passive enable
  !
  interface GigabitEthernet0/0/0/0
  !
  interface GigabitEthernet0/0/0/1
   passive enable
  !
 !
!

設定の確認

show ospf neighborでネイバーを確認します。中継のXR2は両隣とFullになります。

XR2 show ospf neighbor
RP/0/RP0/CPU0:XR2#show ospf neighbor
Thu Sep 10 04:40:04.683 UTC

* Indicates MADJ interface
# Indicates Neighbor awaiting BFD session up

Neighbors for OSPF 1

Neighbor ID     Pri   State           Dead Time   Address         Interface
1.1.1.1         1     FULL/BDR        00:00:36    10.1.2.1        GigabitEthernet0/0/0/0
    Neighbor is up for 00:01:19
3.3.3.3         1     FULL/DR         00:00:34    10.2.3.3        GigabitEthernet0/0/0/1
    Neighbor is up for 00:01:03

Total neighbor count: 2

show ospf interface briefで、どのインタフェースがどのエリアで動いているか、DR/BDRの役割、隣接数を確認します。XR1では、XR2に向いたGi0/0/0/0の隣接数が1/1なのに対し、パッシブにしたGi0/0/0/10/0です。Loopback0はLOOPと表示されます。

XR1 show ospf interface brief
RP/0/RP0/CPU0:XR1#show ospf interface brief
Thu Sep 10 04:39:44.874 UTC

* Indicates MADJ interface, (P) Indicates fast detect hold down state

Interfaces for OSPF 1

Interface          PID   Area            IP Address/Mask    Cost  State Nbrs F/C
Lo0                1     0               1.1.1.1/32         1     LOOP  0/0
Gi0/0/0/0          1     0               10.1.2.1/24        1     BDR   1/1
Gi0/0/0/1          1     0               10.1.10.1/24       1     DR    0/0

パッシブにしたインタフェースの詳細をshow ospf interfaceで見ると、No Hellos (Passive interface)と表示され、隣接数も0です。

XR1 show ospf interface GigabitEthernet0/0/0/1
RP/0/RP0/CPU0:XR1#show ospf interface GigabitEthernet0/0/0/1
Thu Sep 10 04:40:40.666 UTC

GigabitEthernet0/0/0/1 is up, line protocol is up 
  Internet Address 10.1.10.1/24, Area 0, SID 0, Strict-SPF SID 0
  Label stack Primary label 0 Backup label 0 SRTE label 0
  Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 1
  Transmit Delay is 1 sec, State DR, Priority 1, MTU 1500, MaxPktSz 1500
  Forward reference No, Unnumbered no,  Bandwidth 1000000 
  RIB LC sync Yes
  Designated Router (ID) 1.1.1.1, Interface address 10.1.10.1
  No backup designated router on this network
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
    No Hellos (Passive interface) 
  Index 3/3, flood queue length 0
  Next 0(0)/0(0)
  Last flood scan length is 0, maximum is 0
  Last flood scan time is 0 msec, maximum is 0 msec
  LS Ack List: current length 0, high water mark 0
  Neighbor Count is 0, Adjacent neighbor count is 0
  Suppress hello for 0 neighbor(s)
  Multi-area interface Count is 0
  Segment Routing Forwarding MPLS enabled: Yes
  Adjacency hold timer expired last : Never
  Exchange timer expired last : Never

show route ospfで、OSPFで学んだ経路(O)を確認します。XR1には他の2台のLoopback0に加え、パッシブにしたXR3側のホストセグメント10.3.10.0/24も入っています。Helloを止めても、そのインタフェースのネットワークはOSPFに広告されます。

XR1 show route ospf
RP/0/RP0/CPU0:XR1#show route ospf
Thu Sep 10 04:39:43.518 UTC

O    2.2.2.2/32 [110/2] via 10.1.2.2, 00:00:21, GigabitEthernet0/0/0/0
O    3.3.3.3/32 [110/3] via 10.1.2.2, 00:00:06, GigabitEthernet0/0/0/0
O    10.2.3.0/24 [110/2] via 10.1.2.2, 00:00:11, GigabitEthernet0/0/0/0
O    10.3.10.0/24 [110/3] via 10.1.2.2, 00:00:06, GigabitEthernet0/0/0/0

HOST1からHOST2へpingを実行し、OSPFで学んだ経路を使って端末同士が疎通できることを確認します。

HOST1 ping 10.3.10.10
cisco@HOST1:~$ ping -c 5 10.3.10.10
PING 10.3.10.10 (10.3.10.10) 56(84) bytes of data.
64 bytes from 10.3.10.10: icmp_seq=1 ttl=61 time=16.7 ms
64 bytes from 10.3.10.10: icmp_seq=2 ttl=61 time=10.2 ms
64 bytes from 10.3.10.10: icmp_seq=3 ttl=61 time=10.3 ms
64 bytes from 10.3.10.10: icmp_seq=4 ttl=61 time=11.6 ms
64 bytes from 10.3.10.10: icmp_seq=5 ttl=61 time=11.4 ms

--- 10.3.10.10 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 10.157/12.017/16.720/2.417 ms

検証Configおよびshow結果

3台すべてから、次の3種類をルータごとに分けて取得しています。検証Configはこの..._run.txtです。

ファイル内容
..._show.txtshow version / show interface description / show route / show route ospf / show ospf / show ospf interface / show ospf interface brief / show ospf neighbor / show ospf neighbor detail / show ospf database / show ospf database router / show ospf database network / show ospf statistics interface / show ospf routes / show ospf statistics / show router-id / show ospf trace events
..._log.txtOSPFを設定する直前にlogmsgでマーカーを入れ、その時刻をshow logging startに指定して取得したshow logging
..._run.txtshow running-config(=検証Config)
ルータshow出力syslogrunning-config
XR1showlogrun
XR2showlogrun
XR3showlogrun

関連記事

OSPFの仕組みはOSPFとは、ルータIDの決まり方はOSPF ルータIDを参照してください。