なぜ、OSPFのNSSAのABRはデフォルトルートを作らない?その1

この記事は約10分で読めます。
スポンサーリンク

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で書きました!上とか下とかで書いているコマンドのトポロジとは関係ないので、混乱しないようにお願いします。

IMG_0029

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したら結局時間と費用を無駄にします。

必要な書籍は、買いましょう。

もし、お分かりになった方がいれば、コメントくださいね!

コメント

  1. AS65000 より:

    出口が2つある以上、ABR側にその他全ての宛先がある保証がないからではないでしょうか

タイトルとURLをコピーしました