教科書には載っていない ネットワークエンジニアの実践技術

第12回OSPFのType-2 LSAはなぜ必要か

前回のこの連載で、リンクステート型プロトコルの「接続情報」が、OSPFのLSA(Link-State Advertisement)のことであると説明しましたが、実際にOSPFで利用されているLSAにはさまざまなタイプがありますね。

RFC2328(OSPF Version-2)では、以下の5種類のLSAタイプが規定されています。

Type-1Router-LSA
Type-2Network-LSA
Type-3,4Summary-LSA
Type-5AS-external-LSA

今日は、この中のType-2 LSAがなぜ必要なのかについて考えてみたいと思います。

リンクステートの基本はType-1 LSA

まず、Type-1(Router-LSA)の役割を説明します。

というか、前回のクイズで「A駅は、B駅とC駅に接続している。B駅との距離は…」という情報を例として記載しましたが、これがまさにType-1 LSAです。実際のType-1 LSAには、以下のような情報が含まれています(ここではわかりやすさを優先して大雑把に書いていますので、詳細は他の技術文献等をご参照ください⁠⁠。

Link State IDLSAを発行したルータのID
Link ID隣接するルータのID
Metric隣接ルータまでの距離※
表の脚注
※「Link ID」「Metric」は隣接するルータの数だけ繰り返し記載します。
※「Metric」を距離と訳すのは適切でないかもしれませんが、とりあえず見逃してください。

前回コラムのクイズで登場した線路の例をルータに置き換えると、図1のような感じになります。

図1
図1

図1中の「Cost」は、通常はインターフェースの帯域に応じて算出される数字であり、LSAに含まれる「Metric」と同じ意味です。この数値が小さいほうが「距離が短い⁠⁠、つまり優先的に選択すべきルートであることを意味しています。

R1からR5まで、それぞれのルータがType-1 LSAを発行しフラッディングすると、各ルータでは、以下のような接続情報(リンクステートDB)が作成されます。

画像

どうですか? 前回の線路のクイズと考え方は同じです。

もちろん、実際のLSAにはもっと多くの情報が含まれているので、こんなにわかりやすくありませんが、重要な部分を抜き出すとこうなるのです。この情報を基にして、ダイクストラ・アルゴリズムを使って最短経路を算出し、ルーティングテーブルを作っていくわけですね。

無くても良い?Type-2 LSA

今回のタイトルに「Type-2 LSAは、なぜ必要か?」と書いてしまったのですが、よく考えてみると、⁠無くても良いType-2 LSA」のほうが良かったかもしれません。

以前、居酒屋で「タイプツーなんかなくたってOSPFは動くんだよ。お前らわかってんのか?」と説教しているオジサンを見かけたことがありますが、確かにそのとおりだと思います。

図2を見てください。広域イーサネットサービスを使って100台のルータを接続しています。

図2
図2

ご存知のとおり、広域イーサネットはLAN(単一のブロードキャストドメイン)とみなすことができます。このとき、LSAがType-1しかないと仮定して、どのようなLSDBができるかを想像してみましょう。

画像

このように、膨大な情報量になってしまいますね。

つまり、LANのようなブロードキャストネットワークに多数のルータが接続されている状況では、Type-1 LSAだけだとLSAのフラッディングやLSDBが大量になってしまうため、インターフェースの帯域を無駄に消費したり、ルータのCPU負荷が上がってしまう、ということを心配してType-2 LSAが考案されました。

次にType-2 LSAの仕組みですが、まずは図3を見てください。

図3
図3

さきほどと同じように100台のルータが接続されていますが、広域イーサネットではなく、ルータ(R101)を介してつながっています。このときのLSDBはどうなるでしょうか?

画像

情報量の変化がわかりますか?

R1~R100のルータについては、直接つながっているのはR101だけなので、リンクステートもR101に関する情報しか含まれていません。R101は100台のルータと接続していますので、100台分のリンクステートが含まれています。LSDB全体の情報量を考えると、さきほどのブロードキャストネットワークの場合と比較して、およそ100分の1ほどに削減されていますね? このR101のリンクステートが、まさにType-2の役割なのです。

つまり、こういうことです図4⁠。

図4
図4

OSPFルータがブロードキャストネットワークに接続されると、⁠架空ノード」を作ってしまうのです。

全てのルータが架空ノードを介してつながっているように見せることで、LSDBを圧縮しています。ただし、架空ノードはリンクステートの処理の上でだけ存在し、実際のトラフィックは実在するルータ間で転送されます。

この、架空ノードのLSAに相当するのがType-2 LSAであり、Type-2を作成する役割を果たすのが、DR(Designated Router)です。だから、ブロードキャストネットワークではまずDRの選出をして、DRとその他のルータ間で隣接関係を構築し、DRだけがType-2 LSAを発行するのです。

Cisco IOSであれば、⁠show ip ospf database router」⁠show ip ospf database network」で実際のLSDBを覗いてみると、納得できると思います。

ちなみに、OSPFと同じような原理で動作するIS-ISでは、Type-2 LSAに相当する情報のことを、Pseudonode LSP(架空ノードのリンクステート・パケット)と呼びます。こちらのほうが意味を適切に表していますね。

おすすめ記事

記事・ニュース一覧