今回は、前回のType-1 LSAとType-2 LSAの復習も兼ねて、OSPFルータがダウンしたときのネットワークへの影響を考えてみましょう。
なぜこういうことをするかというと、教科書を読んで「わかった気分」になっていても、実はよく理解できていない事がたくさんある、ということに気がつくためです。
また、実際にネットワークを最適にデザインしたり、故障発生の際に手際よく対応するためには、メーカが独自に拡張した機能なども含めて、システム全体としての「振る舞い」を理解することが非常に重要です。
では、以下の設問を考えてみてください。
何度か実験してみるとわかりますが、ルータ1の電源を落としてからpingの通信が復活するまでの時間は5秒ほどのこともあれば、1分近くダウンする場合もあるはずです。
このように、本社側でルータを冗長化している構成は珍しくないと思いますので、実際に同じようなシチュエーションに遭遇した方もいらっしゃるのではないでしょうか?
実は、この例の場合のOSPFの振る舞いについては、どのルータがDR・BDRになっているかによって、3つのパターンに分けて考える必要があります。
①ルータ1がDR以外(DROTHER)の場合
皆さんご存知のとおり、広域イーサネットは一種のブロードキャストドメインですので、DR・BDRの選出が行われます。まず、ルータ1がDROTHERの場合(つまり、ルータ2、3、4のどれかがDR・BDR)について考えてみます。
ルータ1の電源が落ちても、広域イーサネット経由で接続しているルータ2、3、4は、すぐには気づきません。では、どうやって気がつくかというと、Helloパケットが届かなくなることによって、ルータ1と接続できなくなったことを検知します。この時間がDead Intervalで、デフォルトでは40秒にセットされています。
ということは、この場合のダウンタイムは40秒以上かかりそうですが、実際に実験してみると5秒ほどで復旧します。なぜかというと、コアスイッチ(L3)がすぐにLSAをフラッディングしているからです。
コアスイッチはルータ1と直接つながっていますので、リンクダウンを即座に検出します。すると、Type-1 LSAを更新して、ルータ1との接続性が無くなったことを知らせます。このLSAがルータ3へも到達し、少なくてもコアスイッチ~ルータ1間のリンクがダウンしていることを認識します。
これでめでたし、と納得してはいけません。
この状態は、コアスイッチから見てルータ1との接続がなくなったことを示していますが、ルータ3側から見ると依然としてルータ1からコアスイッチへの方向はつながっていることになっているのです。なぜかというと、ルータ1が(電源が落ちる前に)出していたType-1 LSAの情報は、まだルータ3の中に(LSDBとして)残っているからです。
だから、この時点ではルータ3のルーティングテーブルからルータ1経由の経路は消えない、というのがOSPFルータの基本の動作です。
しかし、Cisco IOSでは独自に拡張されたTWCC(Two Way Connection Check)という仕組みが入っており、リンクの片方向がダウンしているなら、そのリンクは経路計算には使わないという動作をします。
ちょっとややこしくなりましたが、結論として、ダウンタイムはCisco IOSなら5秒程度、他メーカ製品だともっと時間がかかる場合がある、ということになります。なお、5秒というのはSPF計算が頻繁に発生しないように入っているガードタイマー(SPF Delay)の時間であり、設定を変更すれば更に短縮することも可能です。
②ルータ1がDR、ルータ4がBDRだった場合
つまり、ルータ2とルータ3が共にDROTHERの場合ということですね。動作を確認してみましょう。
ブロードキャストネットワークでは、DRを経由してLSAが伝播されます。もっと本質的に言えば、仮想ルータを介してつながっているかのような振る舞いをします(この点については前回を参照してください)。この仮想ルータの役割を果たすのがDRでしたね。
この場合、DRであるルータ1がダウンしていますので、コアスイッチ(L3)が発行したType-1 LSAがルータ3へ到達できません。したがって、Helloパケットが途絶えて40秒経過してからルータ2、3、4がダウンを検知し、新しいDRが選出されるまでPingがダウンします。SPF Delayと合わせると、約45秒ほどのダウンタイムになるでしょう。
③ルータ1がDR、ルータ2またはルータ3がBDRだった場合
BDRとは「Backup DR」であり、その名のとおり、DRがダウンした場合にその役割をすぐ引き継げるよう、BDRとDROTHER間ではあらかじめネイバー関係を構築しておく、というようなことが教科書に書いてありますね。
詳細は技術文献などを参照していただくとして、要はルータ2かルータ3のどちらかがBDRだった場合には、ネイバー関係が構築されているので、DRがダウンしている状況でも、コアスイッチのLSAが伝播するのです。したがって、このケースでのダウンタイムは5秒ほどになります。
どうでしたか?
前回に引き続き、私らしからぬ? 技術的なコラムになってしまいましたが、ここで挙げた例のような「現場で実際に必要になる知識」というのは、教科書を読んでもなかなかわからないことが多いと思います。しかし、順を追ってひとつひとつ動作を確認していけば、それほど難しい話ではないのです。