前置き
この記事はネットワークエンジニア2年目のぺーぺーがこんな動作するんだ!という発見をまとめた記事です。
ご指摘あればバンバンお願いします…
P.S.アドベントカレンダーに意気揚々と登録したものの、業務繁忙で記事が書けず、挙句に当日39度の熱を出し当日出せませんでした…
ごめんなサイ
用語集
- IPアドレス:ネットワークにおける住所みたいなもの。192.168.0.1みたいな表記
- 経路:特定のIPアドレスへたどり着くまでの道のり
- BGP(ボーダーゲートウェイプロトコル):「BGP使っているIPアドレス同士がフルメッシュな感じでお互いのIPアドレスへの行き方を教え合う」仕組み
- 広報:BGPなどのプロトコルで経路を教え広めること
- AS:組織のネットワークごとに持っている番号のこと。
社用携帯の070-1111-****の1111までみたいなもの? - BGPテーブル:BGPで広報されてきた情報をまとめた行き方リストみたいなやつ
概要
BGPというプロトコルを使ってネットワークを構築してたら、構築範囲外に同じAS番号のルータがいて、正常に経路が広報されなかった
なんでいたのかはお察しください。
説明
ネットワークエンジニアの皆様はご存じかと思いますが、ネットワークではパラメタの被りNGなものがいくつかあります。
例えば:IPアドレス、AS番号etc...といってもパッと出るのはこのくらいだった。ルータIDとかもそうかも
今回はそのうちのAS番号が被ってしまい、正常ではない動作をしてしまいました。
両端のルータでAS1111から広報されている経路がBGPテーブルに載らなくなりました。
BGPの属性(パラメタというか情報)として、AS Pathというものがあります。
経路がどこから広報されてきたかのルートを示すもので、通ってきたASの番号がズラズラ~ッと並びます。
例えば)1111 2222 3333 ...... i
この時、自分のAS番号がASPath内に含まれていた場合、「あ!自分が広報してる経路じゃん!ループしないように破棄しよ!」と判断して
自分のBGPテーブルに載せないようにしてるんですね。
その結果ルータが本来受けているであろう経路は全て破棄されてしまい、「いやそんな経路知らんけど?」となってしまったわけです。
解決方法
同じネットワーク内に同じAS番号が存在しなければいいです。
要はルータ1か3をAS1111でなくせばいいんですが、今回は事情がありその対策はとれませんでした。
そこで考えた方法が、AS1111同士の間どこかでBGPのやり取りをできないようにすること。
例えば)ルータ2とルータ3の間でBGPを使わず、スタティックルーティングする
こうすることでAS1111から経路を広報されることはなくなり、無事経路を受け取れるようになりました。
思ったこと
実際に検証とか何故受け取れないかとか考えるのは新鮮でした。
BGPについては触れる機会が多いほうですが、2年目として学んだ知識を元に仕組みの理解ができるようになっている、と
ちょっとだけ感動した記憶があります。
引き続きネットワークの勉強続けたいなと思う所存です。
今考えたらRIB見ればすぐ分かったんじゃね?って思ったけど、まあいいか。
そもそも破棄される経路はRIBに載ってるのだろうか
まとめ
BGPのAS番号重複には気を付けよう!!!!!!!
次記事書くときはきっと実機のログも入れてるんだろうな~~~
私はクリスマスも正月も自宅に監禁されることになりましたが、おとなしくクラナド全話見てギャン泣きしようと思います。
皆様も良いお年を。