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

IOS XE OSPF基本設定

目次

Cisco IOS XE OSPF設定方法

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

IOS XE OSPF基本設定
router ospf [プロセス番号]
 router-id [ルータID]
 network [アドレス] [ワイルドカードマスク] area [エリアID]
入力箇所入力内容
[プロセス番号]OSPFプロセスの番号(1〜65535)。装置内でプロセスを区別するだけの値で、隣接するルータと一致させる必要はない
[ルータID]IPv4アドレス形式の32ビット値(例: 1.1.1.1)。省略すると自動で決まるが、明示的に設定することを推奨(OSPF ルータID
[アドレス]OSPFを動かすインタフェースのアドレス範囲
[ワイルドカードマスク]0が一致、1が任意を表すマスク(/24なら0.0.0.255)。1つのインタフェースだけを指定するなら0.0.0.0
[エリアID]0のような10進数か、0.0.0.0のようなドット付き10進表記

networkインタフェースに設定されたIPアドレスと照合するコマンドです。一致したインタフェースでOSPFが有効になり、そのインタフェースのネットワークが指定したエリアの経路として広告されます。

インタフェース配下での有効化

networkを使わず、インタフェースコンフィグレーションモードで直接エリアを指定することもできます。どのインタフェースがどのエリアに属するかがインタフェースの設定を見るだけで分かるため、アドレスの範囲が複雑な構成ではこちらが読みやすくなります。

IOS XE OSPF インタフェース配下での有効化
interface [インタフェース名]
 ip ospf [プロセス番号] area [エリアID]

同じインタフェースにnetworkip ospf ... areaの両方が該当する場合は、インタフェース配下のip ospf ... areaが優先されます。

パッシブインタフェース

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

IOS XE OSPF パッシブインタフェース設定
router ospf [プロセス番号]
 passive-interface [インタフェース名]

全インタフェースを既定でパッシブにして、Helloを送るインタフェースだけを個別に戻すこともできます。OSPFを動かすインタフェースよりパッシブにしたいインタフェースのほうが多い構成で使います。

IOS XE OSPF 既定をパッシブにする
router ospf [プロセス番号]
 passive-interface default
 no passive-interface [インタフェース名]
IOS XR にはnetworkコマンドがなく、router ospf配下のareainterfaceを1つずつ列挙します。パッシブもrouter ospf直下ではなくarea / interface配下のpassive enableで指定します。設定の反映も、IOS XEが即時反映なのに対しIOS XRはcommitが必要です(IOS XR OSPF基本設定)。

Cisco IOS XE OSPF確認コマンド

IOS XE のOSPFはshow ip ospf系のコマンドで確認します。プロセスが1つなら[プロセス番号]は省略できます。

コマンド確認できること
show ip ospf [プロセス番号]プロセスの概要。ルータID、エリアの一覧、SPFの実行回数、各種タイマー
show ip ospf neighborネイバーの一覧。Neighbor ID、プライオリティ、状態(FULL/DRなど)、Dead time、対向アドレス、インタフェース
show ip ospf neighbor detailネイバーの詳細。Optionsフィールド、DR/BDR、状態遷移の回数、隣接している時間
show ip ospf interface briefOSPFを動かしているインタフェースの一覧。プロセス、エリア、コスト、状態、隣接数が1行ずつ
show ip ospf interface [インタフェース名]インタフェースの詳細。ネットワークタイプ、コスト、プライオリティ、DR/BDR、Hello/Deadタイマー、パッシブかどうか
show ip ospf databaseLSDBの一覧(LSAタイプごとの要約)。router / network / summary / externalなどを続けると各LSAの中身
show ip route ospfルーティングテーブルのうちOSPFで学んだ経路(O / O IA / O E2など)
show ip protocols動作中のルーティングプロトコルの要約。OSPFのルータID、network文、パッシブインタフェースの一覧、情報元
show ip ospf statisticsSPFの実行回数と所要時間、実行のきっかけになったLSA
show running-config | section router ospfOSPFの設定全体

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

コマンド動作
clear ip ospf [プロセス番号] processOSPFプロセスをリセットする(隣接とLSDBを消して作り直す)。Reset ALL OSPF processes? [no]:の確認が出る
clear ip ospf [プロセス番号] countersネイバーごとの状態遷移カウンタをクリアする
clear ip ospf [プロセス番号] redistribution再配布した経路を作り直す

router-idを後から変更した場合、新しいルータIDはclear ip ospf processを実行するまで反映されません。

実機での検証

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

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

ルータルータIDOSPFを動かすインタフェース
XE11.1.1.1Loopback0(passive)、Gi1(10.1.2.1/24)、Gi2(10.1.10.1/24、passive)
XE22.2.2.2Loopback0(passive)、Gi1(10.1.2.2/24)、Gi2(10.2.3.2/24)
XE33.3.3.3Loopback0(passive)、Gi1(10.2.3.3/24)、Gi2(10.3.10.1/24、passive)

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

OSPF設定

XE1にOSPFを設定します。IOS XEはendを入力した時点で設定が反映されます。Loopback0とホスト側のGigabitEthernet2passive-interfaceにしています。

XE1 OSPF設定
XE1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
XE1(config)#router ospf 1
XE1(config-router)# router-id 1.1.1.1
XE1(config-router)# network 1.1.1.1 0.0.0.0 area 0
XE1(config-router)# network 10.1.2.0 0.0.0.255 area 0
XE1(config-router)# network 10.1.10.0 0.0.0.255 area 0
XE1(config-router)# passive-interface Loopback0
XE1(config-router)# passive-interface GigabitEthernet2
XE1(config-router)#end
XE1#show running-config | section router ospf
router ospf 1
 router-id 1.1.1.1
 passive-interface GigabitEthernet2
 passive-interface Loopback0
 network 1.1.1.1 0.0.0.0 area 0
 network 10.1.2.0 0.0.0.255 area 0
 network 10.1.10.0 0.0.0.255 area 0

Loopback0はnetwork 1.1.1.1 0.0.0.0 area 0のようにワイルドカードマスクを0.0.0.0にして、そのアドレスだけを指定しています。show running-configでは入力した順番ではなく、passive-interfacenetworkより前にまとめて表示されます。

XE2・XE3にも同じ形で設定します。XE2はホストを収容していないため、パッシブにするのはLoopback0だけです。

XE2・XE3のOSPF設定
(XE2)
router ospf 1
 router-id 2.2.2.2
 passive-interface Loopback0
 network 2.2.2.2 0.0.0.0 area 0
 network 10.1.2.0 0.0.0.255 area 0
 network 10.2.3.0 0.0.0.255 area 0

(XE3)
router ospf 1
 router-id 3.3.3.3
 passive-interface GigabitEthernet2
 passive-interface Loopback0
 network 3.3.3.3 0.0.0.0 area 0
 network 10.2.3.0 0.0.0.255 area 0
 network 10.3.10.0 0.0.0.255 area 0

設定の確認

show ip ospf neighborでネイバーを確認します。中継しているXE2は両隣と隣接しているため2行出ます。FULLはLSDBの同期が完了した状態です。

XE2 show ip ospf neighbor
XE2#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
3.3.3.3           1   FULL/DR         00:00:32    10.2.3.3        GigabitEthernet2
1.1.1.1           1   FULL/BDR        00:00:36    10.1.2.1        GigabitEthernet1

State/の後ろはそのセグメントでの役割です。イーサネットのネットワークタイプは既定でBROADCASTなので、2台だけのリンクでもDR/BDRが選ばれます。

show ip ospf interface briefで、OSPFが動いているインタフェースを一覧できます。Nbrs F/Cは隣接(Full)数と検出したネイバー数です。

XE1 show ip ospf interface brief
XE1#show ip ospf interface brief
Interface    PID   Area            IP Address/Mask    Cost  State Nbrs F/C
Lo0          1     0               1.1.1.1/32         1     LOOP  0/0
Gi2          1     0               10.1.10.1/24       1     DR    0/0
Gi1          1     0               10.1.2.1/24        1     BDR   1/1

パッシブにしたGi2Nbrs F/C0/0です。ただし、StateDRのまま。この一覧だけではパッシブかどうかは判別できません。Helloを送っていないので対向がおらず、自分がDRになっているだけです。

パッシブであることはshow ip ospf interfaceの詳細で確認します。

XE1 show ip ospf interface GigabitEthernet2
XE1#show ip ospf interface GigabitEthernet2
GigabitEthernet2 is up, line protocol is up 
  Internet Address 10.1.10.1/24, Interface ID 6, Area 0
  Attached via Network Statement
  Process ID 1, Router ID 1.1.1.1, Network Type BROADCAST, Cost: 1
  Topology-MTID    Cost    Disabled    Shutdown      Topology Name
        0           1         no          no            Base
  Transmit Delay is 1 sec, State DR, Priority 1
  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
    oob-resync timeout 40
    No Hellos (Passive interface) 
  Supports Link-local Signaling (LLS)
  Cisco NSF helper support enabled
  IETF NSF helper support enabled
  Index 1/3/3, flood queue length 0
  Next 0x0(0)/0x0(0)/0x0(0)
  Last flood scan length is 0, maximum is 0
  Last flood scan time is 0 msec, maximum is 0 msec
  Neighbor Count is 0, Adjacent neighbor count is 0 
  Suppress hello for 0 neighbor(s)

通常はHelloの送信間隔が出る位置にNo Hellos (Passive interface)と表示され、Neighbor Count is 0になります。Attached via Network Statementは、このインタフェースがnetworkコマンドで有効になったことを示しています。インタフェース配下のip ospf 1 area 0で有効にした場合はAttached via Interface Enableになります。

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

XE1 show ip route ospf
XE1#show ip route ospf | begin Gateway
Gateway of last resort is not set

      2.0.0.0/32 is subnetted, 1 subnets
O        2.2.2.2 [110/2] via 10.1.2.2, 00:04:06, GigabitEthernet1
      3.0.0.0/32 is subnetted, 1 subnets
O        3.3.3.3 [110/3] via 10.1.2.2, 00:04:02, GigabitEthernet1
      10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
O        10.2.3.0/24 [110/2] via 10.1.2.2, 00:04:02, GigabitEthernet1
O        10.3.10.0/24 [110/3] via 10.1.2.2, 00:04:02, GigabitEthernet1

コードの凡例が長いので| begin Gatewayで先頭を飛ばしています。

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=6.67 ms
64 bytes from 10.3.10.10: icmp_seq=2 ttl=61 time=6.51 ms
64 bytes from 10.3.10.10: icmp_seq=3 ttl=61 time=5.86 ms
64 bytes from 10.3.10.10: icmp_seq=4 ttl=61 time=7.60 ms
64 bytes from 10.3.10.10: icmp_seq=5 ttl=61 time=5.76 ms

--- 10.3.10.10 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4007ms
rtt min/avg/max/mdev = 5.757/6.478/7.595/0.660 ms

ttl=61は、Linuxの初期値64からルータ3台を通過して3減った値です。

検証Configおよびshow結果

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

ファイル内容
..._show.txtshow version / show interfaces description / show ip interface brief / show ip route / show ip protocols / show ip ospf / show ip ospf interface / show ip ospf interface brief / show ip ospf neighbor / show ip ospf neighbor detail / show ip ospf database / show ip ospf database router / show ip ospf database network / show ip route ospf / show ip ospf statistics
..._log.txtOSPFを設定する直前にsend logでマーカーを入れ、その位置から絞り込んだshow logging。隣接がFULLになる%OSPF-5-ADJCHGが入っています
..._run.txtshow running-config(=検証Config)
ルータshow出力syslogrunning-config
XE1showlogrun
XE2showlogrun
XE3showlogrun

関連記事

OSPFの仕組みはOSPFとは、ルータIDの決まり方はOSPF ルータIDを参照してください。IOS XR での設定はIOS XR OSPF基本設定にあります。