ルーター3台をすべてエリア0でOSPFに参加させたら、スタティックルートを1行も書かずに、全PCが互いに疎通できるようになるでしょうか?
座学で「router ospfで起動し、networkコマンドでワイルドカードマスクを使って範囲を指定する」と学びました。今回は3台のルーターにOSPFを設定し、ネイバーが自動的に確立され、経路が自動的に学習される様子を確認します。
この演習でできるようになること
- ルーター3台にOSPFを設定し、
networkコマンドをワイルドカードマスクで正しく書けるようになる show ip ospf neighborでネイバー関係がFULLになっていることを確認できるようになるshow ip routeでOSPFが学習した経路(Oのエントリ)を確認できるようになる
使用トポロジ
Router 2911を3台(R1・R2・R3)用意し、R1-R2、R2-R3をそれぞれリンクで接続します(R1とR3は直接つながっていません)。各ルーター配下にPCを1台ずつ接続します。
準備
- Router 2911を3台(R1・R2・R3)、PC-PTを3台(PC0・PC1・PC2)配置する
- PC0をR1のGi0/0に、PC1をR2のGi0/0に、PC2をR3のGi0/0にストレートケーブルで接続する
- R1のGi0/1とR2のGi0/1をクロスケーブルで接続する
- R2のGi0/2とR3のGi0/1をクロスケーブルで接続する
- IPアドレスを以下のように割り当てる
| 機器 | インターフェース | IPアドレス |
|---|---|---|
| PC0 | - | 192.168.1.10/24(GW: 192.168.1.1) |
| R1 | Gi0/0 | 192.168.1.1/24 |
| R1 | Gi0/1 | 10.0.12.1/30 |
| R2 | Gi0/1 | 10.0.12.2/30 |
| R2 | Gi0/0 | 192.168.2.1/24 |
| R2 | Gi0/2 | 10.0.23.1/30 |
| R3 | Gi0/1 | 10.0.23.2/30 |
| R3 | Gi0/0 | 192.168.3.1/24 |
| PC1 | - | 192.168.2.10/24(GW: 192.168.2.1) |
| PC2 | - | 192.168.3.10/24(GW: 192.168.3.1) |
手順
- 各ルーターの全インターフェースにIPアドレスを設定し、
no shutdownで有効化する(表の通り。手順は前章のIP設定と同じ流れです)
- R1にOSPFを設定する
R1(config)# router ospf 1
R1(config-router)# router-id 1.1.1.1
R1(config-router)# network 192.168.1.0 0.0.0.255 area 0
R1(config-router)# network 10.0.12.0 0.0.0.3 area 0
- R2にOSPFを設定する
R2(config)# router ospf 1
R2(config-router)# router-id 2.2.2.2
R2(config-router)# network 192.168.2.0 0.0.0.255 area 0
R2(config-router)# network 10.0.12.0 0.0.0.3 area 0
R2(config-router)# network 10.0.23.0 0.0.0.3 area 0
- R3にOSPFを設定する
R3(config)# router ospf 1
R3(config-router)# router-id 3.3.3.3
R3(config-router)# network 192.168.3.0 0.0.0.255 area 0
R3(config-router)# network 10.0.23.0 0.0.0.3 area 0
- R2でネイバー関係を確認する
R2# show ip ospf neighbor
R1・R3の両方とFULL(あるいはDROTHER同士なら2WAY)でネイバーが成立していることを確認します。
- R1で経路テーブルを確認し、直接つながっていないR3配下のネットワーク(192.168.3.0/24)まで自動学習されているかを確認する
R1# show ip route
- PC0からPC2(R1とは直接つながっていないR3配下のPC)へpingを打ち、疎通を確認する
C:\> ping 192.168.3.10
確認
R2# show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
1.1.1.1 1 FULL/DR 00:00:35 10.0.12.1 GigabitEthernet0/1
3.3.3.3 1 FULL/BDR 00:00:39 10.0.23.2 GigabitEthernet0/2
R1# show ip route
O 192.168.2.0/24 [110/2] via 10.0.12.2, 00:03:20, GigabitEthernet0/1
O 192.168.3.0/24 [110/3] via 10.0.12.2, 00:03:15, GigabitEthernet0/1
R1のルーティングテーブルに、スタティックルートを1行も書いていないのにO(OSPF)のエントリとして192.168.2.0/24・192.168.3.0/24が自動的に現れていれば成功です。
C:\> ping 192.168.3.10
Reply from 192.168.3.10: bytes=32 time=3ms TTL=125
合格チェックリスト
- 3台すべてのルーターで
show ip ospf neighborにStateがFULL(またはDROTHER同士は2WAY)のネイバーが表示されている - R1の
show ip routeに、直接つながっていない192.168.3.0/24へのOエントリが自動的に載っている - PC0からPC2へのpingが成功する(R1-R3間は直接リンクがないため、R2経由でルーティングされていることの証明になる)
- 3台とも
router-idがそれぞれ異なる値で明示的に設定されている - ワイルドカードマスクが
0.0.0.255(/24用)・0.0.0.3(/30用)と正しく使い分けられている
つまずきポイント
- ワイルドカードマスクの書き間違い:
networkコマンドではサブネットマスクではなくワイルドカードマスク(255から引いた値)を使います。255.255.255.0のつもりで0.0.0.255と書くべきところを、うっかり255.255.255.0のまま入力してしまう間違いが非常に多いです - エリア番号の不一致:3台とも
area 0で統一していますが、どれか1台だけarea 1のように打ち間違えると、その区間だけネイバーが成立しません。show ip ospf neighborに相手が出てこない場合は、まずエリア番号の一致を疑いましょう - R2の
networkコマンドの書き漏れ:R2は3つのインターフェース(Gi0/0・Gi0/1・Gi0/2)すべてがOSPFの範囲に含まれる必要があります。1つでもnetworkコマンドに含め忘れると、その先のネイバーやネットワークが経路に現れません
R1とR3は直接ケーブルでつながっていませんが、show ip routeを確認するとR1のテーブルに192.168.3.0/24への経路がOとして表示されていました。これはなぜでしょうか?
答えを見る
OSPFがR2を経由してリンクステート情報を交換し、最短経路を自動計算しているためです。OSPFはリンクステート型のルーティングプロトコルであり、直接隣接していないルーター配下のネットワークも、ネイバー経由でLSA(リンクステート広告)を受け取ることで、自動的にルーティングテーブルへ反映されます。
スタティックルートを1行も書かずに、3台のルーターと3つのネットワークが全部つながる。これがOSPFの強さだよ。ワイルドカードマスクの計算だけは焦らず255から引く癖をつけてね。次はFHRPとHSRP、ゲートウェイを冗長化する仕組みを見ていくよ。