こんにちは。izuminです。
JANOG55ではNETCONが開催されました。
https://www.janog.gr.jp/meeting/janog55/nl-003/
今回も前回に続きスタッフとして問題を作成したので解説します!
ここでは私が作成した5問のうちLevel 3-1を解説します。
その他の4問はこちら。
Containerlab再現用 https://github.com/izumin-baal/nwlab
問題
【手動採点問題】
あなたはとあるコンテンツ事業者のネットワークを運用しています。
東京と大阪にサーバーファームを持っており、各拠点でサービスが動いています。
NWの構成を検証環境で確認していたところ、東阪の回線が切断された際に問題があることが発覚しました。
通信によってはSV-ISPからSV-0[12]に対して通信ができなくなってしまうことがあるようです。
そのような事が起きないように是正し、 原因と是正した内容を記載してください。
=========
RT-ISPは下記のコマンドだけ実行可能です。
– show ip bgp
– show ip route
=========
達成条件
- RT-03 ~ RT-7 区間の回線がDownしてもSV-ISPから各サービスへの通信がDropされないようにしてください。
- ISPと接続しているPeerルータは1台故障しても問題ないように設定してください。2台同時に壊れるケースはない想定です。
制約
- サービスに割り当てられたIPアドレスを変更してはいけません。
- SV-01 ~ SV-02 の通信はインターネットを経由してはいけません。
- インターネット向けの拠点冗長はしなくてよいです。(RT-0[12]がDown時は192.0.2.0/24はDownでOK)
解説-概要
この問題は特定の状況で問題が発生する理由の特定と是正を行う唯一の手動採点問題となります。
ISPに対して東京と大阪から全く同じ経路を広報する構成になっていますが、
東西の専用線が全断してしまった際に同じように広報し続けることにより、
一部トラフィックがブラックホールとなってしまいます。
上記の点について述べた上で広報を変更する設定があれば正解としています。
ex) Null0 Staticの削除 / 各拠点の経路を出すようにFilterの変更( metric / AS_PATH / from protcol)
東西のケーブルが切断されてもISPに同じ経路を広報し続けてブラックホールになってしまう。
## RT-0[12] ##
delete policy-options policy-statement BGP-ISP-OUT term ORIGIN from prefix-list AS64500_WEST
delete routing-options static route 203.0.113.0/24
## RT-0[56] ##
delete policy-options policy-statement BGP-ISP-OUT term ORIGIN from prefix-list AS64500_EAST
delete routing-options static route 192.0.2.0/24
別解
## RT-0[1256] ##
set policy-options policy-statement BGP-ISP-OUT term ORIGIN from protocol bgp
set policy-options policy-statement IBGP term ALLOW from protocol bgp
解説-詳細
まず初めに初期のトラフィックのフローを見てみます。
実はこの問題最初からトラフィックフローとしては綺麗な状態ではありません。
行きと帰りで異経路になることもあります。
RT-ISP#show ip bgp
Network Next Hop Metric AIGP LocPref Weight Path
* >Ec 192.0.2.0/24 198.51.100.10 100 - 100 0 64500 i
* ec 192.0.2.0/24 198.51.100.14 100 - 100 0 64500 i
* ec 192.0.2.0/24 198.51.100.18 100 - 100 0 64500 i
* ec 192.0.2.0/24 198.51.100.6 100 - 100 0 64500 i
* > 198.51.100.0/24 - - - - 0 ?
* >Ec 203.0.113.0/24 198.51.100.14 100 - 100 0 64500 i
* ec 203.0.113.0/24 198.51.100.18 100 - 100 0 64500 i
* ec 203.0.113.0/24 198.51.100.10 100 - 100 0 64500 i
* ec 203.0.113.0/24 198.51.100.6 100 - 100 0 64500 i
問題になるパターンをみてみます。
今回問題になるのは東西のケーブルが切断される際です。
Peering用のボーダールータにおいてNull0 Staticが設定されています。
これは拠点内のBGPのばたつきによりインターネットへの広報がばたつくのを防ぐために定義しています。
しかしながら、残念なことに各拠点に全ての経路を記載しているため、
入ってきて欲しくない拠点からも入ってきてしまいます。その結果東西が切断されると
Discardsすることになります。
したがって、ボーダールータにてインターネットへの広報を自拠点の経路だけにすることが
この問題の正答となります。Filterでfrom bgpのみにする方法も達成条件を満たすので正解です。
## RT-0[12] ##
delete policy-options policy-statement BGP-ISP-OUT term ORIGIN from prefix-list AS64500_WEST
delete routing-options static route 203.0.113.0/24
## RT-0[56] ##
delete policy-options policy-statement BGP-ISP-OUT term ORIGIN from prefix-list AS64500_EAST
delete routing-options static route 192.0.2.0/24
RT-ISP#show ip bgp
Network Next Hop Metric AIGP LocPref Weight Path
* >Ec 192.0.2.0/24 198.51.100.10 100 - 100 0 64500 i
* ec 192.0.2.0/24 198.51.100.6 100 - 100 0 64500 i
* > 198.51.100.0/24 - - - - 0 ?
* >Ec 203.0.113.0/24 198.51.100.14 100 - 100 0 64500 i
* ec 203.0.113.0/24 198.51.100.18 100 - 100 0 64500 i
追加の話
今回制約で1台までの障害に耐えられる設計としており、拠点冗長は不要と記載をしました。
拠点冗長をする場合は考えることが増えます。
インバウンドの制御
インターネット→拠点向けのトラフィックはECMPではなくAS_PATHにより優先度をつけた上で、
両拠点から広報します。MEDは今回効きますが効かない場合もあるのでAS_PATHが良さそうです。
例えば東京の場合 AS_PATHを下記のように広報する設定に変更します。
192.0.2.0/24 64500
203.0.113.0/24 64500 64500 64500
するとRT-ISPからのトラフィックはそれぞれ正しい拠点に向くようになり、
ボーダールーター2台Down時のみトラフィックを受け入れることが可能です。
アウトバウンドの制御
こちらは考えることが増えます。
1つ目はデフォルトルートの存在です。現状ボーダールーターで0.0.0.0/0を生成して内部に広報しています。
ボーダールーター2台が綺麗にDownした場合は良いですが、ISP向けだけ全断するとどうなるでしょうか。
AS_PATHに基づいてISP経路がDownしているボーダールーターまで上がってきてDropされてしまいます。
したがって、0.0.0.0/0 Static RouteをISPに向けるなどしてDown時に広報が止まる設計に変更が必要です。
2つ目は東西の経路交換です。
現状拠点同士の経路しか広報していません。他拠点からインターネットに抜ける必要がある場合は
0.0.0.0/0 を許可する設定が必要になります。
この問題は以上になります!
みなさんの回答とても楽しく採点させていただきました。
自動採点の問題と少し違って考えも述べてもらう問題はいかがだったでしょうか?
意図を汲み取っていただきありがとうございます。