2/10/2017

OSPFv3とOSPFv2を比較する (1)

Cisco Support CommunityにあるOSPFv3とOSPFv2の比較

はじめに

このドキュメントはルーティングプロトコルOSPFv3とOSPFv2を比較した結果を説明する。OSPFv3はIPv4向けのOSPFv2とパケットタイプ、インタフェースタイプ、ネイバー発見パターン、LSAフラッド、エイジングのようにいくつか共通点を持っている。

OSPFv3とv2の違い


サブネット毎ではなく、リンク毎のプロトコル処理

IPv6はリンク層でノート間の通信に使われるメディアを定義するのに、サブネットあるいはネットワークの代わりにリンクという用語を使用する。複数のIPサブネットを一つのリンクに割り当てることができ、2台のノードを共通のIPサブネットを共有していなくても、お互いに通信できる。

OSPFv3のパケット/インタフェースタイプ


OSPFv3パケットタイプ OSPFv3インタフェースタイプ
タイプ1 - Hello P2P
タイプ2 - Database Description P2MP
タイプ3 - Link State Request ブロードキャスト
タイプ4 - Link State Update NBMA
タイプ5 - Link State Acknowledgement 仮想リンク

ヘッダ比較


フィールド OSPFv3 OSPFv2
ヘッダサイズ 16バイト 24バイト
ルータとエリアID 32ビット 32ビット
インスタンスID Yes No
認証 IPsec インタフェース毎、エリア全体

注意: OSPFv3で、リンク毎に複数のOSPFプロセス持つために使われるインスタンスIDは新しいフィールドである。デフォルトでは0で、インスタンスの追加で増やされ、インスタンスIDはローカルリンク的な意味を持つ。OSPFv3ルータはインスタンスIDが一致する場合にのみネイバーとなる。従って、ブロードキャストドメイン上で複数ルータを持つことが可能である。全てOSPFv3が動作していても、全てネイバーになるとは限らない。

OSPFv3 Helloパケットと機能


86931 V3 Hello Packet

注意: インタフェースIDはインタフェースをユニークに識別する32ビット番号で、仮想リンクは自身のインタフェースIDを得る。

  • 比較として、OSPFv3は隣接関係形成の成立にネットマスクを必要としない。隣接関係はサブネット毎ではなく、リンク毎にv6ではリンクローカル上に形成される
  • OSPFv2のオプションフィールドは8ビットだが、OSPFv3は24ビットである
  • Dead intervalsフィールドは32から16ビットに縮小された
  • マルチキャストアドレス
  • マルチキャストアドレス OSPFv3 OSPFv2
    All-SPF Routers FF02::5 224.0.0.5
    All-DR Routers FF02::6 224.0.0.6

LSAタイプ


OSPFv3 LSA OSPFv2 LSA
LSタイプコード 名前 タイプ 名前
0x2001 ルータLSA 1 ルータLSA
0x2002 ネットワークLSA 2 ネットワークLSA
0x2003 エリア内プレフィックスLSA 3 ネットワークサマリLSA
0x2004 エリア内ルータLSA 4 ASBRサマリLSA
0x4005 AS外部LSA 5 AS外部LSA
0x2006 グループメンバーシップLSA 6 グループメンバーシップLSA
0x2007 タイプ7 LSA 7 NSSA外部LSA
0x0008 リンクLSA
0x2009 エリア間プレフィックスLSA

  • LSAタイプあるいは機能コードはOSPFv2と同じLSAタイプと一致する
  • タイプ3は今はエリア内プレフィックスLSAと呼ばれる
  • タイプ4は今はエリア内ルータLSAと呼ばれる
  • 二つの新しいLSAタイプが加わった(リンクLSAとエリア間プレフィックスLSA)

注意: Intra-Area Prefix LSAはOSPFv3の新しいLSAで、複数のIPv6プレフィックスを広報するために使われる。OSPFv2ではintera-areaプレフィックス情報はルータとネットワークLSA(タイプ1と2)で運ばれる。

リンク毎に複数インスタンスをサポート

インスタンスIDはリンク毎に複数のOSPFプロセスインスタンスを持つために使われる新しいフィールドである。2つのインスタンスがお互いに通信するには、同じインスタンスIDを持つ必要がある。デフォルトでは値は0で、インスタンスを追加すると値を増やす。インスタンスIDはローカルリンク的な意味のみを持つ。

認証手法の変更

OSPFv2の認証は共有秘密鍵とMD5 HMACが実装されており、OSPFv2プロトコルの一部としてサポートされる。OSPFv3は認証を自身でサポートするのを全くやめ、IPv6で勧められているより柔軟なIPsecフレームワークに依存している。

追記: 最新のOSPFv3の仕様はRFC5340である。RFC5340の第3節にあるRFC2740との違いを記載する。

3. RFC 2740との違い

RFC 2740に基づくOSPFv3の実装は、この仕様に基づく実装と完全互換である。しかし、いくつかプロトコルの追加と変更がある(全て後方互換を持つ)。

3.1. 同一リンク上の複数インタフェースをサポート

このプロトコルの機能はRFC 2740で部分的に明記されているだけだった。仕様のレベルはこの機能を実装するには不十分だった。4.9節は実装に必要な追加説明を明記している。それらはRFC 2740と完全互換である。

3.2. IPv6向けMOSPFの廃止

このプロトコルの機能はRFC 2740で部分的に明記されているだけだった。仕様のレベルはこの機能を実装するには不十分だった。既知の実装は存在しない。OSPFのマルチキャスト拡張(MOSPF)のサポート、その付随するプロトコルフィールドはOSPFv3から廃止された。4.4.3.2節、4.4.3.4節、4.4.3.6節、4.4.3.7節、付録A.2、付録A.4.2.1、付録A.4.3、付録A.4.1.1.、7.1節を参照して欲しい。

3.3. NSSAの仕様

このプロトコルの機能はRFC 2740で部分的に明記されているだけだった。仕様のレベルはこの機能を実装するには不十分だった。このドキュメントはOSPFv3に特有のNSSA仕様を含んでいる。[NSSA]に関連するこの仕様は、実装に十分な仕様を提供する。4.8.5節、付録A.4.3と[NSSA]を参照して欲しい。

3.4. スタブエリアの不明なLSAフラッド制限の廃止

RFC 2740 [OSPFV3]では、不明なLSAのフラッディングはスタブやNSSAエリアの中では制限されていた。この制限を説明する文は以下の通りである。

しかし、IPv6はIPv4とは異なり、認識されないLSタイプでも、"あたかもタイプを理解しているようにLSAを保存してフラッドする"とラベル付けされる(付録A.4.2.1のUビットを参照)。そのようなLSAの制御されない導入により、スタブエリアのリンク状態データベースがルータの容量よりも大きくなってしまう可能性がある。

これを防止するために、スタブエリアに関連する次のルールが確立された: a) LSAがエリアあるいはリンクローカルフラッディングスコープを持つ、b) LSAはUビットが0にセットされている、ともある場合にのみ、LSタイプが認識されないLSAはスタブエリアの中/通してフラッドされる。詳細は3.5節を参照。

この制限は廃止されている。OSPFv3ルータは、LSタイプが認識されない、Uビットが1に設定されているリンクとエリアスコープLSAをスタブとNSSAエリア全体にフラッドする。OSPFv3ルータがまだその制限をサポートする以外は後方互換はないので、新しく定義されたLSAタイプを広報しないかも知れない。

3.5. リンクLSA抑制

LinkLSASuppressionというインタフェース設定パラメータが追加された。もし、LinkLSASuppressionがインタフェースに設定され、インタフェースタイプがブロードキャストあるいはNBMAでないなら、リンクLSAの開始は抑制されるかも知れない。LinkLSASuppressionインタフェース設定パラメータは付録C.3で説明されている。4.8.2節と4.4.3.8節はパラメータの利用法を反映して更新された。

3.6. LSAオプションとプレフィックスオプションの更新

LSAオプションとプレフィックスオプションフィールドは先のプロトコル追加を反映するために更新されている。具体的には、MOSPFに関連するビットは廃止されている。OSPFv2と同じようにオプションフィールドビットは予約され、DNビットはプレフィクスオプションを追加している。付録A.2と付録A.4.1.1を参照して欲しい。

3.7. IPv6サイトローカルアドレス

IPv6サイトローカルアドレスへの全3章は削除されている。