🍄

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