今日から英語を翻訳かけずに読むことに。
これは…進行遅くなりそうだ…
参考資料・時間
資料:
CCIE Enterprise Infrastructure Foundation lab
DMVPN Lab 1
勉強時間:
20251002 : 約2時間
20251003 : 約2時間
20251004 : 約3.5時間
20251005 : 約3.5時間
学習内容
DMVPNのフェーズごとに最適なルーティングプロトコルの設定
DMVPN Phase1
Phase1を張る際、 ip nhrp map multicast dynamicは不要。
理由はHUBとしか通信しないため。
OSPF
-
動的に接続するという要件を守る必要がある。
ip ospf networkでは、
non-broadcastとpoint-to-multipoint non-broadcastは使用しない。
こちらは手動でneighborを使い、TCPで接続対象を指定しなければならない。 -
point-to-point とpoint-to-multipointはSpokeのネクストホップIPは保持しない。
なのでPhase1では適切なのだが、Hello-intervalが異なるため、変更が必要となる。 -
HUBを必ずDRにし、SpokeをDROTHERにしなければならない為、Spoke側にはip ospf priority 0 を設定する。
EIGRP
-
デフォルトではハブとなるR1はスポークであるR2から学習したプレフィックスをもう一つのスポークであるR3にアドバタイズできない。
これはスプリットホライズンにより、学習元から学習内容をアドバタイズできない為なので、
no ip split-horizon eigrp [AS Num]で無効化してやる必要あり。 -
プレフィックスの最適化がしたい場合、デフォルトルートだけ分かればいいのでスプリットホライゾンの無効化は不要。
iBGP
-
iBGPを行う場合はスポークルータ間でピアを結ばない為、フルメッシュにはならない。
そのため、スプリットホライゾンにより、各スポークルータ間のプレフィックスが学習できない問題を防ぐためにハブルータではRoute-Reflectorを設定する。 -
また、動的にBGPピアを張るため、以下の設定を投入する。
router bgp 100
neighbor spokes peer-group
bgp listen range 100.1.1.0/24 peer-group
-
100.1.1.0/24の範囲に対し、TCP/179でlistenを行い、TCP Synパケットが来た場合、その宛先とTCPを確立し、その後BGPピアも確立する。
-
あああ
eBGP(SpokeのASは全てユニーク)
- Spokeで使われるASが異なるため、複数のASに対してBGPの待ち受けを行う必要がある。
AS200, 300からTCP/179をリッスンするには以下のコマンドを実行する。
router bgp 100
neighbor spokes peer-group
bgp listen range 100.1.1.0/24 peer-group
neighbor spokes remote-as 200 alternate-as 300
- eBGPではデフォルトでネクストホップを変更せずに渡すため、HUBを経由する通信のネクストホップがスポーク宛てになることがある。(実際はSpoke to Spoke通信のトンネルはないため、ハブを経由して通信される。)
eBGP(SpokeのASは全て同一)
- スポークのASが同じ場合、Spoke(R2) - HUB(R1) - Spoke(R2)の通信を考えると、
AS230 - 100 - 230となり、ループしてしまう。
これを回避するためには、AS-PATHのループ検知機能を無効化する必要がある。
これは、スポーク側に設定する。
neighbor 100.1.1.1 allowas-in
Phase1構成を組む際に、IGPをOSPFにした時の注意点(DR,)
EIGRPにした時の注意点(Hubでsplit-horizonの無効化を行わないとルーティングの配布ができない。)
iBGPにした時の注意点(iBGPの場合、HUBをルートリフレクタにする必要がある。
動的にTCPで行われるBGPセッションを張る。)
eBGPにした時の注意点(eBGPの場合、
R2 とR3間は同一ASのため、AS-pathのループ防止機構で通信できなくなる。
そのため、別途対応が必要。
DMVPN Phase2
Spoke同士で直接通信できることを目標とする。
ip nhrp nhs 100.1.1.1 nbma 15.1.1.1 multicast
設定により、NHRPを使って動的にピアを張る形となる。
OSPF
- Phase1と同様
EIGRP
- split-horizonの無効化に加え、デフォルトでEIGRPはアドバタイズしたルートのNext-hopを書き換えるため、Next-hopの書き換え無効化が必要。
interface Tunnel100
no ip split-hosrizon eigrp 100
no ip next-hop-self eigrp 100
iBGP
eBGP(SpokeのASは全てユニーク)
eBGP(SpokeのASは全て同一)
- 上記3つのBGP設定はphase1から変更なし
- SpokeのLAN側プレフィックスのNext-hopはTunnnel-ipを学習しているため、問題なく通信可能。
DMVPN Phase3
HUBには ip nhrp redirectを設定
Spokeにはip nhrp shortcutを設定
デフォルトでip nhrp shortcutは設定されていることがある。
OSPF実装
ハブからスポークへのルーティング情報を完全に集約できないため、OSPFでの最適化は不適切。
OSPF
- ip ospf network broadcastを使う場合、ネクストホップが保持されることで、Phase3のip nhrp redirect / shortcutに頼らずスポーク間接続が実現される。
- これはPhase3の解決が冗長であり、ルーティングテーブルの変更が行われない可能性がある。
- また、point-to-multipoint, point-to-pointとの通信でも、ループ防止のため各エリア内のトポロジ情報を持っておくOSPFと、最低限でのルーティング情報だけ交換するPhase3の考えは食い合わせが悪い。
EIGRP
- NHRPを使って最低限のルート情報を通知・上書きするので、split-horizonの無効化やNext-hopの書き換えの無効化は不要。
iBGP
eBGP(SpokeのASは全てユニーク)
eBGP(SpokeのASは全て同一)
- 上記3つのBGP設定はphase1から変更なし