BGP multipath
BGPのmultipathに関連する何か。
ECMP
なおこれはJuniper,Ciscoの実装で条件がかわる。
以下のはCiscoの例。
条件
BGP bet-path selectionの優先度は次とおり。
1  Cisco独自のWEIGHTアトリビュートが最も大きいルートを優先
2  LOCAL_PREFアトリビュートが最も大きいルートを優先
3  ローカルルートが発生元であるルート(networkコマンドで生成したルート)を優先
4  AS_PATHアトリビュートが最も短いルートを優先
5  ORIGINアトリビュートが最も小さいルートを優先( IGP < EGP < Incomplete )
6  MED(MULTI_EXIT_DISC)アトリビュートが最も小さいルートを優先
7  IBGPで学習したルートよりもEBGPで学習したルートを優先
8  ネクストホップに対して最小のIGPメトリックを持つルートを優先
9  EBGPネイバーから受信したルートのうち、最も古いルート(先に受信したルート)を優先
10  ルータIDが最小のBGPピアから受信したルートを優先
11  BGPピアのIPアドレスが最小のルートを優先
BGPでmultipathになるには9より上の条件が全て一致しているという条件がいる。つまりAS_PATH, ORIGIN, MED,が完全に一致していないといけない。
よくある間違いとしてAS_PATHの長さが一緒でもその経路が一致していなければmultipathになはならい。
AS PATHが違う場合でもAS PATH長が同じならECMPを可能にする設定multipath relaxもある。
通常のインターネット向けルーターでこれを有効にするとパケット(フロー毎)に経路がことなることになる。
ただでさえ不安定で障害がおいにくいインターネット経路障害時の影響を受けやすくなることに繋がる
一般的にはインターネットルーターでの有効化はあまりお勧めできないか。
やはり帯域が十分にあるなら不要な設定だろう。
CLOSネットワークだとラック毎にASが違うのと複数ASで同じIP(/32)でバランスするので必須。
CLOSだとDC内通信なので自分たちで影響範囲の特定がしやすいのと、そもそも帯域を稼ぐ必要があるので