■ 隣接関係
さて、前回からOSPFの説明を始めている。
リンクステート型ルーティングプロトコルっスね。
うむ。
前回の事をちゃんと覚えているか? OSPFの初期動作だ。
Helloパケットを使って、同じサブネット内の他ルータとお友達関係を築いて。
データベースを交換して、ルーティングテーブルを作成する。
でしたっけ?
そうだ。
OSPFを作動させているルータは、ネイバーと隣接関係(2Way State)になることにより、トポロジ情報を交換する。ネット君、正解だ。
えへへ。
問題は、情報交換を行うルータが多い場合だ。
お友達が多くなると、ちょっとした情報を交換するのも大変ですからねぇ。
うむ、そういう事だ。
友人が少ないネット君は心配する必要のない問題だが。
そ…そんなことないですよ。
友達多いですよ、ほら、ケータイのメール履歴みてくださいよ。
ネット君、それはチェーンメールだ。
ともかく、情報交換の転送量を減らすために、リーダーを作ることにする。
チェーンメール…。
前回の最後で出てきたDRとBDRがそれだ。
DRはリーダー、BDRはサブリーダーとなり、DRがダウンした際は自分がリーダーとなる。
でじぐねいてっどるーたの略でしたっけ、DR。
そうだ、代表ルータという意味だ。
OSPFを動作させているルータは、まず同じサブネット内のルータと2Way Stateになる。
えぇ、それはさっきもでてきましたね。
その後ポイントツーポイントネットワークならそのままデータベースの交換が行われる。
このように、データベースの交換が行われる関係をadjacencyという。この状態がほんとの隣接関係だ。
隣接関係ってのは、データベースを交換する関係だ、ってことですか?
そうだ。ポイントツーポイントなら、2Way Stateがその関係になる。
だが、先ほども言ったとおり、マルチアクセスの状態ではこの関係が多くなりすぎると問題が発生する。
なのでリーダーの登場ですね。
■ DRとBDR
サブネット内のすべてのルータの中から、DRとBDRを選出する。
全ルータの中でOSPFプライオリティがもっとも高いものをDR、2番目に高いものを、BDRとする。
OSPFプライオリティって、なんです?
デフォルトは1が設定されている値だ。
特別にこのルータをDR(もしくはBDR)にしたいと考えない場合はそのまま1を使う。
プライオリティを変更するCiscoIOSコマンドは例えば10に設定したい場合、こうなる。
- Router(config-if)#ip ospf priority 10
じゃあ、変更されなかった場合は、みな同じプライオリティなわけですよね。
その場合、どうなるんです?
その場合は、ルータIDが使われる。
ルータID?
そのルータが持つもっとも大きなIPアドレスのことだ。
例えば、インタフェースeth0が192.168.0.1、serial0が192.168.0.10ならば、192.168.0.10がルータIDになる。
ふむふむ。
さらに、ループバックインタフェースがあった場合ループバックインタフェースの値が優先される。
るーぷばっくいんたふぇーす?
うむ、自分との接続にしか使われない論理的インタフェースで、他のすべてのインタフェースがダウンしない限りダウンしない。これのIPアドレスが優先してルータIDとなる、ということだな。例えば…。
- ethernet0 192.168.255.10
- serial0 192.168.255.100
- loopback0 192.168.0.200
- loopback1 192.168.0.210
という4つのインタフェースを持つルータの場合、純粋に値が大きいのは192.168.255.100のserial0だが、ループバックが優先されるため、ループバック内で一番大きい192.168.0.210がルータIDとなる、ということだ。
へへぇ、なんでこんなルールがあるんです?
うむ。通常のインタフェースをルータIDにしてしまった場合、もしそのインタフェースがダウンするとルータIDが変わってしまうことになる。
だが、ループバックインタフェースは基本的に落ちることがない。
他のインタフェースがすべてダウンしないとダウンしないからですか。
ははぁ、それでルータIDがなるべく変わらないようにループバックを使え、と。
そういうことだ。
さて、DRとの隣接関係は以下のように結ばれる。
[FigureRT06-01:DRとDROTHER] ▼
交換されるパケットは、以下の5種類だ。
コード | 名前 | 内容 |
---|---|---|
1 | Hello | Helloパケット。 |
2 | DDP | データベース記述。データベースの要約情報 |
3 | LSR | リンクステート要求。 |
4 | LSU | 複数のLSAからなるリンクステート情報。 |
LSA | 各インタフェース毎のリンクステート情報。 | |
5 | LSAck | リンクステート確認応答。 |
[TableRT06-01:アドバタイズされるパケット]
FULL Stateになりコンバージェンスに達すると、ルーティングテーブルを作成する。
その後は30分毎のデータベース情報のやり取り以外は、リンクに変更があった場合のみ行われるようになる。
ははぁ。
何かDRを選出した意味がよくわからないんですけど?
それは、上の図が1対1だからだろう。
前にも使った6台の図を使う。
[FigureRT05-02:マルチポイント環境でのネイバー]
DRとBDRがない場合、このように網の目のように隣接関係を結ぶ必要があったわけだ。
そうでしたね。
DRとBDRを選出した場合、DRとBDRに対してのみ、adjacencyとなる。
[FigureRT06-02:隣接関係・DR]
はははぁ。ずいぶんとすっきりしましたねぇ。
■ DRの役割
うむ。次にDRとBDRの役割だが。
各DROTHERは、リンクの変更を確認した場合、DRとBDRにだけLSUを送る。
リーダー達にだけ送るんですね。
そうだ。
受け取ったDRは、すべてのルータに対し、そのLSUを転送する。
各ルータは受け取ったらLSAckを返答し、DRはLSAckが帰ってこなかったら再送する。
あれ? BDRは?
DRだけでなく、BDRもリンク変更のあったルータからLSUを受け取るよな。
その後、DRが全ルータにLSUを転送する際にも同じLSUを受け取る。
もし、2回目のLSUが、つまりDRからのLSUが送られてこなかったら?
DRが何かあって、LSUを送れなかったんでしょうね。
そう考えるのが妥当だ。
よって、その場合BDRはDRの代わりにLSUを転送する。
自分がDRであると他ルータに宣言するんだな。
ははぁ。下克上ですね。
その場合、BDRがいなくなってしまいますけど?
うむ、新しくBDRを選出するのだ。
このようにLSUを全ルータに流すことを、フラッディングという。
ふらっでぃんぐ、ですか。
以下のような2つのサブネットの場合でもおきる。
[FigureRT06-03:フラッディング]
は〜。
確かに洪水のようにLSUが流れていくんですねぇ。
そういうことだ。今回はちょっと色々話したので、まとめてみよう。
まずは初期動作からだ。
- DOWN:ルータはすべてのルータに対しHelloを送信。
- INIT:各ルータはHelloを返信。
- 2WAY:送受信したHelloパケットの情報からDRとBDRを選出。
- EXSTART:DR・BDRとHelloを交換し、データベース交換の準備をする。
- EXCHANGE:DR・BDRとデータベース交換。
- LOADING:DR・BDRと詳細リンク情報の交換。
DRはDROTHERから受け取ったLSUをフラッディング。 - FULL:コンバージェンス。ルーティングテーブル作成。
LOADINGの「DRはDROTHERから受け取ったLSUをフラッディング」ってのは?
うむ。
DRだけ詳細なリンク情報を知っても仕方ないだろう。他のルータにもその情報を伝えないとな。通常のリンクの変更時と同じことをするのだよ。
ははぁ。
そういわれればそうですねぇ。
次は、リンクの変更時の流れだ。
- リンクに変更のあったルータは、DR・BDRにLSUを送信。
- DR・BDRはLSUを受信。
(BDRはカウント開始) - DRは全ルータ宛てにLSU送信。
(BDRはカウントが0になるまでにLSUが届かなければ、自身がLSU送信) - DROTHERは受信後、LSAcKをDR宛てに送信。
- DRは全DROTHERからLSAckを受け取らなかった場合、再送。
DRが全DROTHERからLSAckを受け取らなかった、ってどうやって判断するんです?
忘れたのか?
OSPFルータはHello交換時にネイバーテーブルを持つと言っただろう。
あぁ、そういえばそうでしたね。
相変わらず、揮発度が高いな。
ともかく、CiscoIOSでのOSPF設定コマンドはこれだ。
- Router(config)#router ospf process-ID
- Router(config-router)#network IP address wildcard area 0
注意点はサブネットマスクではなく、ワイルドカードって所だな。
あと、area 0はエリアが1つの場合必ずこれになる。複数の場合はそれぞれエリアのIDが入る。
エリア? Process-ID?
エリアについては先で話す。プロセスIDは、そのルータ上でOSPFプロセスを識別するための番号だ。
別に他のルータと一致させる必要はない。
なるほど。
今回はここまでだな。
了解。
30分間ネットワーキングでした〜♪
- adjacency
- 隣接、付近の意。
- デフォルトは1
- 0にも設定可能です。0に設定した場合、そのルータはDR・BDRに選出されません。
- 図 DROTHER
- DRでもBDRでもないルータの事。
- DRとBDRにだけ…
- 宛先IPアドレスは224.0.0.6(すべてのOSPF DR)になります。
- すべてのルータ…
- 宛先IPアドレスは224.0.0.5(すべてのOSPFルータ)になります。
- フラッディング
-
[flooding]
洪水の意味。受け取ったパケットを自身が持つすべてのポートから送り出すこと。
- loopbackインタフェース
-
[loopback interface]
自ホストとの接続のみに使われるインタフェース。
OSPF、BGPなどのルータIDのために使用すると便利。
- ハイパーネット君の今日のポイント
-
- マルチアクセスネットワークでは、DRとBDRが選出される。
- DR・BDRとだけ隣接関係が結ばれる。
- DRとBDRを中心として、データベース、LSUのやり取りが行われる。
- LSUはフラッディングされて、全ルータに送られる。