ICTSC2025 本戦 問題解説: [3520] 天下統一

概要

あなたはネットワークエンジニアとして入社して初めてBGPの設定を任せられました。設定も完了して無事にピアも上がり帰ろうとした時にBGPピアのダウンとアップのアラートが飛んできました。自分がさっき担当したものではないと思いたかったですが、残念ながら自分が設定したBGPピアからのアラートだったのでBGPピアがフラップしている原因を突き止めて解決してください。

topology

制約

  • 問題:Access Deniedの問題を解いてから解答すること
  • C841-01,02の設定を変更しないこと
  • 再起動しても設定が保存されていること
  • ケーブルの抜線をしないこと

初期状態

  • BGPピアがフラップしている

終了状態

  • 十分に長い時間でフラップが起きない

解説

今回の問題はMTUの不一致によりBGPピアがフラップしているという問題でした。
まず、BGPピアがフラップしている原因を整理していきたいと思います。OPEN Messageの交換によってBGP Peerは一度Establishしますが、その後にHold Timer Expired Errorが発生しピアがダウンするという繰り返しが起きていました。
原因はAX2430のMTUがその他の3つの機器と比べて小さかったことにあります。経路を送信するルータであるC841-1,2はMTUの値を1600と設定しており、AX2430はMTUの値が1500に設定されていました。
C841-1は多くの経路情報を1つのUPDATE Messageに載せて送信します。このUPDATE MessageのサイズがAX2430のMTU1500を超えてしまうのでパケットが破棄され、対向のC841-2までUPDATE Messageが届きません。
パケットが届かないのでC841-1ではUPDATE Messageの再送が発生し、KEEPALIVE Messageが後回しにされます。結果としてKEEPALIVEが相手に届かず、Hold Timerが過ぎてしまい、BGPピアがダウンします。その後再びOPEN Messageが送られてピアがアップしますが、同じ理由でまたダウンするというフラップが繰り返されていました。
なので、解決策として全てのリンクのMTUを1600に統一することになります。MTUを1600に揃えることでUPDATE MessageがAX2430で破棄されなくなり、フラップが解消され経路の交換も可能になります。

採点基準

  • MTUが全てのリンクで1600に揃っている
  • BGPフラップがhold timerを過ぎても起きていない(30秒以上Up状態)
  • 上記の2つを満たして300点

講評

今回、MTU1500以上のUPDATE Messageを作り出すためにC841-1に約800ほどのNull Routeを設定する必要がありました。また、参加者がログメッセージなどに気づける方にBGPタイマーを30秒という短い時間に設定したことにより大量のログが生まれる事態となりました。そのせいで、C841の動作が重くなったりとご迷惑をかけたことかと思います。再起動することで動作が軽くなることをこちら側で確認できたこともあり動作が重いという質問を受けた場合には再起動を勧めたり、2日目の開始時に運営一同がお掃除おばさんとして手元機器の電源を抜くということをしました。そういったイベントもお楽しみいただけたのなら幸いです。
今回の問題は、実際の運用の中で遭遇したものをそのまま使用しました。参加者の中にはAS運用をしている人がきっといることだろうと思いますので、BGPがフラップした際にはこの問題のことを思い出してMTUの不一致を疑ってみてください。