前回書いた以下の記事の続きです。
OSPFを有効にするコマンドについて紹介したので、今回はOSPFの確認コマンドでよく使うものを中心に紹介したいと思います。
前回同様、CCNAとCCNPのチャレンジャーを想定して書いています。
また、この手の話は実例があった方が分かりやすいと思いますので、前回と同様に実例を兼ねて説明します。
トポロジは前回と同様に以下の図を利用します。
- R21とR2でOSPFを有効にする。それ以外は今回は無視してください。何もしないので。
- Areaは1とする
Area間でのやりとりがなければ、別に初めに指定するAreaが0じゃなくても構いません。
その証明の為にも今回はArea1で行こうと思います。
OSPFを有効にする
R21側の設定
まずは、事前にOSPFが有効になっているか確認してみましょう。
R21#sh ip protocol *** IP Routing is NSF aware ***
このコマンドで、EIGRP/OSPF/BGP等のルーティングプロトコルが有効になっているかを確認できます。(CCNPまではBGPは対象じゃないですが)
OSPFが表示されていないので、まだ有効になっていないですね。
有効になっていないという事は「sh ip ospf interface brief」でも何も表示されないはずです。
R21#sh ip ospf interface brief R21#
前回も説明しましたが、このコマンドでOSPFが有効になっているインターフェースの確認が出来ます。
今回は何も表示されません。想定通りです。
では、さっそくR21側の各インターフェースにOSPFを有効化しましょう。
R21側はF0/0,Lo2,Lo3,Lo4とOSPFを有効にしたいインターフェースが多いので、networkコマンドで一気にOSPFを有効にしちゃいましょう。
R21#conf t Enter configuration commands, one per line. End with CNTL/Z. R21(config)#router ospf 1 R21(config-router)#network 0.0.0.0 255.255.255.255 area 1 R21(config-router)#end
OSPFが有効になったインターフェースを確認してみましょう。このコマンド、CCIEの勉強では1万回くらい打ちます。
R21#sh ip ospf interface brief Interface PID Area IP Address/Mask Cost State Nbrs F/C Lo2 1 1 10.20.2.21/24 1 LOOP 0/0 Lo3 1 1 10.20.3.21/24 1 LOOP 0/0 Lo4 1 1 10.20.4.21/24 1 LOOP 0/0 Fa0/0 1 1 10.20.1.21/24 1 WAIT 0/0
想定通り、全ての(IPを持っている)インターフェースでOSPFが有効になりました。
では、R2側とネイバーが張れているでしょうか?現時点ではR2側の設定を行っていないので、もちろんネイバー関係にはなっていないはずですね。
ネイバーが存在しているかはsh ip ospf neighborで確認します。
R21#sh ip ospf neighbor R21#
何も表示されないので、ネイバー関係は一切ありません。
R2側の設定
続いてR2側の設定を行います。
その前に同様の確認をしましょう。
R2#sh ip protocol *** IP Routing is NSF aware *** R2#sh ip ospf interface brief R2#
では、設定を行います。今回はR21対向のインターフェースだけでOSPFを有効にしてみます。
R2#sh ip int bri Interface IP-Address OK? Method Status Protocol FastEthernet0/0 10.20.1.2 YES NVRAM up up FastEthernet0/1 172.16.20.2 YES NVRAM up up Tunnel0 10.0.123.2 YES NVRAM up up R2#conf t Enter configuration commands, one per line. End with CNTL/Z. R2(config)#int f0/0 R2(config-if)#ip ospf 1 area 1 R2(config-if)# *Oct 15 18:50:33.205: %OSPF-5-ADJCHG: Process 1, Nbr 10.20.4.21 on FastEthernet0/0 from LOADING to FULL, Loading Done R2(config-if)#end R2#
「ip ospf 1 area 1」を実行した瞬間に、ネイバーが張られたメッセージが表示されました。
R2側でネイバー状態を確認してみます。
(この辺からコマンド省略させてください)
R2#sh ip o nei Neighbor ID Pri State Dead Time Address Interface 10.20.4.21 1 FULL/DR 00:00:38 10.20.1.21 FastEthernet0/0
R2は「10.20.4.21」というノードとネイバー関係にあることが分かります。このノード名はルーターIDです。IPアドレスではないですよ。
この時点でF0/0のインターフェースがOPSF有効となっていることが確定しているのですが、念のためコマンドで確認してみましょう。
R2#sh ip o int bri Interface PID Area IP Address/Mask Cost State Nbrs F/C Fa0/0 1 1 10.20.1.2/24 1 BDR 1/1
想定通り、F0/0はOSPFが有効になっていますね。
R2からPINGテストしてみましょう
では、実際にR2からR21のLo2(10.20.2.21)へ疎通テストをしてみます。
R2のルーティングテーブルをsh ip routeで確認します。後ろにospfを含めると、ospfで受け取ったルートだけを表示できます。
R2#sh ip route ospf Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2 i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2 ia - IS-IS inter area, * - candidate default, U - per-user static route o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP + - replicated route, % - next hop override Gateway of last resort is 172.16.20.100 to network 0.0.0.0 10.0.0.0/8 is variably subnetted, 7 subnets, 2 masks O 10.20.2.21/32 [110/2] via 10.20.1.21, 00:25:09, FastEthernet0/0 O 10.20.3.21/32 [110/2] via 10.20.1.21, 00:25:09, FastEthernet0/0 O 10.20.4.21/32 [110/2] via 10.20.1.21, 00:25:09, FastEthernet0/0
10.20.2.21のルートが入っています。PINGしてみます。
R2#ping 10.20.2.21 Type escape sequence to abort. Sending 5, 100-byte ICMP Echos to 10.20.2.21, timeout is 2 seconds: !!!!! Success rate is 100 percent (5/5), round-trip min/avg/max = 48/76/92 ms
無事PINGが成功しました。
また、Area0がなくてArea1だけでもネイバーが張れて、プレフィックス(正確にはLSDB)が交換できることが証明されました。
SPFデータベースを見てみる
当記事はCCNA/CCNPの方が対象なので、細かい事は解説しませんが、せっかくなのでOSPFデータベースの触りを見てみましょう。
OSPFはLinkState型のルーティングプロトコルです。参考書では「LinkState型プロトコルは皆同じ地図を持っている」と表現しているものもあると思います。
その地図を見ていきましょう。sh ip ospf databaseで見れます。
まずは、R2から
R2#sh ip ospf database OSPF Router with ID (172.16.20.2) (Process ID 1) Router Link States (Area 1) Link ID ADV Router Age Seq# Checksum Link count 10.20.4.21 10.20.4.21 1674 0x80000015 0x000C66 4 172.16.20.2 172.16.20.2 1800 0x80000001 0x0095A2 1 Net Link States (Area 1) Link ID ADV Router Age Seq# Checksum 10.20.1.21 10.20.4.21 1801 0x80000001 0x00E3E0 R2#
繰り返しますが、今回はデータベースの細かい説明は割愛します。
次に、R21です。
R21#sh ip o d OSPF Router with ID (10.20.4.21) (Process ID 1) Router Link States (Area 1) Link ID ADV Router Age Seq# Checksum Link count 10.20.4.21 10.20.4.21 1734 0x80000015 0x000C66 4 172.16.20.2 172.16.20.2 1863 0x80000001 0x0095A2 1 Net Link States (Area 1) Link ID ADV Router Age Seq# Checksum 10.20.1.21 10.20.4.21 1861 0x80000001 0x00E3E0 R21#
R2とR21の出力結果について、「Router Link States (Area 1)」から下を比べてみてください。どこが違うか、お分かりですか?
「Age」の数値だけですね?
それ以外は完全に一致していますよね?
これが、「みんな同じ地図を持っている」という事です。
RIPやEIGRP等のDistanceVector型プロトコルだったら、NextHopの値とか、集約ルートとか、ルーターごとに違う個所が多数ありますが、OSPFは同じエリア内なら同じ地図(データベース)を持っている訳です。
このデータベースから目的のルートまでの最適パスを各々のルーターが計算するのです。
コメント