IPv6編ではこれまで,IPv6のアドレッシングや基本的な機能などを説明してきました。残りの大切な内容として,IPv6ルーティングがあります。IPv6ではIPv4同様,スタティックルーティングや,IPv6対応ルーティングプロトコルを使います。今回は,IPv6でのルーティングと,OSPFv3によるIPv6ルーティングを説明します。

IPv6スタティックルーティング

 まず,IPv6でのスタティックルーティングの設定を説明します。IPv6のスタティックルーティングの設定は,IPv4のスタティックルーティングとほぼ同じです。

 コマンドは,ipv6 routeコマンドを使います。ネクストホップもしくは出力インタフェースのどちらか,もしくは両方を設定する必要があります。IPv6では,NDP(Neighbor Discovery Protocol)によってリンクローカルユニキャストアドレスを使って近接ルータを発見します。よって,ネクストホップとして直接接続されたルータを指定せず,インタフェースだけを指定してもかまいません。その場合,自動的にネクストホップを発見し,リンクローカルユニキャストアドレスがネクストホップとして指定されます(図1・2・3)。

  • (config)# ipv6 route [IPv6プレフィックス/プレフィックス長] {ネクストホップ | インタフェースID}

 図1 ネットワーク図
ネットワーク図

 図2 ipv6 routeコマンド
ipv6 routeコマンド

 図3 ping実行結果
ping実行結果

 ルートの確認には,show ipv6 routeコマンドを使用します(図4)。

 図4 show ipv6 route
show ipv6 route

IPv6ダイナミックルーティング

 IPv6のルーティングにIPv4のルーティングプロトコルを使うことはできません。IPv6のルーティングプロトコルとしては,次のようなものがあります。

  • RIPng(RIP new generation)
  • OSPFv3(OSPF version3)
  • Integrated IS-IS
  • EIGRP for IPv6
  • MP-BGP4(Multiprotocol-BGP4)

 RIPngはRIPv2をベースとし,IPv6対応にしたものです。リンクローカルユニキャストアドレスを送信元アドレスとしています。IPv6プレフィックス,IPv6アドレスをサポートし,FF02::9のマルチキャストアドレスで,521/udpのポートを使います。

 OSPFv3はOSPFv2とほぼ同等の機能を持ち,OSPFv2でのIPv4の代わりにIPv6を使えるようにしたものです。IPv6プレフィックス,IPv6アドレス,ネットワークマスクなどをLSAで広告します。また,RIPngと同じようにリンクローカルユニキャストアドレスを送信元アドレスとしています。さらに,複数のIPv6アドレスを使用可能であり,IPsecを使用した認証も可能になっています。OSPFv3はIETFの標準ルーティングプロトコルです。

 Integrated IS-ISは,もともとCLNP(Connectionless Network Protocol)でIS-ISを使ってIPサブネットの情報を運ぶため,IPv4をIS-ISを使って広告するのと同じ形でIPv6を使えます。

 EIGRP for IPv6は,CiscoIOS12.4(6)以降で利用可能です。EIGRP for IPv4とEIGRP for IPv6は別々の設定が必要ですが,基本的な動作は変わりません。

 MP-BGP4は,MPLSやIPv6など,IPv4以外のネットワークレイヤプロトコルで使用可能なルーティングプロトコルです。

 CiscoIOSでは,ipv6 routerコマンドを使ってルーティングプロトコルを設定します。ipv6 routerコマンドのヘルプ表示を見ると,そのIOSでの使用可能なルーティングプロトコルがわかります(図5)。

 図5 ipv6 router ?
ipv6 route ?

OSPFv3

 まず,OSPFv3とOSPFv2で,同じ点と異なる点を説明します。まず,同じ点は次のものがあります。

  • OSPFパケット(LSA)として,Hello,DBD,LSR,LSU,LSAckのOSPFv2と同じパケットタイプがあります
  • 近接ルータの発見と隣接関係を結ぶところはOSPFv2と同様です
  • OSPFネットワークタイプとして,NBMAがデフォルトです。RFCの標準として,NBMA,ポイントツーマルチポイントが使用できます。Ciscoではさらに,ポイントツーポイントもサポートしています

 その一方で,異なる点としては次のものがあります。

  • 送信元アドレスとしてリンクローカルユニキャストを使用します
  • OSPFv2ヘッダは24バイトですが,OSPFv3ヘッダは16バイトです
  • OSPFv2では1つのインタフェースに複数のIPアドレス(インスタンス)を設定できません。する場合はサブインタフェースを使用します。OSPFv3では可能です

 OSPFv3では,OSPFルーターあてのIPv6アドレスとして,FF02::5(全OSPFルータあて)と,FF02::6(DRあて)を使います。

 また,ルータID,エリアID,リンクステートIDは,IPv4アドレスと同じ表記の32ビットの値を使います。そのため,DR(代表ルーター)とBDR(バックアップ代表ルーター)の選定にルータIDが必要ですが,IPアドレスからルータIDを求める事ができないため,別個に設定が必要です。ただし,IPv6アドレスを与えられているインタフェースにIPv4アドレスも与えた場合,そのIPv4アドレスをルータIDとして使うことができます。

 OSPFv3のLSAタイプでは,タイプ8(リンクLSA,リンクローカルでのフラッディングで使用)と,タイプ9(イントラエリアLSA,複数のイントラネットワークで使用)が追加され,さらにタイプ3(エリア間プレフィックスLAS)とタイプ4(エリア間ルータLSA)の名前が変更されました。

OSPFv3の設定

 OSPFv3をCiscoルータで設定する場合,まず前回のipv6 unicast-routingコマンドが必要です。さらに,インタフェースにIPv6アドレスを設定し,IPv6をインタフェースで有効にする必要があります。次のような構成のネットワークがあるとします(図6)。

 図6 ipv6 ネットワーク構成図
ipv6 ネットワーク構成図

 OSPFv3の基本的な設定はOSPFv2と大きくは変わりません。ただし,ipv6というキーワードをOSPFv2で使うコマンドの先頭に付ける必要があります。また,networkコマンドはOSPFv3では使いません。また,基本的なコマンドとして,ipv6 router ospfコマンドが必要です。

  • (config)# ipv6 router ospf [プロセスID] … OSPFv6を有効にする
    • [プロセスID]
      • OSPFv3のプロセスID

 プロンプトは,OSPFv2を設定するときの(config-router)#ではなく,(config-rtr)#になります(図7)。

 図7 ipv6 router ospf
ipv6 router ospf

 上記で説明している通り,OSPFv3ではルータIDはIPv4と同じ形式を使用するため,インタフェースにIPv4アドレスがない場合,手動で設定する必要があります。そのため,router-idコマンドが必要です。図7では設定されていないため,エラーがでています(図8)。

  • (config-rtr)# router-id [ルータID]
    • [ルータID]
      • OSPFv3で使用されるルータID

 図8 ipv6 router ospf
ipv6 router ospf

 router-idコマンドが入力されると,OSPFv3プロセスが稼動します。それまでは動作しません。

 次に,エリアを設定します。エリアはOSPFv2ではルータコンフィギュレーションモードで設定しましたが,OSPFv3ではインタフェースモードで設定します。つまり,そのインタフェースでOSPFv3を有効にし,インタフェースが所属するエリアを設定します(図9)。

  • (config-if)# ipv6 ospf [プロセスID] area [エリアID]
    • [プロセスID]
      • OSPFv6のプロセスID
    • [エリアID]
      • インタフェースが所属するエリアID

 図9 ipv6 ospf area
ipv6 ospf area

 インタフェースがマルチアクセスネットワークの場合,DR/BDRの選定があるため,プライオリティの設定が可能です。また,OSPFv3の経路選択に利用するコスト値も設定できます。これらはOSPFv2で使っていたコマンドにipv6というキーワードを頭に付けて設定します。

  • (config-if)# ipv6 ospf priority [プライオリティ]
    • [プライオリティ]
      • DR/BDRの選出に使用するプライオリティ
  • (config-if)# ipv6 ospf cost [コスト]
    • [コスト]
      • インタフェースのコスト

 また,ルータがABRやASBRの場合,ルート集約をすることができます。ルート集約にはipv6 area rangeコマンドを使います。これはルーティングモードで設定します(図10・図11)。

  • (config-rtr)# area [エリアID] range [IPv6プレフィックス/プレフィックス長] {advertise | no-advertise}
    • [エリアID]
      • 集約されるエリア
    • [IPv6プレフィックス/プレフィックス長]
      • 集約アドレスとそのプレフィックス長
    • {advertise | no-advertise}
      • オプション。タイプ3LSAで送信するか,もしくはそれを送らないか

 図10 area range
area range

 図11 show ipv6 route
show ipv6 route

 OSPFv3の確認には,show ipv6 ospfコマンドや,show ipv6 ospf neighbor,show ipv6 ospf databeseコマンドを使います。(図12)

 図12 show ipv6 ospf
show ipv6 ospf