IPv6のネットワークでOSPFを使うときは、OSPFv3を使います。基本の考え方(エリア、DR/BDR、SPF計算)はIPv4のOSPFv2と同じですが、設定のしかたやアドレスの扱いにいくつか違いがあります。CCNPのENCOR・ENARSIで問われるポイントを整理します。
先に結論から
- OSPFv3は、IPv6のためのOSPFです(アドレスファミリーを使えばIPv4も扱えます)。
- OSPFv2と違い、networkコマンドではなく、インターフェースごとに有効にします。
- ネイバーとのやり取りやネクストホップには、リンクローカルアドレスが使われます。
- ルーターIDは32ビットの値で、IPv4アドレスがないルーターでは手動で設定する必要があります。
目次
OSPFv2との違い

| OSPFv2 | OSPFv3 | |
|---|---|---|
| 対象 | IPv4 | IPv6(IPv4も扱える) |
| 有効にする方法 | network コマンド | インターフェースごとに設定 |
| ネイバーのアドレス | インターフェースのIPv4アドレス | リンクローカルアドレス |
| マルチキャストアドレス | 224.0.0.5/224.0.0.6 | FF02::5/FF02::6 |
| ルーターID | 32ビット(IPv4アドレスから自動で選ばれる) | 32ビット(IPv4アドレスがなければ手動設定が必要) |
| 認証 | OSPFの機能で行う | IPsecを使う(または認証トレーラー) |
| 新しいLSA | — | タイプ8(リンクLSA)、タイプ9(エリア内プレフィックスLSA) |
基本の設定例
ipv6 unicast-routing
!
ipv6 router ospf 1
router-id 1.1.1.1
!
interface GigabitEthernet0/0
ipv6 address 2001:db8:12::1/64
ipv6 ospf 1 area 0
ipv6 unicast-routingで、IPv6のルーティングを有効にします(これがないと動きません)。- OSPFv3のプロセスを作り、ルーターIDを設定します。
- インターフェースで
ipv6 ospf 1 area 0と設定し、OSPFv3を有効にします。
アドレスファミリーを使う新しい書き方では、次のように設定します。
router ospfv3 1
router-id 1.1.1.1
address-family ipv6 unicast
!
interface GigabitEthernet0/0
ospfv3 1 ipv6 area 0
確認に使うコマンド

show ipv6 ospf neighbor:ネイバーの状態を確認するshow ipv6 ospf interface:エリアやネットワークタイプを確認するshow ipv6 route ospf:OSPFv3で学んだ経路を確認する(ネクストホップがリンクローカルアドレスになっている)
つまずきやすいポイント
ipv6 unicast-routingを入れ忘れると、OSPFv3が動きません。- IPv4アドレスが1つもないルーターでは、ルーターIDが決まらずプロセスが動かないので、
router-idの設定が必要です。 - 経路表のネクストホップがリンクローカルアドレス(FE80::で始まるアドレス)になるのは正常です。
- ネイバーになる条件(エリアID、Hello/Deadタイマーなど)はOSPFv2と同じです。
ネイバーが張れないときの確認方法は、OSPFのネイバーが張れない原因で解説しています。
よくある質問
OSPFv3でIPv4の経路も扱えますか?
アドレスファミリーを使う設定(router ospfv3)なら、1つのプロセスでIPv4とIPv6の両方を扱えます。
OSPFv3のルーターIDはIPv6アドレスですか?
いいえ。OSPFv3でもルーターIDは32ビットの値で、IPv4アドレスと同じ形式で表します。
経路のネクストホップがFE80::で始まるのはなぜですか?
OSPFv3はネイバーとのやり取りにリンクローカルアドレスを使うため、ネクストホップもリンクローカルアドレスになります。
