同じ地図を全員で持つ。
前回はそこから歩いた。各ルータが自分の見える隣りを書き込み、その素材が行き渡って、全員が同じ地図を持つ。地図さえ揃えば、別のルータでも同じ計算結果に行き着く。リンクステート型の最初の輪郭だった。
ところが、この発想にはまだ続きがある。本社内側で同じ地図を共有しているルータ群と、ISP の中核で同じ地図を共有しているルータ群を並べてみる。ネットワークが大きくなるほど、その地図がどんどん膨らんでいくのが見える。
全員で同じ地図を持つ、と言ったが、その地図は本当に 1 枚で済むのだろうか。


ここから、地図の中身をもう一段読み解いていく。前回見た「全員が同じ」という前提を保ったまま、その地図に区分があることを観察する段だ。
1. 全員が全部を持ち続ける、の限界
リンクステート型は「全員が同じ地図を持つ」という前提から始まる。ここまでは前回見たとおりだ。
それでは、その「全員」が大きく膨らんだらどうなるか。本社の中だけなら、ルータの数もリンクの数も限られていて、地図 1 枚に書き切れる量に収まる。しかし、AS (autonomous system) の規模が広がっていくと、地図に書くべきリンクとルータの数は積み上がっていく。
しんどさは 3 か所に出る。地図そのものの大きさが増える。誰かのリンクが上がり下がりするたび、その更新を全員に伝え直す必要が増える。そして同じ地図を読み込んで経路を計算する作業が、全ルータで重くなる。
「全員が同じ地図を持つから、自分のルータでも別のルータでも同じ結論に行き着く」という前回の安心感は、地図が小さいうちは強い味方だ。だが、地図が膨らみすぎると、その同じ前提がそのまま負担になる。
ここで、リンクステート型の設計者たちは別の手を打った。地図を 1 枚に保つのをやめる、という手だ。
ポイント: 地図を全員で持つ前提は、規模が大きくなると保持・更新・計算のすべてで重くなる。
2. 地図は区分に分けられる
地図を 1 枚にしないなら、どう分けるか。リンクステート型の答えは、中心側と外側で持つ範囲を分ける、というものだ。
中心側に立つルータは、地図の中心を担う。外側のルータは、自分のいる領域の中だけを詳しく持つ。そして、領域の外で何が起きているかは、要約として中心側から受け取る。
つまり、ルータごとに「詳しく持つ範囲」と「要約だけ受け取る範囲」が分かれる。
本社内側にいるルータから見れば、自分の本社の中の地図は隣りまで含めて細かく持っているが、ISP の中核がどう繋がっているかは要約だけで十分だ。逆に、ISP の中核を担うルータからすれば、自分の中核の地図は詳しく持ち、各企業の本社内側の細かい話までは抱え込まない。
ここで肝心なのは、区分の中であれば、前回の見え方がそのまま生きていることだ。区分の中では、各ルータが同じ地図を共有している。だから、その区分の中であれば、各ルータが独立に計算した結果は変わらず一致する。「同じ地図 → 同じ計算結果」という観測軸は、区分の中で生き残っている。
区分の外は要約として届くので、見え方は少し変わる。詳しい隣りまでは見えない代わりに、外側の宛先を要約で受け取って、そこへの渡し方だけ決められればよい。


区分する、というのは情報を捨てるという話ではない。詳しさの範囲を絞る、という話だ。中心は中心の地図を詳しく、外側は外側の地図を詳しく。間は要約で結ぶ。
ポイント: 区分の中では同じ地図を詳しく共有して計算結果が一致する。区分の外は要約で受け取る。
3. OSPF と IS-IS で区分の語彙は違うが、観測軸は同じ
ここまでは「区分する」という抽象モデルだった。実際のリンクステート型では、代表的な 2 つに固有の語彙がある。OSPF と IS-IS だ。
OSPF (RFC 2328) は、地図の区分を area という単位で呼ぶ。area 0 は backbone area と呼ばれ、他のすべての area を中継する役割を担う。area 0 以外の area は、自分の area の中の地図を詳しく持ち、area 0 を経由して他 area の要約を受け取る。中心側 = area 0、外側 = 他 area、という配置になる。
IS-IS (RFC 1195) は、同じ「区分する」を別の語彙で呼ぶ。Level-1 と Level-2 という 2 段の level だ。Level-1 は自分の領域の中、Level-2 は領域同士を結ぶ中心側を担う。Level-1 ルータは自 area の詳しい地図、Level-2 ルータは backbone の地図、Level-1 と Level-2 の両方を持つルータが、area の出入口で中継する。
語彙だけ並べると、area か Level かで違うものに見える。けれど、観測軸を取り出すと同じだ。中心側と外側を分ける。中心側は area 0 / Level-2。外側は他 area / Level-1。中心側のルータが領域間を中継し、外側のルータは自分の領域の中を詳しく持って、外の宛先は要約で受け取る。


語彙の違いの下に、もう一つ知っておきたい設計差がある。OSPF は IP の上で動く。だから OSPF にとって、ルータの識別は IP address を中心にしている。
IS-IS は違う。IP よりも下のレイヤで動くように設計されたため、ルータの識別には IP address ではなく NSAP という別の名札体系を使う。NSAP の中に、自分の area の番号と、ルータ固有の識別子 (System-ID) が含まれている。「このルータはどの area の、どの System-ID か」という形で、地図の中で自分を名乗る。
地図の素材を運ぶ枠組みも、IS-IS では TLV という形をしている。Type (型) と Length (長さ) と Value (中身) を組にしたもので、地図に書く情報の種類を、後から拡張しやすい入れ物として用意してある。
ここでは桁数や番号には踏み込まない。「ルータは NSAP / System-ID で自分を名乗る、地図の素材は TLV という枠で運ばれる」という名前付けの輪郭だけ持ち帰る。形式の細かいところは、もう一段先に覗くときの話だ。
ポイント: OSPF (area) と IS-IS (Level-1 / Level-2) は区分の語彙が違うだけで、中心側と外側を分ける観測軸は同じ。IS-IS は NSAP / System-ID / TLV という別の名前付けを持つ。
4. どちらを選ぶかは、まだ残っている
区分するという観測軸の輪郭は、ここまでで一度見えた。
地図を 1 枚に保つのをやめる。中心側と外側で持つ範囲を分ける。区分の中では同じ地図を詳しく共有して、計算結果が一致する。区分の外は要約で受け取る。OSPF はそれを area と呼び、IS-IS は Level-1 / Level-2 と呼ぶ。区分の語彙が違っても、観測軸は同じ。
ここまでで歩いた観測軸を並べ直すと、前回の「同じ地図を持つ」と、今回の「地図の中身と区分を読む」の 2 つが揃った。各ルータが同じ地図を共有して各自で計算する、という最小モデルは前回の見え方。地図には区分があり、中心側と外側でルータが持つ範囲が変わる、というのが今回の見え方だ。
それでも、まだ残っている輪郭がある。同じ「区分する」という観測軸の上に、area と Level-1 / Level-2 という二つの語彙がなぜ並んで存在しているのか。場面によって採用される語彙が違う背景には、何があるのか。どちらを選ぶかの物差しは、現場では何で決まるのか。
それは次の段で扱う。規模と運用の観点から、どちらを選ぶかという最後の輪郭だ。今日のところは、区分するという観測軸が、area と Level-1 / Level-2 のどちらでも同じ形をしている、というところまでで一度閉じておく。
ポイント: 区分の輪郭は見えた。残るのは、規模と運用の観点でどちらを選ぶかという最後の輪郭。
リンクステート型は、地図を 1 枚に保つ前提から始まる。けれど、ネットワークが大きくなるほど、その 1 枚は膨らみすぎる。だから設計者は、地図を中心側と外側で区分に分け、ルータごとに「詳しく持つ範囲」と「要約だけ受け取る範囲」を持たせた。
OSPF はその区分を area と呼ぶ。area 0 が中心側を担い、他 area を要約で結ぶ。IS-IS は Level-1 と Level-2 と呼ぶ。Level-2 が中心側を担い、Level-1 の領域同士を結ぶ。IS-IS は IP より下のレイヤで動くため、ルータの名札に NSAP / System-ID、地図の素材の運び方に TLV という別の語彙を持っているが、区分するという観測軸はどちらでも変わらない。
ネットワーク図を見るときに、どこが中心側でどこが外側か、どのルータが詳しく持っていてどのルータが要約で受け取るかを、語彙の違いに惑わされずに読める。それが今日の持ち帰りだ。