経路が受け取れない!
解いた人:nonnonno
参照した問題・解説のサイト:経路が受け取れない!
使用環境・ツール
- ルータ
- BGP (経路制御プロトコル)
問題文でされた操作
経路が受け取れない!の一枚目の画像を参照
AS65000, AS65001, AS65002に所属するルータを3つ作成し、これらのルータ全てからフルルートをAS65010宛に流した。
バグの内容
なぜかAS65010に所属するルータで経路を受け取れない
理想の終了状態
AS65010に所属するルータにおいて、3つのルータ全てからのフルルートを受信したい
そもそもBGPとは
Border Gateway Protocolの略称で、パケットの宛先を正確に把握し、維持していくための経路制御を行うための代表的なプロトコル。
BGPは、経路制御を行う組織ごとにインターネットの世界で唯一の番号が割り当てられ、個々の経路を識別するという特徴があるため、組織内での設計と機器の準備だけでは利用することができない。
その唯一の番号はAS (Autonomousu System) 番号と呼ばれ、IANA (Internet Assigned Numbers Authority) が管理する。
AS番号とIPアドレスの割り当てを受けた後、上流ISPや経路情報を持つ相互接続点であるIXに接続が必要である。
その後に、自組織のBGPルータと接続先ルータ間でピアと呼ばれる経路交換を行う設定を行う。
BGPの経路制御はこのピアを通して行われる。
ピア設定後、自組織のIPアドレスを接続先へピアを通して通知する必要があり、このことを「アドレスをアナウンスする」と言う。
ちなみに、アナウンスだけでなく、上流ISPからインターネット上の経路を取得することも必要。
BGPルータはピアを確立するために、メッセージ形式で機能情報を交換し続ける。
なお、BGPはマルチキャストで動的にネイバーを自動検出することはできず、自分のAS内のネットワークをBGPルートとしてアドバタイズするときはnetworkコマンドを使用する。
networkコマンドで通知するためには、前提としてそのルートをルーティングテーブルで学習していることが必要。
自分のAS内のネットワークを通知する必要がない場合には、networkコマンドの設定は不要。
考えられる検証、修正手順
-
ハードが正常に動いていない
- dmesgコマンドなどでハードウェアの動作を確認する
- BGPのデーモン自体が動いていない可能性がある BGP有効化など設定
-
経路情報が間違っており、通信ができていない/ルーティングテーブルが間違っている
-
その他トラブルシューティングの原因切り分け手順は以下のリンク
BGPルートがアドバタイズされない場合のトラブルシューティング、Cisco
解説
解法
- /var/log/messageを確認し、ルータのエラーメッセージが表示されていることを確認
- vyos(ルータなどの機器が利用するネットワークOS)によるBGPプロセス全体が停止していることを
$ show ip route
でBGPが有効ならば、対向ルータとのBGP stateがEstablishedであり、広報されている経路情報を新しく受け取っていることがわかる- VyosによるBGP設定、ISP構築手順のコマンド参考、朝日ネット
- (今回はBGPが無効になっており、)外部からあまりにも経路広告が行われ、メモリがオーバーフローしていることを認識(予備知識?)
得点ポイント
- BGPデーモンが停止している
- 経路が多すぎてメモリがオーバーフローしている