Virtual Link(仮想リンク)の本質的な考え方

スポンサーリンク

OSPFでは、ループ回避の目的で、Area0以外のエリア(非バックボーンエリア)間でのLSA情報交換は直接は禁止されており、 必ずArea0(バックボーンエリア)を経由するよう義務付けられています

例えば下記構成において、R4ではArea245とArea346の情報交換はできませんので、R5からR6への通信ルートは非効率なものとなります。

解決策は当然、R2とR4の間のリンク、もしくはR3とR4の間のリンク、もしくはその両方をArea0にすれば良いのですが、 仮に制約上それが不可の場合を考えます。

R4にArea0のインタフェースが出来れば、R4の中で Area346 ⇒ Area0 ⇒ Area245と内部的に処理ができるのでOKです。 例えば、R4のLoopbackインタフェースをArea0にしてみます。するとR5からR6(6.6.6.6)へのNextHopが R4に変わります

スポンサーリンク

しかしここで問題となるのは、R2とR3(ABR:境界ルータ)はArea245(非バックボーンエリア)からはLSA Type3を受け取れないことです。(※Type4,5は受け取れます) OSPFのループ回避のための構成上、あってはならないためです。 このような問題があるため、バックボーンエリアの分断はNGとなるのです。

上記例の場合、R2とR3は4.4.4.0/24のLSA Type3を無視するため、R1、R2、R3には4.4.4.0/24のルート情報が載りません。 (R5とR6はABRでは無いため問題なく4.4.4.0/24のルート情報を載せることができます)

ここでの問題解決策候補として挙がるのがVirtual Linkです。この例ではR2とR4の間でVirtual Linkを張ることにします。

スポンサーリンク

Ciscoの場合、設定が「area 245 virtual-link <相手のrouter-id>」となり誤解を生みやすいのですが、 Virtual Linkの本質は、互いのルータにArea0所属の仮想インタフェースを創り、互いをArea0で繋げ、 非バックボーンエリアを越えてArea0の情報を一元管理することにあります。

つまり、物理構成はともかく、論理構成はOSPF構成原則をしっかり守るようにすればよく、 その論理構成を柔軟に対応させるのがVirtual Linkです。

具体的な効果としては以下の2つです。

  1. Area0に接していないルータをArea0に所属させ、非バックボーンエリア間でのLSA type3~5の情報交換を許可する
  2. 分断されたArea0を繋ぎ、物理的に離れたArea0を論理的に1つにし、LSA等の情報を正しく交換、共有する

先の例で言えば、R4のArea0のLoopbackインタフェースが無い状態でR2とR4をVirtual Linkで繋げば1の効果、 R4のArea0のLoopbackインタフェースが有る状態でR2とR4をVirtual Linkで繋げば2の効果が得られます。

実際に良く見る構成は下記のようなものだと思います。 Virtual Linkを通して伝わる情報は実は本質的に必要な情報ではなく、単純にArea0のLSA Type1/2の情報 (例えば「R3がArea0に参加していますよ」という情報)のみです。

効果として一番期待されるのはVirtual Linkを通して伝わる情報ではなく、 R3が直接Area12とArea23の間で(内部的にはArea0を経由して)LSA Type3~5を交換できるようにするということなのです。

スポンサーリンク

余談ですが、Area0からのLSA Type3~5はどのエリアに伝達してもループは発生しないので、どのエリアにも伝達することが 可能であり、例え非バックボーンエリアが分断(エリア重複)されていても問題は発生しません

また、よくある引っ掛け問題として、「Area0に認証設定を掛けなさい」というものがあります。 実際にarea 0 authentication などと設定をしてみるとVirtual Linkが切れてしまいます。 これはVirtual LinkもArea0であるため、R2、R3ともにVirtual Linkに認証キーの設定が必要になるためです。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする