IPv6(動的ルーティング RIPng / OSPFv3)

目次

IPv6ルーティングの基本

IPv6におけるルーティングは、IPv4と同様に スタティックルートダイナミックルーティングプロトコル の2種類に分けられます。

  • スタティックルート … 管理者が手動で宛先ネットワークとネクストホップを設定
  • ダイナミックルーティング … ルータ同士が自動的に経路情報を交換

IPv6で利用される代表的なダイナミックルーティングプロトコルは以下の通りです。

  • RIPng(RIP next generation)
  • OSPFv3
  • IS-IS for IPv6
  • EIGRP for IPv6
  • MP-BGP4

ここでは、代表的な入門レベルのプロトコルである RIPng について解説します。

RIPngとは

RIPng(RIP next generation)は、IPv6に対応したRIPです。主な特徴を整理すると次の通りです。

項目説明
最大ホップ数15ホップまで(16は到達不能)
通信ポートUDP 521を使用(IPv4のRIPはUDP 520)
経路情報IPv6プレフィックスを交換、ネクストホップはリンクローカルアドレス
アップデート送信先マルチキャストアドレス FF02::9
アップデート周期デフォルトで30秒ごと

試験で狙われやすいポイントは「UDP 521」「FF02::9宛に送信」「最大ホップ数15」です。

RIPngの基本設定

1. IPv6ルーティングの有効化

まず、ルータでIPv6パケットを転送できるようにします。

(config)# ipv6 unicast-routing

2. RIPngプロセスの起動

RIPngプロセスを開始します。プロセス識別のために tag を指定します。

(config)# ipv6 router rip <tag>
  • tag … 識別名。数値や文字列を指定でき、OSPFのプロセスIDに相当。
  • 隣接ルータと同じtagを指定する必要はありません。

例:

(config)# ipv6 router rip P1

3. RIPngを有効にするインターフェースの指定

RIPngではIPv4のような network コマンドはなく、インターフェースごとに有効化します。

(config-if)# ipv6 rip <tag> enable

例:

(config)# interface g0/0
(config-if)# ipv6 rip P1 enable

4. 動作確認

  • show ipv6 rip … RIPngの稼働状況を確認
  • show ipv6 route … 受信した経路の確認
  • debug ipv6 rip … パケットのやりとりをリアルタイムで確認

RIPngのオプション設定

equal-cost経路数の調整

RIPngはデフォルトで最大4つの等コスト経路をルーティングテーブルに載せます。これを変更するには次のコマンドを使います。

(config-rtr)# maximum-paths <数値>

例:最大6経路に拡張

(config)# ipv6 router rip RIPng
(config-rtr)# maximum-paths 6

デフォルトルートのアドバタイズ

RIPngでデフォルトルートを配布するには default-information originate を使います。

(config-if)# ipv6 rip <tag> default-information originate
  • originate … デフォルトルートを追加して配布
  • only を付けると、デフォルトルートのみを通知

例:Gi0/0からデフォルトルートと通常の経路を広告

(config)# interface g0/0
(config-if)# ipv6 rip RIPng default-information originate

再配布(redistribute)

他のルーティングプロトコルやスタティックルートをRIPngに再配布するには以下のように設定します。

(config-rtr)# redistribute <protocol>

例:スタティックルートを再配布

(config)# ipv6 router rip RIPng
(config-rtr)# redistribute static

※ 再配布時のデフォルトメトリックは以下の通り

  • connected = 1
  • static = 1
  • RIPngの他プロセス = 1
  • それ以外のルーティングプロトコル = 16(到達不能)

経路フィルタリング(distribute-list)

受信する経路や送信する経路を制御できます。

例:Gi0/1で 2001:DB8::/16 の経路のみ受信

(config)# ipv6 prefix-list PRE01 permit 2001:DB8::/16
(config)# ipv6 prefix-list PRE01 deny ::/0

(config)# ipv6 router rip process1
(config-rtr-rip)# distribute-list prefix-list PRE01 in Gigabitethernet0/1

試験対策:RIPngはIPv6ルーティングの入門プロトコルとしてよく出題されます。特に UDPポート番号(521)マルチキャストアドレス(FF02::9)最大ホップ数(15) は試験で狙われやすいので確実に覚えておきましょう。

RIPngの検証

RIPngを設定した後は、各種 showコマンド を用いて正しく動作しているか確認します。IPv6ルーティングはIPv4と並行して動作するため、IPv4とは別のコマンド体系を意識して覚えておくことが重要です。試験でも「どのコマンドで確認できるか」が問われやすい部分です。

show ipv6 interface brief

各インターフェースに設定されているIPv6アドレスやステータスを一覧表示します。IPv4での show ip interface brief に相当するコマンドです。

R1# show ipv6 interface brief
  • 割り当てられたグローバルユニキャストアドレス
  • リンクローカルアドレス(自動生成される)
  • インターフェースの状態(up/down)

を確認することができます。RIPngの通信ができない場合、まずはインターフェースに正しくIPv6アドレスが設定されているかを確認します。

show ipv6 protocols

ルータで有効になっているIPv6のルーティングプロトコルをまとめて確認できます。

R1# show ipv6 protocols
  • 有効なプロセス(RIPng, OSPFv3 など)
  • どのインターフェースで動作しているか
  • 再配布の有無

を確認できます。IPv6ルーティングプロトコルの全体像を把握するのに便利なコマンドです。

show ipv6 rip

RIPngに関する詳細情報を表示します。

R1# show ipv6 rip

ここでは次の内容を確認できます。

  1. RIPngのタグ名、使用ポート番号(UDP 521)、送信先マルチキャストアドレス(FF02::9)、内部プロセス番号
  2. AD値(Administrative Distance) と最大ホップ数(理論値は16、実際の最大到達は15ホップ)
  3. タイマー情報(更新タイマー、無効タイマーなど)
  4. RIPng有効インターフェース一覧

特に「どのインターフェースでRIPngが有効になっているか」をここで確認できるため、設定漏れやインターフェースダウンの切り分けに役立ちます。

show ipv6 route

IPv6ルーティングテーブルを表示します。IPv4では show ip route を使いますが、IPv6では必ず show ipv6 route を使います。

R1# show ipv6 route

ここでは以下の情報を確認できます。

  • 直接接続(C: connected)
  • ローカルアドレス(L: local)
  • RIPngから学習した経路(R: RIP)

学習できているはずの経路が表示されない場合は、RIPng設定や隣接関係の問題を疑います。


RIPngの検証では、

  1. インターフェースに正しいIPv6アドレスがあるかshow ipv6 interface brief
  2. RIPngプロセスが有効かshow ipv6 protocols
  3. RIPngがインターフェースで稼働しているかshow ipv6 rip
  4. ルーティングテーブルに経路が学習されているかshow ipv6 route

という流れで確認すると効率的です。試験では、この流れを頭に入れておくとトラブルシューティング問題に強くなります。

OSPFv3とは

OSPFv3は、OSPFv2をIPv6に対応させたルーティングプロトコルで、RFC 5340で定義されています。OSPFv2と同じくリンクステート型プロトコルであり、Helloパケットでネイバーを検出し、LSA(Link State Advertisement)の交換によってLSDBを構築、そこからSPFアルゴリズムを用いてルーティングテーブルを生成します。

OSPFv2とほぼ同じ仕組みを持ちますが、IPv6に対応するためにいくつかの違いがあります。

OSPFv2との違い

項目説明
新しいLSAタイプLink LSA (Type 8)、Intra-Area Prefix LSA (Type 9) が追加
マルチキャストアドレスFF02::5(全OSPFルータ宛)、FF02::6(DR/BDR宛)
IPv6ヘッダのネクストヘッダプロトコル番号 89
隣接関係のアドレスネイバー検出やネクストホップにリンクローカルアドレスを使用
認証OSPFv3自体には認証機能なし。代わりにIPsecで認証や暗号化を実現可能
有効化の単位ネットワーク単位ではなくリンク単位(インターフェースごと)で有効化

試験に狙われやすいポイントは「リンクローカルアドレスを使用する」「マルチキャストアドレスの違い」「IPsec認証対応」です。

OSPFv3の設定手順

1. IPv6ルーティングを有効化

まずルータでIPv6を有効にします。

(config)# ipv6 unicast-routing

2. OSPFv3プロセスの作成

OSPFv3のプロセスを起動します。

(config)# ipv6 router ospf <process-id>
  • <process-id>:1~65535の範囲で指定可能
  • 隣接ルータ間で一致させる必要はなく、あくまでローカル識別用

例:

(config)# ipv6 router ospf 1

3. ルータIDの設定

OSPFv3でもルータIDは 32ビットの数値(IPv4形式) を使います。

(config-rtr)# router-id <x.x.x.x>
  • IPv4アドレスが割り当て済みならその値が自動選択される
  • IPv4アドレスが存在しない場合は必ず router-id コマンドで明示設定

例:

(config-rtr)# router-id 1.1.1.1

4. インターフェースでOSPFv3を有効化

インターフェース単位でOSPFv3を有効化し、所属エリアを指定します。

(config-if)# ipv6 ospf <process-id> area <area-id>

例:GigabitEthernet0/0をエリア0に所属させる場合

(config)# interface g0/0
(config-if)# ipv6 ospf 1 area 0

これでOSPFv3が有効になり、隣接ルータとネイバー関係を確立できます。

OSPFv3の確認コマンド

OSPFv3が正しく動作しているかを確認するために、以下のコマンドを利用します。

コマンド説明
show ipv6 protocols有効なルーティングプロトコルと適用インターフェースを表示
show ipv6 ospf neighborsOSPFv3で確立したネイバー情報を表示
show ipv6 ospf databaseOSPFv3のLSDB(リンクステートデータベース)を表示
show ipv6 route ospfOSPFv3から学習したルートを表示
show ipv6 ospf interfaceOSPFv3が有効なインターフェースの情報(エリア、コスト、タイマー、隣接状況など)を表示

試験の狙われポイントは、「IPv4のOSPFコマンドではなく、IPv6専用の show ipv6 ospf ~ コマンドを使う」点です。

OSPFv3は、仕組み自体はOSPFv2とほぼ同じですが、リンク単位での有効化リンクローカルアドレスの利用 など、IPv6特有の違いを押さえておくことが大切です。

OSPFv3の設定(発展)

OSPFv3は基本的な設定に加えて、運用環境やネットワーク構成に応じた追加設定を行うことができます。ここでは試験でも問われやすい equal-costマルチパス(ECMP)の制御ルート集約NBMA環境でのネイバー定義ネットワークタイプ変更 などについて整理します。

equal-cost経路数の制御(maximum-paths)

OSPFv3のルーティングテーブルには、同じコストの経路をデフォルトで最大 16パス 登録することができます。このような経路はequal-costマルチパス(ECMP)として負荷分散に利用されます。

最大値を変更するには次のコマンドを使用します。

(config-rtr)# maximum-paths <数値>

例:同時に使用できる経路を2本に制限する

(config)# ipv6 router ospf 1
(config-rtr)# maximum-paths 2

試験対策:RIPngは最大4、OSPFv3は最大16、という違いを問われやすいので区別して覚えましょう。

エリア内ルート集約(area range)

OSPFv3では、エリア内で細かいプレフィックスをひとまとめにして上位エリアへ広告することができます。これを「ルート集約」と呼びます。OSPFv2同様、集約はルータプロセス側で設定します。

(config-rtr)# area <area-id> range <prefix> [ cost <value> ]

例:2001:1:1:0001::/64 ~ 2001:1:1:FFFF::/64 をエリア10で集約して 2001:1:1::/48 として広告

(config)# ipv6 router ospf 1
(config-rtr)# area 10 range 2001:1:1::/48

補足:集約ルートはLSA Type 3(OSPFv2)に相当し、OSPFv3では「Inter-Area Prefix LSA」として通知されます。

NBMA環境でのネイバー設定

OSPFv3はOSPFv2と同じく、NBMA(Non-Broadcast Multi-Access)ネットワーク上で自動的にネイバーを検出できません。そのため、手動でネイバーを指定する必要があります。

(config-if)# ipv6 ospf neighbor <ipv6-address> [ priority <number> ] [ cost <value> ] [ database-filter all out ]
  • priority:DR/BDR選出時の優先度
  • cost:その隣接ルータへのリンクコスト
  • database-filter all out:LSDBを同期しない(制御用)

OSPFv2ではルータプロセス上で設定していましたが、OSPFv3では インターフェースモードで設定 する点が違いです。

NBMA環境でのネットワークタイプ変更

OSPFv3では、インターフェースごとにOSPFネットワークタイプを変更できます。これはOSPFv2と同様です。

(config-if)# ipv6 ospf network { broadcast | non-broadcast | point-to-point | point-to-multipoint [ non-broadcast ] }
  • broadcast:デフォルト(Ethernetなど)
  • non-broadcast:NBMA(Frame Relayなど)、ネイバー手動定義が必要
  • point-to-point:直結リンクで使用
  • point-to-multipoint:複数接続だがブロードキャスト不可の環境で利用

試験対策:「NBMA環境で自動ネイバー検出不可」→「手動ネイバー定義が必要」という流れが狙われやすいです。

LSA Typeの比較(OSPFv2 vs OSPFv3)

OSPFv3ではIPv6対応のため、新しいLSAが追加されています。

OSPFv2 LSA名称OSPFv3 LSA名称
Type 1Router LSA0x2001Router LSA
Type 2Network LSA0x2002Network LSA
Type 3Network Summary LSA0x2003Inter-Area Prefix LSA
Type 4ASBR Summary LSA0x2004Inter-Area Router LSA
Type 5AS External LSA0x4005AS External LSA
Type 7NSSA External LSA0x2007NSSA LSA
0x2008Link LSA
0x2009Intra-Area Prefix LSA

Flooding Scope(OSPFv3 LSAのスコープ)

OSPFv3のLSAには Sビット(スコープ) が定義されており、伝播範囲を制御できます。

  • 00:リンクローカル
  • 01:エリア内
  • 10:AS全体
  • 11:予約

試験対策:OSPFv3の発展設定では特に maximum-paths の既定値(16)NBMA環境でネイバー手動設定が必要新しいLSA Type(8と9) が試験で問われやすい重要ポイントです。

OSPFv3の検証

OSPFv3を設定した後は、正しく動作しているかどうかを showコマンド で確認します。ここでは試験に出やすい代表的な検証コマンドを整理します。IPv4のOSPFと混同しないよう、「IPv6専用コマンド」を覚えることがポイントです。

show ipv6 protocols

R1# show ipv6 protocols

このコマンドでは、ルータに設定されているIPv6ルーティングプロトコルの概要を確認できます。

  • 稼働中のOSPFv3プロセスID
  • OSPFv3が有効化されているインターフェース
  • 再配布設定の有無

などを把握できます。全体の設定状況を一目で確認したいときに便利です。

show ipv6 ospf

R1# show ipv6 ospf

OSPFv3のプロセスごとの詳細情報を確認できます。

  • プロセスID
  • ルータID(Router ID)
  • Hello/Deadインターバル
  • 所属エリア
  • SPFタイマー

などが表示されます。設定したルータIDが正しく反映されているかをここで確認できます。

show ipv6 ospf interface

R1# show ipv6 ospf interface

インターフェースごとのOSPFv3情報を表示します。

  • OSPFv3有効化インターフェースと所属エリア
  • コスト値(デフォルトは帯域幅に依存)
  • Hello/Deadタイマーの値
  • ネイバーの情報(DR/BDR選出状況も確認可)

トラブルシューティング時には「インターフェースでOSPFv3が有効になっているか」「Hello/Deadタイマーが一致しているか」を確認するのが定番です。

show ipv6 ospf neighbor

R1# show ipv6 ospf neighbor

隣接ルータとのネイバー関係を確認するコマンドです。出力の主な項目は以下の通りです。

項目説明
Neighbor IDネイバーのルータID
Priネイバーのインターフェースに設定されたOSPFプライオリティ
Stateネイバーの状態(例:FULL/DR、FULL/BDRなど)
Dead TimeこのネイバーからHelloを受信できなければダウンと判定されるまでの残り時間
Interface IDネイバー側のインターフェースID
Interface自ルータ側で接続しているインターフェース

ネイバーが正しく確立していれば、FULL 状態になります。試験では「ネイバーがFULLに到達していない原因を問う」問題がよく出るので、Hello/Deadタイマーやエリア設定の不一致に注意しましょう。

OSPFv3の検証コマンドは、

  • 全体像の確認show ipv6 protocols
  • プロセス単位の確認show ipv6 ospf
  • インターフェースの確認show ipv6 ospf interface
  • ネイバー関係の確認show ipv6 ospf neighbor

という流れで押さえておくと効率的にトラブルシュートできます。

OSPFv3アドレスファミリとは

従来のOSPFでは

  • IPv4 → OSPFv2
  • IPv6 → OSPFv3

と分けてプロセスを動かす必要がありました。
しかしOSPFv3アドレスファミリを利用すれば、1つのOSPFv3プロセスでIPv4とIPv6をまとめて扱うことができ、経路情報は共通のリンクステートデータベース(LSDB)に保持されます。デュアルスタック環境の構築を簡素化できる点が大きな特徴です。
この機能はCisco IOS 15.1(3)S / 15.2(1)T以降でサポートされています。

OSPFv3アドレスファミリの設定手順

IPv6ルーティングの有効化

OSPFv3はIPv6を利用して制御パケットをやり取りするため、IPv4のみの環境でも必ず以下を設定します。

(config)# ipv6 unicast-routing

プロセスの起動

OSPFv3のプロセスを作成します。

(config)# router ospfv3 <process-id>

アドレスファミリの指定

1つのプロセスでIPv4とIPv6を個別に有効化できます。

(config-router)# address-family ipv4 unicast
(config-router)# address-family ipv6 unicast

ルータIDの設定

  • 全体で共通のルータIDを使用する場合
(config)# router ospfv3 1
(config-router)# router-id 1.1.1.1
  • アドレスファミリごとに個別のルータIDを指定する場合
(config-router)# address-family ipv4 unicast
(config-router-af)# router-id 1.1.1.1

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

OSPFv3はnetworkコマンドではなくインターフェースごとに有効化します。

(config-if)# ospfv3 <process-id> <address-family> area <area-id>

例:GigabitEthernet0/0をIPv4・IPv6ともにエリア0に所属させる場合

(config)# interface g0/0
(config-if)# ospfv3 1 ipv4 area 0
(config-if)# ospfv3 1 ipv6 area 0

IPv6アドレスが不要な場合の注意点

IPv4のみを扱う場合でもOSPFv3はIPv6通信を使うため

  • ipv6 unicast-routing は必須
  • インターフェースにIPv6アドレスを設定しない場合は ipv6 enable を設定する必要あり

設定例:

R1の設定

R1(config)# ipv6 unicast-routing
R1(config)# router ospfv3 1
R1(config-router)# router-id 1.1.1.1
R1(config-router)# address-family ipv4 unicast
R1(config-router-af)# exit-address-family
R1(config-router)# address-family ipv6 unicast
R1(config-router-af)# exit-address-family

R1(config)# interface g0/0
R1(config-if)# ip address 10.0.0.1 255.255.255.0
R1(config-if)# ipv6 address 2001:1:1:10::1/64
R1(config-if)# ipv6 address fe80::1 link-local
R1(config-if)# ospfv3 1 ipv4 area 0
R1(config-if)# ospfv3 1 ipv6 area 0

R1(config)# interface g0/1
R1(config-if)# ip address 172.16.1.254 255.255.255.0
R1(config-if)# ipv6 address 2001:1:1:1::1/64
R1(config-if)# ipv6 address fe80::1 link-local
R1(config-if)# ospfv3 1 ipv4 area 1
R1(config-if)# ospfv3 1 ipv6 area 1

R2の設定

R2(config)# ipv6 unicast-routing
R2(config)# router ospfv3 1
R2(config-router)# router-id 2.2.2.2
R2(config-router)# address-family ipv4 unicast
R2(config-router-af)# exit-address-family
R2(config-router)# address-family ipv6 unicast
R2(config-router-af)# exit-address-family

R2(config)# interface g0/0
R2(config-if)# ip address 10.0.0.2 255.255.255.0
R2(config-if)# ipv6 address 2001:1:1:10::2/64
R2(config-if)# ipv6 address fe80::2 link-local
R2(config-if)# ospfv3 1 ipv4 area 0
R2(config-if)# ospfv3 1 ipv6 area 0

R2(config)# interface g0/1
R2(config-if)# ip address 172.16.2.254 255.255.255.0
R2(config-if)# ipv6 address 2001:1:1:2::2/64
R2(config-if)# ipv6 address fe80::2 link-local
R2(config-if)# ospfv3 1 ipv4 area 2
R2(config-if)# ospfv3 1 ipv6 area 2

OSPFv3アドレスファミリの確認コマンド

  • show ospfv3 neighbor
    アドレスファミリごとのネイバー情報を表示
  • show ospfv3 interface brief
    OSPFv3が有効化されているインターフェースの一覧を表示
  • show ospfv3 database
    OSPFv3のLSDBを表示
  • show ip protocols
    IPv4のルーティングプロトコルの情報を確認
  • show ipv6 protocols
    IPv6のルーティングプロトコルの情報を確認
  • show ip route
    IPv4ルーティングテーブルを確認
  • show ipv6 route
    IPv6ルーティングテーブルを確認

試験対策:
・OSPFv3アドレスファミリではIPv4とIPv6を1つのプロセスで扱える
・OSPFv3の通信はIPv6を使用するため ipv6 unicast-routing が必須
・IPv6アドレスを付与しない場合は ipv6 enable が必要
・ネットワーク指定ではなくインターフェースで有効化する
この仕組みを理解しておくと、デュアルスタック環境の試験問題で有利になります。

◆まとめスライド

目次