BGP Path Hunting
withdraw updateのような経路を消したい際になかなかBPG updateが収束しないという問題。
BGPが受け取ったどれか一つのパスでも有効ならそれを採用するという仕様とベストパスしか広報しないという仕様
これは一つの経路にたいして複数の経路がある場合に発生する。リンク密度の高いClosで顕著になる。
またインターネット上でもしばしば発生する問題でもある。
参考
Convergence = (Maximum AS_PATH – Minimum AS_PATH) x MRAI
MRAIはMinimumRouteAdvertisementInterval はBGPアップデートを送出するまでの最小時間
インターネット上でBGPを使う際に即座にBGPアップデートをおくると非効率
経路フラップになるとBGPの負荷が増えるため
そのためバッファリングの時間として作られたのがMRAI
MRAIはcisco IOSだと30秒程度。
Nexusとか最近の機材だと0秒。
性能が向上している点や、そもそもインターネット向けルータかどうかがデフォルト挙動の違い
例として挙がっているのはBGP withdraw updateが発生した際にそれがなかなか全体のネットワークから消えないという話。
本当に経路が消えるにはribに乗っているすべての関連パスのBGP speackerからwithdraw updateが来ないと消えないのが原因
単純に考えると最後の伝搬ルーターまでの間に存在するルーターのMRAIの合算値が収束時間になる
tree構造のような対象のNodeにたどりつくのに一つのパスしかないならこの問題は発生しない
closのような一つのNodeに到達するのに複数パスがあり巡回経路が発生しているような密度の高いネットワークだと発生しやすい。
Closトポロジーでの対策としてはMRAIをなくしたり、同じASNをspinに割り振ればよい。
spinに同じASNを振ることでBGPのループ防止機能によりCLOSでの循環経路がspinのRIBにのらなくなるのでBGP path huntingを予防できる。
インターネットの場合は・・・どうするんすかね。
インターネットは複数社のASが絡む上に基本的に長距離回線をいくつも通る
ある程度のMRAIが無いと微妙な壊れ方をした際にインターネット全体で無駄なUpdateが走りまくってむしろ経路が不安定になってしまう。
結論としてはインターネット向けの部分は自社だけでMRAIを小さくしても恩恵は小さいし、ある程度諦めるほかない。