5. OSPF_ハンズオン
1. 本演習の目的
このハンズオン演習では、各ルータが利用できるインターフェースが2つという制約の中でL2スイッチと各ルータに接続されたPCを活用し、以下のスキルを習得することを目的とします。
- OSPF(Open Shortest Path First)の基本的な設定方法を理解し、実際にルータに設定できる。
- マルチアクセスネットワーク(L2スイッチ経由)におけるOSPFネイバー関係の確立プロセスと、その確認方法を習得する。
- OSPFにおけるDR(代表ルータ)/BDR(バックアップ代表ルータ)の役割と選出プロセスを理解し、確認できる。
- OSPFによって学習された経路情報(自身が持つネットワークおよび他のルータ経由のネットワーク)が、どのようにルーティングテーブルに反映されるかを確認できる。
- ネットワーク障害発生時に、OSPFがどのように障害を検知し、ルーティングテーブルを更新するか、また通信影響がどう変わるかを体験する。
- チームメンバーと協力して課題に取り組み、コミュニケーションを取りながら問題解決を行う。
チーム構成と役割分担のヒント
本演習は1チーム3~4名で行います。円滑に進めるために、以下のような役割分担を話し合ってみましょう。
- リーダー/進行役: 演習全体の進捗を管理し、メンバーの意見をまとめます。
- R1設定担当: ルータ1の設定作業を主に行います。
- R2設定担当: ルータ2の設定作業を主に行います。
- R3設定担当: ルータ3の設定作業を主に行います。
-
PC設定/確認担当: PCの設定や、全体の疎通確認、コマンド結果の記録などを担当します。
- (3人チームの場合は、いずれかのメンバーが兼任してください)
- 設定者と確認者を分けるなど、ダブルチェックを行うとミスを防ぎやすくなります。
2. 演習ネットワーク構成
1チームあたりの構成
各チームには、以下の機材が割り当てられています。
- ルータ: 3台 (R1, R2, R3) - 各ルータは2つのインターフェースを使用します。
- L2スイッチ: 1台
- PC: 3台 (PC-A, PC-B, PC-C)
- 接続用ケーブル類
ネットワーク構成図(各チーム共通)
以下の図のようなネットワークを構築します。
L2スイッチ接続 (共通セグメント):
R1, R2, R3 の各1つ目のインターフェース(IF1 と仮称)を、すべて同じL2スイッチに接続します。
PC接続:
R1の2つ目のインターフェース(IF2 と仮称)をPC-Aに接続します。
R2の2つ目のインターフェース(IF2 と仮称)をPC-Bに接続します。
R3の2つ目のインターフェース(IF2 と仮称)をPC-Cに接続します。
全てのOSPF関連セグメントは、OSPFエリア0 (バックボーンエリア) のシングルエリア構成とします。
3. IPアドレス割り当て表
各自のチーム番号(X)を確認し、該当するIPアドレスを使用してください。
チーム1 (X=1), チーム2 (X=2), チーム3 (X=3), チーム4 (X=4), チーム5 (X=5), チーム6 (X=6)
注意: 表中のインターフェース名(Gi0/0, Gi0/1 など)は代表例です。実際のルータのインターフェース名に合わせて読み替えてください。
※IP一覧表はGoogleスプレッドシートで配布
L2スイッチ: 設定不要(VLANを使用しないプレーンな状態を想定)
4. 演習ステップ
Step 1: 初期設定(各ルータ・PC)
コンソール接続とモード移行:
各ルータにコンソール接続し、特権EXECモード (enable)、グローバルコンフィグレーションモード (configure terminal) に移行します。
ホスト名設定:
各ルータに分かりやすいホスト名を設定します (例: hostname TeamX-R1)。
インターフェース設定:
上記「IPアドレス割り当て表」に従い、各ルータの使用するインターフェース(Loopback0、L2スイッチ接続用IF1、各PC接続用IF2)にIPアドレスとサブネットマスクを設定します。
物理インターフェースを有効化します (no shutdown)。
PC設定:
PC-A, PC-B, PC-CにIPアドレス、サブネットマスク、デフォルトゲートウェイを設定します。
設定の保存:
各ルータで copy running-config startup-config または write memory を実行し、設定を保存します。
疎通確認:
PC-Aから 10.X.1.1 (R1 IF2) へ ping。
PC-Bから 10.X.2.1 (R2 IF2) へ ping。
PC-Cから 10.X.3.1 (R3 IF2) へ ping。
各ルータからL2SW共通セグメント内の他のルータのIPアドレス(例: R1から10.X.200.2や10.X.200.3)へ ping が通ることを確認します。
Step 2: OSPF基本設定(シングルエリア Area 0)
OSPFプロセスの有効化:
各ルータでOSPFルーティングプロセスを有効化します (例: router ospf 1)。
(プロセスIDはルータ内でローカルな識別子なので、全ルータで同じである必要はありませんが、ここでは 1 に統一しましょう)
ルータIDの設定:
各ルータで router-id コマンドを使用し、対応するLoopback0のIPアドレスをOSPFルータIDとして明示的に設定します。
ネットワークのアドバタイズ:
各ルータで network コマンドを使用し、OSPFで経路情報を交換するネットワークを指定します。ワイルドカードマスクとエリアID (area 0) も正しく設定してください。
R1対象: 10.X.200.0 0.0.0.255 area 0 (L2SW共通), 10.X.1.0 0.0.0.255 area 0 (PC-A接続), 10.255.X.1 0.0.0.0 area 0 (Lo0)
R2対象: 10.X.200.0 0.0.0.255 area 0 (L2SW共通), 10.X.2.0 0.0.0.255 area 0 (PC-B接続), 10.255.X.2 0.0.0.0 area 0 (Lo0)
R3対象: 10.X.200.0 0.0.0.255 area 0 (L2SW共通), 10.X.3.0 0.0.0.255 area 0 (PC-C接続), 10.255.X.3 0.0.0.0 area 0 (Lo0)
設定の保存:
再度、各ルータで設定を保存します。
Step 3: OSPF動作確認 Part 1 - 基本疎通とDR/BDR確認
ネイバー関係の確認:
各ルータで show ip ospf neighbor コマンドを実行します。
L2スイッチ共通セグメント(10.X.200.0/24)上で、R1, R2, R3 が互いにネイバー関係を確立していることを確認します。
一部のルータは FULL/DR または FULL/BDR、他は FULL/DROTHER と表示されるはずです。
DR/BDRの確認:
L2スイッチ共通セグメントに接続している各ルータのIF1(例: Gi0/0)で show ip ospf interface <インターフェース名> を実行します。
「Designated Router ID」と「Backup Designated Router ID」、および自身の「State」(DR, BDR, DROTHER)を確認します。どのルータがDRとBDRに選出されたかチームで共有しましょう。
ip ospf priority コマンドで優先度を変更し、DR/BDRの選出に影響を与えてみるのも良いでしょう (オプション)。
ルーティングテーブルの確認:
各ルータで show ip route ospf を実行します。
R1はR2やR3経由(実際にはDR経由となることが多い)で 10.X.2.0/24 (PC-Bセグメント)、10.X.3.0/24 (PC-Cセグメント)、R2のLoopbackアドレス (10.255.X.2/32)、R3のLoopbackアドレス (10.255.X.3/32) を学習しているか確認します。
R2はR1やR3経由で 10.X.1.0/24 (PC-Aセグメント)、10.X.3.0/24 (PC-Cセグメント)、R1のLoopbackアドレス (10.255.X.1/32)、R3のLoopbackアドレス (10.255.X.3/32) を学習しているか確認します。
R3はR1やR2経由で 10.X.1.0/24 (PC-Aセグメント)、10.X.2.0/24 (PC-Bセグメント)、R1のLoopbackアドレス (10.255.X.1/32)、R2のLoopbackアドレス (10.255.X.2/32) を学習しているか確認します。
エンドツーエンドの疎通確認:
PC-A (10.X.1.10) から PC-B (10.X.2.10) へ ping および traceroute を実行します。
PC-A (10.X.1.10) から PC-C (10.X.3.10) へ ping および traceroute を実行します。
PC-B (10.X.2.10) から PC-C (10.X.3.10) へ ping および traceroute を実行します。
traceroute でパケットがどのルータ(特にDRとして選出されたルータ)を経由しているか確認します。
Step 4: OSPF動作確認 Part 2 - コストの影響
この構成では、全てのルータ間通信がL2スイッチ上の共通セグメントを経由するため、代替物理経路は存在しません。
インターフェースのOSPFコストを変更しても、基本的にはDR/BDRを経由する経路が維持されます。
しかし、コスト値がルーティングテーブル上のメトリック合計値に影響することを確認できます。
例えば、R1のIF1 (Gi0/0 など、L2SW接続インターフェース) で ip ospf cost <値> を設定し、コストを増やしてみましょう (例: ip ospf cost 100)。
他のルータ(R2やR3)から見たR1経由で学習する経路(例: 10.X.1.0/24 や 10.255.X.1/32)のメトリック値が増加することを確認します (show ip route ospf)。
コスト設定を元に戻し (no ip ospf cost または元の値に設定)、メトリック値も元に戻ることを確認します。
Step 5: OSPF動作確認 Part 3 - 障害検知と経路情報の変化
連続Pingの実行: PC-A (10.X.1.10) からPC-B (10.X.2.10) へ、およびPC-A (10.X.1.10) からPC-C (10.X.3.10) へ連続して ping を実行した状態にします (Windows: ping -t <IPアドレス>, Linux/macOS: ping <IPアドレス>)。
ルータ障害の模擬 (R2ダウン):
R2の電源をオフにするか、R2のL2スイッチ接続インターフェース(IF1、例: Gi0/0)を shutdown します。
影響の確認:
PC-AからPC-B (10.X.2.10) への ping は途絶えることを確認します(R2がPC-Bのゲートウェイのため)。
PC-AからPC-C (10.X.3.10) への ping は継続するはずです(R1とR3がL2SW経由で直接、または新たなDR/BDR経由で通信できるため)。
R1とR3で show ip ospf neighbor を実行し、R2とのネイバーがダウンしたことを確認します。
DR/BDRがR2だった場合、再選出が行われる可能性があります。show ip ospf interface <L2SW接続IF> で確認します。
R2を復旧させ、全てのネイバー関係と ping が復旧することを確認します。
主経路上のルータ障害 (例: DRがR1で、R1ダウン):
DRに選出されているルータ(例えばR1と仮定)の電源をオフにするか、L2SW接続インターフェース(IF1)を shutdown します。
影響の確認:
PC-AからPC-B (10.X.2.10) および PC-AからPC-C (10.X.3.10) への ping が途絶えることを確認します(R1がPC-Aのゲートウェイのため)。
PC-B (10.X.2.10) からPC-C (10.X.3.10) への通信は継続できるかなども確認します(DRがR1だった場合、BDRがDRに昇格し、R2とR3間の経路は再確立されるはずです)。
残りのルータ(R2, R3)で show ip ospf neighbor と show ip ospf interface <L2SW接続IF> を実行し、DR/BDRの変化を確認します。
障害ルータを復旧させ、元の状態に戻る(または安定する)ことを確認します。
設定の保存:
各ルータで copy running-config startup-config または write memory を実行し、設定を保存します。
5. コマンドリファレンス
クリックしてコマンドリファレンスを表示/非表示
基本モード移行
enable
configure terminal
exit
end
初期設定コマンド
hostname <ルータ名>
interface <インターフェース名>
(例: interface GigabitEthernet0/0, interface Loopback0)
ip address <IPアドレス> <サブネットマスク>
no shutdown
shutdown
copy running-config startup-config
write memory
OSPF設定コマンド
(グローバルコンフィグモードから)
router ospf <プロセスID>
(config-router)# router-id <ルータID>
(config-router)# network <ネットワークアドレス> <ワイルドカードマスク> area <エリアID>
(例: network 10.X.200.0 0.0.0.255 area 0)
(インターフェースコンフィグモードから - L2SW接続インターフェースで有効)
Plaintext
(config-if)# ip ospf cost <コスト値>
(config-if)# no ip ospf cost
(config-if)# ip ospf priority <0-255>
(DR/BDR選出の優先度。デフォルト1。0はDR/BDRになれない。数値が高いほど優先)
確認コマンド (特権EXECモードから)
show ip interface brief
show running-config
show startup-config
show ip route
show ip route ospf
show ip ospf neighbor
show ip ospf interface brief
show ip ospf interface <インターフェース名> (DR/BDR/DROTHER状態、コスト、タイマー、Priority等確認)
show ip ospf database
ping <宛先IPアドレス>
traceroute <宛先IPアドレス>
PCでのコマンド (コマンドプロンプトやターミナルで)
IP設定確認:
Windows: ipconfig
Linux/macOS: ifconfig または ip addr
疎通確認: ping <宛先IPアドレス>
経路確認:
Windows: tracert <宛先IPアドレス>
Linux/macOS: traceroute <宛先IPアドレス>
演習頑張ってください!不明な点があれば、講師に質問しましょう。
Discussion