最も完成度の高いBGPルーティングプロトコルを詳しく解説-その4(計7)
・BGP ルーティングの最適化ルール
BGP ルーティング テーブルには、同じ宛先への複数のルートが存在する場合があります。この時点で、BGP はルートの 1 つを最適なルートとして選択し、このルートのみをピアに送信します。最適なルートを選択するために、BGP は、BGP ルート最適化ルールに従って、これらのルートの BGP 属性を順番に比較します。
BGP 属性
ルーティング属性は、ルーティングの特定の説明です。すべての BGP ルーティング属性は、次の 4 つのカテゴリに分類できます。
Well-known 必須: すべての BGP デバイスがこの属性を認識でき、Update メッセージに存在する必要があります。このような属性が欠落している場合、ルーティング情報は間違っています。
よく知られている任意: すべての BGP デバイスがこの属性を認識できますが、Update メッセージに存在する必要はありません。つまり、この属性が欠落していても、ルーティング情報は間違っていません。
オプションの移行: BGP 機器はそのような属性を認識しない場合があります. BGP 機器がそのような属性を認識しない場合でも、そのような属性を受信し、他のピアに通知します。
オプションの非推移的 (オプションの非推移的): BGP デバイスは、このタイプの属性を認識しない場合があります. BGP デバイスがこのタイプの属性を認識しない場合、それは無視され、他のピアに通知されません。
一般的に使用されるいくつかの BGP ルーティング属性を以下に紹介します。
1.オリジン属性
Origin 属性は、パス情報のソースを定義し、ルートが BGP ルートになる方法をマークするために使用されます。次の 3 種類があります。
IGP:優先度が最も高くなります。network コマンドによって BGP ルーティング テーブルに挿入されるルートの起点属性は IGP です。
EGP:第二優先。EGP を介して取得された経路情報の場合、その Origin 属性は EGP です。
未完了:優先度が最も低い。他の手段で学習したルーティング情報。たとえば、import-route コマンドを使用して BGP によってインポートされたルートの起点属性は不完全です。
2.AS_Path 属性
AS_Path 属性は、ルートがローカル アドレスから宛先アドレスまで通過するすべての AS 番号をベクトル順に記録します。ルートを受信するときに、デバイスが AS_Path リストで独自の AS 番号を見つけた場合、デバイスはルートを受信しないため、AS 間のルーティング ループが回避されます。
BGP スピーカーが自身によってインポートされたルートを伝播する場合:
BGP スピーカーがこのルートを EBGP ピアにアドバタイズすると、更新メッセージでローカル AS 番号を含む AS_Path リストが作成されます。
BGP スピーカーがこのルートを IBGP ピアにアドバタイズすると、更新メッセージに空の AS_Path リストが作成されます。
BGP スピーカーが他の BGP スピーカーの Update パケットから学習したルートを伝播する場合:
BGP スピーカーがこのルートを EBGP ピアにアドバタイズすると、ローカル AS 番号が AS_Path リストの先頭 (左端) に追加されます。このルートを受信した BGP デバイスは、AS_Path 属性に従って、宛先アドレスに通過する AS を知ることができます。ローカル AS に最も近い隣接 AS 番号が最初にリストされ、他の AS 番号が順番にリストされます。
BGP Speaker がこのルートを IBGP ピアにアドバタイズする場合、このルートに関連する AS_Path 属性は変更されません。
3.Next_Hop 属性
Next_Hop 属性は、ルートのネクスト ホップ情報を記録します。BGP のネクスト ホップ属性は IGP とは異なり、必ずしも隣接デバイスの IP アドレスではありません。通常、Next_Hop プロパティは次の規則に従います。
BGP スピーカーが EBGP ピアにルートをアドバタイズすると、ルート情報のネクスト ホップ属性が、ローカル エンドとピア エンドの間で BGP ネイバー関係を確立するインターフェイスのアドレスに設定されます。
BGP Speaker は、自発経路を IBGP ピアに広告する際、ルーティング情報のネクストホップ属性を、自端とピア端との間で BGP ネイバー関係を確立するインタフェースのアドレスに設定します。
BGP スピーカが EBGP ピアから学習した経路を IBGP ピアに広告する場合、経路情報の next-hop 属性は変更されません。
4.Local_Pref 属性
Local_Pref 属性は、ルーターの BGP プリファレンスを示します。これは、トラフィックが AS を離れるときに最適なルートを決定するために使用されます。BGP デバイスが、異なる IBGP ピアを介して宛先アドレスが同じでネクスト ホップが異なる複数のルートを取得する場合、Local_Pref 属性の値がより高いルートが優先されます。Local_Pref 属性は IBGP ピア間でのみ有効で、他の AS には通知されません。Local_Pref 属性は手動で構成できます. ルートに Local_Pref 属性が構成されていない場合, ルートの Local_Pref 値は BGP ルート選択時にデフォルト値の 100 として処理されます.
5.MED 属性
MED (Multi-Exit-Discriminator) 属性は、AS に入るトラフィックの最適なルートを決定するために使用されます. BGP を実行しているデバイスが、異なる EBGP ピアを介して同じ宛先アドレスで異なるネクスト ホップを持つ複数のルートを取得する場合、他の条件が同様に、MED 値が小さい方のルートが最適なルートとして選択されます。
MED 属性は、隣接する 2 つの AS 間でのみ送信され、この属性を受信した AS はそれを他のサードパーティ AS に通知しません。MED 属性は手動で設定できます. ルートが MED 属性で設定されていない場合, BGP ルート選択時にルートの MED 値はデフォルト値の 0 として処理されます.
6.グループ属性
コミュニティ属性 (Community) は、同じ特性を持つ BGP ルートを識別するために使用されます。これにより、ルーティング ポリシーの適用がより柔軟になり、保守と管理の難しさが軽減されます。
7. Originator_ID 属性と Cluster_List 属性
Originator_ID 属性と Cluster_List 属性は、ルート リフレクタのシナリオでループの問題を解決するために使用されます. 詳細については、「ルート リフレクタ」を参照してください.
BGP ルート選択
同じ宛先へのルートが複数ある場合、BGP は次の属性を順番に比較してルートを選択します。
1.最高のローカル プリファレンス (Local_Pref) を持つルートを優先します。ルートにローカル優先度がない場合、ルートは BGP ルート選択時にデフォルトのローカル優先度 100 に従って処理されます。
2.集約されたルート、自動で集約されたルート、network コマンドによってインポートされたルート、import-route コマンドによってインポートされたルート、ピアから学習したルートを順番に優先します。
3.AS パス (AS_Path) が最も短いルートを優先します。
4.Origin タイプが IGP、EGP、Incomplete の順にルートを選択します。
5.同じ AS からのルートの場合、MED (Multi Exit Discriminator) 値が最も低いルートが優先されます。
6.EBGP ルート、IBGP ルート、LocalCross ルート、RemoteCross ルートを順に選択します。
PE 上の VPN インスタンスの VPNv4 ルートの ERT は、他の VPN インスタンスの IRT と一致し、LocalCross と呼ばれる VPN インスタンスにコピーされます。リモート PE から学習した VPNv4 ルートの ERT は、VPN の IRT と一致します。インスタンスにコピーされ、VPN インスタンスにコピーされます。
7.最小の IGP メトリックを持つ BGP ネクスト ホップへのルートを優先します。
補足:
IGP では、同じ宛先アドレスへの異なるルートについて、IGP は独自のルーティング アルゴリズムに従ってルートのメトリック値を計算します。
8.Cluster_List で最短ルートを選択します。
9.最小のルーター ID を持つデバイスによってアドバタイズされたルートを優先します。
補足:
ルートが Originator_ID 属性を持っている場合、Originator_ID のサイズはルート選択時に比較され (RouterID は比較されなくなります)、最小の Originator_ID を持つルートが選択されます。
10.最小の IP アドレスを持つピアから学習したルートを優先します。