前回のこの連載で、リンクステート型プロトコルの「接続情報」が、OSPFのLSA(Link-State Advertisement)のことであると説明しましたが、実際にOSPFで利用されているLSAにはさまざまなタイプがありますね。
RFC2328(OSPF Version-2)では、以下の5種類のLSAタイプが規定されています。
Type-1 | Router-LSA |
Type-2 | Network-LSA |
Type-3,4 | Summary-LSA |
Type-5 | AS-external-LSA |
今日は、この中のType-2 LSAがなぜ必要なのかについて考えてみたいと思います。
リンクステートの基本はType-1 LSA
まず、Type-1(Router-LSA)の役割を説明します。
というか、前回のクイズで「A駅は、B駅とC駅に接続している。B駅との距離は…」という情報を例として記載しましたが、これがまさにType-1 LSAです。実際のType-1 LSAには、以下のような情報が含まれています(ここではわかりやすさを優先して大雑把に書いていますので、詳細は他の技術文献等をご参照ください)。
Link State ID | LSAを発行したルータのID |
Link ID | 隣接するルータのID |
Metric | 隣接ルータまでの距離※ |
前回コラムのクイズで登場した線路の例をルータに置き換えると、図1のような感じになります。
図1中の「Cost」は、通常はインターフェースの帯域に応じて算出される数字であり、LSAに含まれる「Metric」と同じ意味です。この数値が小さいほうが「距離が短い」、つまり優先的に選択すべきルートであることを意味しています。
R1からR5まで、それぞれのルータがType-1 LSAを発行しフラッディングすると、各ルータでは、以下のような接続情報(リンクステートDB)が作成されます。
どうですか? 前回の線路のクイズと考え方は同じです。
もちろん、実際のLSAにはもっと多くの情報が含まれているので、こんなにわかりやすくありませんが、重要な部分を抜き出すとこうなるのです。この情報を基にして、ダイクストラ・アルゴリズムを使って最短経路を算出し、ルーティングテーブルを作っていくわけですね。
無くても良い?Type-2 LSA
今回のタイトルに「Type-2 LSAは、なぜ必要か?」と書いてしまったのですが、よく考えてみると、「無くても良いType-2 LSA」のほうが良かったかもしれません。
以前、居酒屋で「タイプツーなんかなくたってOSPFは動くんだよ。お前らわかってんのか?」と説教しているオジサンを見かけたことがありますが、確かにそのとおりだと思います。
図2を見てください。広域イーサネットサービスを使って100台のルータを接続しています。
ご存知のとおり、広域イーサネットはLAN(単一のブロードキャストドメイン)とみなすことができます。このとき、LSAがType-1しかないと仮定して、どのようなLSDBができるかを想像してみましょう。
このように、膨大な情報量になってしまいますね。
つまり、LANのようなブロードキャストネットワークに多数のルータが接続されている状況では、Type-1 LSAだけだとLSAのフラッディングやLSDBが大量になってしまうため、インターフェースの帯域を無駄に消費したり、ルータのCPU負荷が上がってしまう、ということを心配してType-2 LSAが考案されました。
次にType-2 LSAの仕組みですが、まずは図3を見てください。
さきほどと同じように100台のルータが接続されていますが、広域イーサネットではなく、ルータ(R101)を介してつながっています。このときのLSDBはどうなるでしょうか?
情報量の変化がわかりますか?
R1~R100のルータについては、直接つながっているのはR101だけなので、リンクステートもR101に関する情報しか含まれていません。R101は100台のルータと接続していますので、100台分のリンクステートが含まれています。LSDB全体の情報量を考えると、さきほどのブロードキャストネットワークの場合と比較して、およそ100分の1ほどに削減されていますね? このR101のリンクステートが、まさにType-2の役割なのです。
つまり、こういうことです(図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(架空ノードのリンクステート・パケット)と呼びます。こちらのほうが意味を適切に表していますね。