以下の記事で軽くネタバレしていますが、一般的にOSPFのHello/Deadタイマーは一致する必要があると学びます。
これは、本当に「絶対」でしょうか?
そもそも、何故一致する必要があるのか?
答えは簡単ですね。一致させないとネイバーを張る時に失敗するからです。(今回はOSPFのネイバーのStateについては深く説明しません)
じゃあ、何故ネイバーを張る時に失敗するのか?
それは、RFCで明確に規定されているからです。
RFC4062に以下の記載があります。
Router Dead Interval:
This is advertised in the router’s Hello Packets in the
Router-DeadInterval field. The router dead interval should
be some multiple of the HelloInterval (perhaps 4 times the
hello interval) and must be the same for all routers
attached to a common network.
“must be the same for all routers attached to a common network”なので、必須です。
つまり、「deadタイマーは一致させなければいけないか?」の問いについては
Yes
が正解のはずです。
仮にこんな問題が出たらどうしますか?
- RouterAとRouterBでネイバーを張る事。ただし、HelloインターバルはRouterAとRouterBで違う必要がある。
もうむちゃくちゃですね。なぞなぞみたいですね。
実は、上記に対する解が(私の知る限り)一つだけあります。
初めて私がこの解を発見したとき「そんなバカな・・・」と思い、何度も複数の環境で検証し、RFCを再度読み直しました。
でも、確かに動作しますし、RFC的にも成立しているように思われます。Cisco Proprietaryという訳ではない解のはずです。
ということで、次回に持ち越します
別に出し渋りしたい訳ではないです。
一度考えてみてほしいんです。考えた方が絶対に勉強になりますし、仮に発見した時に嬉しくて絶対忘れないはずですから。CCIEでは想定外の問題は必ず出るので、柔軟に対応する意味でも役立つはずです。
あ、BFDを使うとか、そういうOSPFではない機能を持ち出すのはNGです。あくまでもOSPFの範囲の話です。
回答編の記事自体は書き終わっているので、ヒントが必要な方はコメントください。
コメント