BGP

BGP パスアトリビュート ベストパスの選択アルゴリズム

BGP パスアトリビュート( Path attribute )

BGPでは経路を交換するのに、BGPメッセージのUpdateメッセージで行います。(BGPMessageの詳細はこちら)
経路には、パスアトリビュート( Path attribute )が付与されます。BGPの経路選択には、このパスアトリビュート情報を元に決定されます。

BGP パスアトリビュートの種類

BGPにパスアトリビュートがありますが、下記のように部類することができます。

カテゴリー 意味
Well known Mandatory 全てのBGPルータが識別でき、必ずUpdateメッセージに含まれてる。
Well known Discretionary 全てのBGPルータが識別でき、Updateに含まれるかは任意
Optional Transitive 実装によっては識別できない可能性がある。その場合でも、他BGPネイバーには通知する。
Optional Non Transitive 実装によっては識別できない可能性がある。その場合には、他BGPネイバーには通知しない。

BGP パスアトリビュートの一覧

BGP パスアトリビュートには以下のようながあります。各アトリビュートについては各ページに詳細を紹介しています。

Type Code パスアトリビュート 属性
1 ORIGIN Well known Mandatory
2 AS_PATH Well known Mandatory
3 NEXT_HOP Well known Mandatory
4 MULTI_EXIT_DISC Optional Non Transitive
5 LOCAL_PREFERENCE Well known Discretionary
6 ATOMIC_AGGREGATE Well known Discretionary
7 AGGREGATOR Optional Transitive
8 COMMUNITY Optional Transitive
9 ORIGINATOR_ID Optional non-transitive
10 CLUSTER_LIST Optional non-transitive
Cisco独自 WEIGHT

ベストバスの選択アルゴリズムについて

BGPでは、宛先に複数のパスがある場合はBGPテーブルに格納して、その中から1つだけを選択してルーティングテーブルに格納します。選択したパスの事をベストパスと呼ばれます。
下記はベストパスを選択するアルゴリズムについて紹介します。(下記はCiscoのベストパスアルゴリズムになります。)

  1. (前提)NEXT_HOPのIPアドレスに到達できること
  2. WEIGHTが最大のルートを優先
    Cisco独自の実装です。
  3. LOCAL_PREFERENCEが最大のルートを優先
  4. ローカルルータが発生元であるルート(networkコマンドで選択しています)を優先
  5. AS_PATHが最も短いルータを優先
    AS_PATHが最も短いルータを優先します。すなわち、AS_PATHのアトリビュートにAS番号の数が少ないルートを優先します。bgp bestpath as-path ignoreを設定することでAS_PATHをベストパスの決定に利用しない設定に変更することが可能です。
  6. ORIGINが最小のルータを優先( IGP < EGP < Incomplete )
  7. MULTI_EXIT_DISCが最小のルートを優先
  8. IBGPで学習したルータ情報よりEBGPで学習したルートを優先
  9. NEXT_HOPへ最短で到達できるルートを優先
    NEXT_HOPのIPアドレスにルーティングテーブルのIGP(OSPFなど)のメトリックを比較して最小のルータを優先させます。
  10. EBGPピアから受信したルートのうち、最も受信した時間が経過している(先に受信したルート)ルートを優先
  11. ルータIDが最小のBGPピアから受信したルートを優先
  12. BGPピアのIPアドレスが最小のルータを優先
    同一ルータと複数IPアドレスを利用してネイバーを確立している場合ルータIDも同一になり、ネイバーのIPアドレスが最小のアドレスを優先

スポンサーリンク

参考

下記はUpdateメッセージ 10.0.0.0/16 に下記のアトリビュートが付与されている状態のパケットキャプチャーになります。

上記の10.0.0.0/16には下記のパスアトリビュートが格納されていることがわかります。

Type Code パスアトリビュート 属性
1 ORIGIN IGP(0)
2 AS_PATH 10 10 10
3 NEXT_HOP 10.20.0.1
4 MULTI_EXIT_DISC (MED) 1000
5 LOCAL_PREF 200

その他BGP解説ページ

ネットワーク解説 BGP ( Border Gateway Protocol )

パスベクタ型のダイナミックルーティングプロトコル BGP ( Border Gateway Protocol ) を解説します。 BGP解説記事 BGPとは BGP Message (メッセージ) B ...

その他ネットワーク解説ページ

ネットワーク解説

ネットワークの動作やプロトコルを解説していきます。主にCiscoIOSを利用して解説します。できる限りパケットキャプチャーファイルなどを添付して、プロトコルのシーケンスなどを確認できるようにしたいと思 ...

-BGP
-

© 2020 インフラエンジニアのメモ帳