LSA
OSPFなどのリンクステート型ルーティングプロトコルで、ルータが自分につながるリンクの状態を広告するための情報。集めたLSAからLSDB(リンクステートデータベース)を作る。
イマシルちゃんの解説
OSPFのルータは、みんなで1枚の地図を作るんだったね。
そのときに、それぞれのルータが「ぼくの周りの道はこうなってるよ」って書いた、地図のかけらがLSAなんだ!
みんながかけらを配り合って、全部集めると1枚の大きな地図が完成する。
同じかけらを全員が持っているから、全員が同じ地図を持てるんだよ。
より深い解説
定義
LSA(Link State Advertisement)は、OSPFのルータが、自分のリンク(インタフェース)の状態やつながっているネットワーク、そのコストなどを他のルータに伝えるための情報の単位である。LSAは、LSU(Link State Update)パケットに入れて送られる。
各ルータが受け取ったLSAを集めたものがLSDB(Link State Database)で、同じエリアのルータは全員が同一のLSDBを持つ。ルータは、LSDBをもとにダイクストラ法で最短経路を計算する。
フラッディング
LSAは、受け取ったルータが、受け取ったインタフェース以外のすべてのインタフェースへ転送することで、エリア全体に広がる。これをフラッディングという。
同じLSAが何度も回り続けないように、LSAにはシーケンス番号と経過時間(LS Age)があり、すでに持っているものより新しいLSAだけを受け入れて転送する。LSAは、変化がなくても30分ごとに作り直され(リフレッシュ)、経過時間が最大(MaxAge:1時間)に達したLSAはLSDBから削除される。
主なLSAの種類
| タイプ | 名前 | 作成するルータ | 伝播する範囲 |
|---|---|---|---|
| 1 | Router-LSA | すべてのルータ | 作成したルータの属するエリア内 |
| 2 | Network-LSA | DR(代表ルータ) | エリア内 |
| 3 | Summary-LSA | ABR | ほかのエリアへ(エリア間の経路) |
| 4 | ASBR-Summary-LSA | ABR | ほかのエリアへ(ASBRの場所) |
| 5 | AS-External-LSA | ASBR | AS全体(スタブエリアを除く) |
| 7 | NSSA-External-LSA | NSSA内のASBR | NSSAの中だけ |
Router-LSAとNetwork-LSAはエリアの詳しいトポロジを表すため、エリアの外には流れない。言い換えると、「あるルータが作成したRouter-LSAが伝播するルータの集合」がOSPFエリアである。
Router-LSAとNetwork-LSA
- Router-LSA:ルータが、自分のすべてのインタフェースについて、つながっている相手(ポイントツーポイントの隣接ルータ、接続しているネットワーク)とそのコストを記述する
- Network-LSA:イーサネットのような、複数のルータがつながるネットワーク(マルチアクセスネットワーク)について、DRが「このネットワークにはこれらのルータがつながっている」と記述する
この2つを組み合わせると、エリア内のルータとネットワークのつながり(グラフ)が完全に表現できる。
距離ベクトル型との違い
| リンクステート型(OSPF) | 距離ベクトル型(RIP) | |
|---|---|---|
| 交換する情報 | リンクの状態(LSA) | 宛先までの距離(経路表) |
| 交換する相手 | エリア内の全ルータ(フラッディング) | 隣接ルータだけ |
| 経路の決め方 | 各ルータが地図から自分で計算する | 隣から聞いた距離をもとに決める |
距離ベクトル型が「隣から聞いた結果」だけを信じるのに対し、リンクステート型は各ルータが地図そのものを持ち、自分で経路を計算する。このため、ループが起きにくく、収束が速い。