CCIEの勉強をする時、ほとんどの方の主たるソースは書籍かINEなどの研修動画になるかと思います。
それらを使用して勉強を続けていると「なぜ、こんな仕様なんだろうか?」と疑問に思うシーンが多々あるはずです。
ラッキーな方は周りにCCIEの先輩や同僚がいて、質問する事で答えを得られるかもしれません。
しかし、残念ながら私の場合は周りにそもそもネットワークに詳しい人が皆無だったので、殆どの場合ネットやRFCを網羅する事でしか解決出来ませんでした。これは非常に時間がかかる作業です。
例えば、私がCCIEの勉強をしている時に、以下の疑問が出てきました。
OSPFのNSSAエリアのABRは通常はデフォルトルートを作成しません。何故だろう?
もう少し論点を噛み砕いてみますね。
StubエリアのABRは作る。NSSAは作らない。
OSPFにはStubという概念があります。
Stubエリアにすると、ABRがそのエリア内にLSA5とLSA4を入れなくなります。その代わりにLSA3としてデフォルトルートを挿入します。
例えば、以下のログは、Area1に入っているR10というルーターのOSPF関係のshowコマンドの結果です。
R10(config-router)#do sh ip o d OSPF Router with ID (150.1.10.10) (Process ID 1) Router Link States (Area 1) Link ID ADV Router Age Seq# Checksum Link count 150.1.5.5 150.1.5.5 622 0x80000007 0x00ED42 1 150.1.8.8 150.1.8.8 575 0x80000007 0x001DD2 2 150.1.10.10 150.1.10.10 452 0x80000003 0x00DED8 1 Net Link States (Area 1) Link ID ADV Router Age Seq# Checksum 155.1.58.8 150.1.8.8 575 0x80000002 0x000764 155.1.108.8 150.1.8.8 575 0x80000002 0x0066C8 Summary Net Link States (Area 1) Link ID ADV Router Age Seq# Checksum 0.0.0.0 150.1.5.5 623 0x80000002 0x001B80 155.1.45.0 150.1.5.5 623 0x80000005 0x00319D R10(config-router)#
LSA3(Summary LSA)の1つ目に0.0.0.0がありますね。このトポロジではRouterIDが150.1.5.5のルータがABRとなっています。このエリアはStub設定をしており、150.1.5.5が0.0.0.0(デフォルトルート)をエリア1内に伝搬しているんです。
ちなみに、Stubエリアではルートの再配送は出来ません。正確にはLSA5を生成できません。例えば、R10が再配送しようとすると、以下の様なエラーが発生します。
R10(config-router)#redistri static subnets R10(config-router)# %OSPF-4-ASBR_WITHOUT_VALID_AREA: Router is currently an ASBR while having only one area which is a stub area
Stubエリアにしか属していないのにASBR(再配送してるルータ)になろうとしちゃダメだよ!と怒られました。
話を戻します。
そもそも、なぜStubエリアの場合は、ABRがデフォルトルートを生成するのでしょうか?
これは、当たり前ですね。
そもそも、Stub内のルータはLSA4とLSA5を持たない事になります(ABRが伝搬しないから)。つまり、「どこかのエリアで再配送されたルート」の情報を受けれなくなるのです。
でも、心配無用です。ABRがデフォルトルートを流してくれるので、結果的にデフォルトルートに向かってStub内のルータはパケットを転送すれば良いのです。
例えば以下の図を見てください。ちなみにこれ、iPad ProとApple Pencilで書きました!上とか下とかで書いているコマンドのトポロジとは関係ないので、混乱しないようにお願いします。
R1とR2はStubのエリアに入っています。仮に、R6がルートを再配送しても、R5がルートを再配送しても、R1からするとR2に転送しますよね。R2はエリア1の中以外にパケットを送る時は絶対にR2に転送するしか術がありません。つまり、R1にとって、R6が再配送したルートなんて知る必要がありません。とりあえず、エリア1の中のルートじゃなかったら、R2に送信すれば良いので。だから、R2はR1に対してデフォルトルートだけあげたらいいのです。これが、Stubですね。
ちなみに、Totally Stubby Areaとは、LSA3もなくすことでしたよね。先ほどの例で、ABRに[area 1 stub no-summary]とした時のR10のOSPF databaseの結果がこれです。
R10(config-router)#do sh ip o d OSPF Router with ID (150.1.10.10) (Process ID 1) Router Link States (Area 1) Link ID ADV Router Age Seq# Checksum Link count 150.1.5.5 150.1.5.5 1556 0x80000008 0x00EB43 1 150.1.8.8 150.1.8.8 1530 0x80000008 0x001BD3 2 150.1.10.10 150.1.10.10 1397 0x80000004 0x00DCD9 1 Net Link States (Area 1) Link ID ADV Router Age Seq# Checksum 155.1.58.8 150.1.8.8 1530 0x80000003 0x000565 155.1.108.8 150.1.8.8 1530 0x80000003 0x0064C9 Summary Net Link States (Area 1) Link ID ADV Router Age Seq# Checksum 0.0.0.0 150.1.5.5 9 0x80000005 0x001583
LSA3が[0.0.0.0]だけになりました。なので、Totally Stubby Areaとは厳密には「完全にLSA3をなくす」訳ではありません。デフォルトルートはLSA3で伝搬させるので。
話を戻します。
Stub Area(とTotally Stubby Area)は、逆に言うと、R2がデフォルトルートをR1にあげなかったら、R1は困ります。デフォルトルートがなくなると、いよいよエリア1より外に出れなくなります。
Stubの場合は、ABRが原則デフォルトルートを伝搬するので、それほど心配しなくても良いのですけどね。
で、NSSAの場合、ABRは原則でフォルトルートを伝搬しません。
R10をnssaにしてみました。ABR(R5)含む、エリア内の他のルーターもnssaにしてみました。R10の結果がこれです。
R10(config-router)#do sh run | s ospf router ospf 1 area 1 nasa R10(config-router)#do sh ip o d OSPF Router with ID (150.1.10.10) (Process ID 1) Router Link States (Area 1) Link ID ADV Router Age Seq# Checksum Link count 150.1.5.5 150.1.5.5 106 0x8000000B 0x0073AE 1 150.1.8.8 150.1.8.8 57 0x8000000B 0x00B031 2 150.1.10.10 150.1.10.10 56 0x80000007 0x00782F 1 Net Link States (Area 1) Link ID ADV Router Age Seq# Checksum 155.1.58.8 150.1.8.8 105 0x80000005 0x0088D7 155.1.108.10 150.1.10.10 56 0x80000001 0x00B170 Summary Net Link States (Area 1) Link ID ADV Router Age Seq# Checksum 155.1.45.0 150.1.5.5 124 0x80000003 0x00BC0C
R5(ABR)からデフォルトルートが伝搬されていません。
もちろん、R5(ABR)で[area 1 nssa default-information-originate]とやったら、Stubと同じくデフォルトルートを伝搬してくれます。
ちなみに、上記の状態だとエリア1内のルーターはエリア1外で作られた再配送ルートには通信出来ません。Stubで発生したジレンマ(デフォルトルートがなかったら、外に出れない)と同じです。
なぜ、NSSAでは通常はデフォルトルートを作らないの?
何故、ABRにて明示的に指定しないとデフォルトルートを伝搬しないのでしょうか?だって、Stubだと明示的に指定しないでもデフォルトルートを伝搬してくれたのに。。なんか、不親切に感じます。
これには、もちろん理由があります。次回は、その理由を記載予定です。
この記事の内容がすんなり理解出来なかった方は、INEのWorkbookをマスター出来ていない可能性が高いです。
INEのOSPFセクションを何度も繰り返してください。私はINEのOSPFセクションを全て1時間程度で終わらせれます。
また、以下のOfficial Guide Vol1のOSPFセクションを読み直してください。まだ購入していない方、小手先の勉強でCCIE合格は無理です。必要な書籍は購入して、しっかり体系だった勉強をしましょう。勉強に重要な書籍をケチって回り道をしても、ラボ試験にFailしたら結局時間と費用を無駄にします。
必要な書籍は、買いましょう。
もし、お分かりになった方がいれば、コメントくださいね!
コメント
出口が2つある以上、ABR側にその他全ての宛先がある保証がないからではないでしょうか
その通りです!