10 個の BGP パス属性とその変更方法の紹介。

1. 属性の分類

認識された属性

(すべての BGP ルートが認識する必要がある属性)

  • Well-known Mandatory (Well-known Mandatory) すべてのルートで必ず保持される属性。
  • Well-known Discretionary (Well-known Discretionary) は、属性を含めるかどうかを自由に選択できます。

オプションの属性

(BGPルーターでは認識されない場合があります)

  • Optional Transitive はこの属性を認識しないため、この属性を持つルートを転送し続けます。
  • Optional Non-transitive (Optional Non-transitive) はこの属性を認識しないため、この属性を運ぶルートの転送を続行しません。

2. 属性項目

認識されたものは準拠する必要があります: Origin、AS_Path、Next_Hop

任意として認識:Local_Preference、Atomic_aggregate

オプションのトランジション: アグリゲーター、コミュニティ

オプションの非移行: Med、クラスターリスト、発信者 ID

ここに画像の説明を挿入

3、属性の詳細

義務として認識されている

名前: オリジン

機能: BGP ルートの発信元と、BGP ルートがどのように生成されたかを識別します。

導入:

1. Origin の表現は i、e、? の 3 種類に分かれています。

ここに画像の説明を挿入

2. 同じ宛先への Origin 属性が異なる複数のルートがあり、その他の条件が同じ場合、BGP は、Origin の順にルートを最適化します。IGP > EGP > Incomplete、つまり、i > e > ?。

3. パス属性を表示するにはどうすればよいですか?display bgp routing-table

以下の図の赤いボックスで、Path は Origin に似ています。

1. デフォルトでは、IBGP から生成されたルートのパスは空ですが、EBGP からインポートされたルートのパスには AS 番号が含まれます。

2. 原点は i で、IBGP または EBGP から学習したルーティング エントリを示します。

ここで EGP と EBGP を混同しないでください。EGP は、AS 自律システム間でルーティング情報を交換するための初期のプロトコルであり、BGP の前身です。

ここに画像の説明を挿入

AS_パス

名前: AS_Path パス

機能: ターゲット ネットワークにアクセスするときに通過する必要がある AS 番号のリストを特定します。

導入:

1. AS_Path 300 200 100 を例にとると、ルートは AS100 から生成され、AS200、AS300 を経由して、最終的にローカル ルータに到達します。

2. AS_Path は渡された AS 番号を記録するため、AS100 のルートが AS100 に戻されると、AS_Path には独自の AS 番号が含まれるため、そのルートは破棄されます。これは、BGP の一般的なアンチリング属性です

3. AS_Path は通過する AS を識別します。同じ目的で 2 つの BGP ルートを学習する場合、他の属性が同じで AS_Path が異なる場合、AS_Path 内の AS 番号は少ないほど良いです。AS_Path が短いルートの方が優先されます

4. AS_Path のタイプには、一般的に使用されるAS_SEQENCEおよびAS_SETが含まれます。

 AS_SEQENCE 表現方法:AS_PATH=300 200 100

 AS_SETの表現方法:AS_PATH=300 {100,200}

AS_SET はどのような状況で表示されますか?

  • BGP ルートが集約されるときに発生します。

  • ルートアグリゲーションは、機器の負荷を軽減することと、詳細な経路情報を隠蔽してルートのフラッピングの影響を軽減することの2つの問題を解決します。ただし、ルートが集約されると AS_Path 属性が失われ、ループが発生する危険性があるため、AS_SET タイプの AS_Path 属性を使用して集約前の AS パス情報を伝えることができます。

  • ルート集約が発生した後、ループを防ぐために集約されたルートがすべての詳細ルートの AS_Path 属性で伝送される AS 番号を伝送する必要がある場合は、集約を設定するコマンドに as-set パラメータを追加します。

  • AS_PATH の後ろの {} は、渡された AS 番号を示します。このセット内の AS 番号は連続していません。これは主にループを防ぐために使用されます。

  • 次の図に示すように、R3 は R1 と R2 の経路を集約し、AS300 に分類された集約された経路を R4 に渡します。

ここに画像の説明を挿入

Next_Hop

名前: Next_Hop ネクストホップ

機能: ターゲット ネットワークに到達するためのネクスト ホップ アドレスを指定するために使用されます。

導入:

さまざまなシナリオで、デバイスは次のルールに従って BGP ルートのデフォルト Next_Hop 属性値を設定します。

1. BGP ルーターがIBGPまたはEBGPピア にルートをアドバタイズする場合、ルートのNext_Hopを、ローカル エンドとピア エンドの間に BGP ネイバー関係を確立するインターフェイスのアドレスに設定します

 2. ルータは EBGP ルートを受信し、それを他の IBGP ピアに転送した後、ルートの Next_Hop 属性の値を変更しないままにします。

 3. ルーターが BGP ルートを受信した場合、そのルートの Next_Hop 属性値が EBGP ピア (更新オブジェクト) と同じネットワーク セグメントに属している場合、ルートの Next_Hop アドレスは変更されず、その BGP ピア本体に渡されます。【FAアドレス機能と同様】

以下に示すように:

(1) R3 は、R2 によって 10.0.123.2 に送信された 10.0.2.0/24 宛ての EBGP ルートのネクスト ホップを受信します。

(2) R3 が、ネクスト ホップ 10.0.123.2 を持つ 10.0.2.0/24 への EBGP ルートが R1 に渡されたことを学習すると、ネクスト ホップは次の条件を満たすため、R1 との EBGP ネイバーを確立するアドレスに変更されません。 Next_Hop 属性 **「Next_Hop 属性値と EBGP ピア (更新オブジェクト) が同じネットワーク セグメントに属している場合、このルートの Next_Hop アドレスは変更されず、その BGP ピアに渡されます。」**

ここに画像の説明を挿入

恣意的なものとして認識される

ローカル設定

名前: Local_Preference ローカル設定

機能: AS 内のルータに、どのパスが AS から離れるための優先パスであるかを伝えるために使用されます。

導入:

1. Local_Preference 属性の値が大きいほど、ルートはより適切になります。デフォルトの Local_Preference 値は 100 ですが、これはポリシー ルーティングを通じて変更できます。

ここに画像の説明を挿入

2. この属性はIBGP ピアにのみ渡すことができ、EBGP ピアには渡すことができません。Local_Preference を運ぶルートが EBGP ピア間で受信された場合、エラー処理が実行されます。

質問: LP 値を EBGP に渡せない場合、EBGP は LP 値を持っていますか?

 ルータが EBGP ピアにルート更新を送信するとき、Local_Preference 属性を運ぶことはできませんが、ピアが Route を受信すると、ローカルでデフォルトの Local_Preference 値 (100) をルートに割り当て、そのルートを独自のルートに渡します。 IBGPピア。

アトミック集合体

名前: Atomic_aggregate 集約タグ

機能: 早期警告マークに相当するだけで、情報は持たず、主に経路が集約されたことをルータに伝えます。

導入:

1. ルーターが BGP ルート更新を受信し、そのルートが Atomic_Aggregate 属性を持っていることを検出すると、そのルートが path 属性を失った可能性があることがわかります。このとき、ルーターはそのルートを他のピアにアドバタイズします。ルートは保存する必要があります

オプションのトランジション

アグリゲータ

名前: アグリゲーターの集約識別子

機能: ルート集約動作がどの AS とどの BGP ルーターで発生するかをマークします。

導入:

1.ルート集約操作を実行するルーターは、集約されたルートにアグリゲーター属性を追加し、ローカル AS 番号自身のルーター IDをこの属性に記録します。これにより、他のルーターは、どの AS とどの BGP ルーターで集約が行われたかを知ることができます。アグリゲーターの優れた者。
ここに画像の説明を挿入

コミュニティ

名前: コミュニティコミュニティの価値

機能: ルーティング マーク。主に、BGP ルーティング制御を容易にするためにインポートされたルートをマークします。

導入:

1. Community 属性値の長さは 32bit、つまり 4Byte です。2 つの形式で利用可能:

 10 進整数形式。

 AA: NN 形式。AA は AS 番号を表し、NN はユーザー定義の番号です。

ここに画像の説明を挿入

2. これに加えて、デフォルトのコミュニティ値があります。

コミュニティ属性名 グループ属性番号 説明する
インターネット 0(0x00000000) この属性を持つルートを受信した後、デバイスはそのルートを任意の BGP ピアに送信できます。デフォルトでは、すべてのルートはインターネット コミュニティに属します。
いいえ_広告する 4294967042(0xFFFFFF02) デバイスがこの属性を持つルートを受信した後は、そのルートをどの BGP ピアにも送信しません。
いいえ_エクスポート 4294967041(0xFFFFFF01) デバイスがこの属性を持つルートを受信した後は、そのルートを AS から送信しません。
No_Export_Subconfed 4294967043(0xFFFFFF03) デバイスがこの属性を持つルートを受信すると、そのルートを AS の外に送信したり、AS 内の他のサブ AS にルートをアドバタイズしたりすることはありません。

オプションの非移行

名前: 医療費

機能: AS に入る外部ピアへの優先パスを示すために使用されるメトリック値。

導入:

1. AS への入口が複数ある場合、AS は MED を使用して、他の AS によって選択されたパスに動的に影響を与えることができます。

 MED 属性の値はコストと一致するため、MED が小さいほど、BGP ルートは優れています。デフォルト値は 0 です。

2. MED は主に AS 間の BGP ルート選択に影響を与えるために使用されます。MED が EBGP ピアに渡された後、ピアは AS でルートを渡すときに MED 値を伝えますが、再度 EBGP ピアにルートを渡すときはデフォルトで MED 属性を伝えません。

[下図に示すように、R4 は R2 から送信された最もコストの低いルートを優先的に使用し、IBGP でフラッディングします (コストは変わりません)。]

[ただし、別の EBGP ネイバーに渡されると、ルートの MED 値は削除されます。]

ここに画像の説明を挿入

3. デフォルトでは、MED 値を運ぶルートは EBGP ネイバーに渡されませんが、どのような状況で MED 値を運ぶことができますか?

 ルートが IBGP にインポートされると、インポートされたルートのコストが継承され、EBGP に渡されるときに削除されません。

 ルーターが IGP を通じてルートを学習し、networkまたはimport-routeを通じてそのルートを BGP にインポートする場合、生成された BGP ルートの MED 値は IGP のルートのメトリックを継承します。

[たとえば、次の図で R2 が OSPF 経由で 10.0.1.0/24 ルートを学習し、そのルートが R2 のグローバル ルーティング テーブルで OSPF Cost=100 を持つ場合、R2 がルート ネットワークに BGP に入ると、MED 値は100 に対して生成された BGP ルート。]

ここに画像の説明を挿入

 ルーターがローカルの直接ルートと静的ルートに接続している場合、直接ルートと静的ルートのデフォルト コストは 0 であるため、この BGP ルートの MED は 0 になります。

4. コストの継承を理解できますが、学習されたルートは引き続きコストを継承し、次の EBGP ネイバーに渡しますか?

 回答: いいえ、MED は AS を越えて転送できないためです。

 修辞的な質問: では、なぜ R2 は R3 から継承できるのでしょうか?

 Lore: いわゆる継承は、IBGP 内部ではこのように理解できますが、R2 では、BGP を送信するときに MED コストを手動で設定するものとして理解でき、これは実際の継承ではありません。

[以下の図をご覧ください。MED は AS を越えることができないという原則により、R2 が BGP ルートを R3 に送信するときは自動的に MED 値を変更しますが、R3 が R4 に送信するときは自動的には変更されないことが理解できます。いわゆる継承がないため、これを変更します。MED、MED のないルートのみが R4 に渡されます]

ここに画像の説明を挿入

発信者ID

名前: 発信者ID

機能: 反映前のルートの起点広告主を記録します。RR は、反映されたルートに Originator_ID を追加します。その値は、ルートをアドバタイズする BGP ルーターのルーター ID です。

導入:

1. オリジンと同様に、オリジネータ ID は主にリフレクション前のルートの広告主を記録するために使用され、リフレクション後のルートがオリジン ルータに戻ってルーティング ループが発生する可能性があります。

2. AS 内に複数の RR がある場合、Originator_ID 属性は最初の RR によって作成され、後続の RR によって変更されません。

3. BGP ルーターが Originator_ID 属性を含む IBGP ルートを受信し、Originator_ID 属性の値が自身のルーター ID と同じである場合、BGP ルーターはこのルートに関する更新を無視します。
ここに画像の説明を挿入

3. 発信者 ID を確認するにはどうすればよいですか?

ここに画像の説明を挿入

クラスターリスト

名前: Cluster-List リフレクション クラスター リスト

機能: RR リフレクション クラスター環境でルーティング アンチループを実装するために使用されます。

導入:

1. 各クラスターには一意のクラスター ID (Cluster_ID、デフォルトでは RR の BGP ルーター ID) があります。

2. ルートがリフレクタによって反映されると、RR (クラスター) の Cluster_ID がルートの Cluster_list 属性に追加されます。

3. 1 つの AS 内で複数のルート リフレクション クラスターが許可されます (次の図を参照)。
ここに画像の説明を挿入

4. RR が Cluster_list 属性を含む BGP ルートを受信し、その属性の値にクラスターの Cluster_ID が含まれている場合、RR はルートにループがあると見なすため、ルートの更新/反映を無視します。

[図に示すように、R1 は R2 ルートを R3 に反映し (最初のクラスター リストは独自の RID)、R3 はそれを R4 に引き続き反映し (クラスター リストは R4 の RID を増やします)、最後に R4 がそれを反映します。 R1 に戻ります (クラスター リストにより R4 の RID が増加します)。R1 は反映されたルートを受信し、独自の RID がクラスター リストに存在することを検出すると、ルートは処理されません]
ここに画像の説明を挿入

ローカル属性

優先値

名前: Preferred-Value プロトコルの優先値

機能: Huawei 機器の固有の属性。最適なルートをローカルで手動で選択するために使用されます。

導入:

1. 10 個の BGP パス属性に、Huawei 独自のプロトコル優先値を加えた、合計 11 個のパス属性があります。
2. この属性はルーター上でローカルでのみ有効であるため、ローカルでポリシーを作成し、それを対応するネイバーの受信方向に適用することにより、優先値を変更します。

ここに画像の説明を挿入

3. BGP ルーティング テーブルに同じ宛先へのルートが存在する場合、優先値の高いルートが最初に選択されます(デフォルト値は 0/空)。

【下図のように、Prefval値が高い方が優先経路となります】

ここに画像の説明を挿入

4 番目に、パスのプロパティを変更します。

スペースの都合上、関連する構成コマンドのみが示されており、コマンドはロジックに基づいて変更および適用できます。

これは必須として認識されるため、変更後にポリシー ルーティングを通じてIBGP と EBGP の間で受け渡すことができます

要件: EBGP ネイバー 10.1.13.3 によって配信される 192.168.30.0/24 のルートの起点を EGP タイプに変更します。

構成ロジック:

1. まず、192.168.30.0/24 ルートに一致する ACL またはプレフィックス リストを作成します。

2. ポリシー ルーティング、if-match 一致ルーティングを作成し、発信元の egp AS 番号を適用してそのタイプを変更します。

EGPに変更されているため、元のAS_Path情報を指定する必要があります

3. ポリシーの設定 指定したルートを変更した後、他のルートを許可するポリシーを作成する必要があります。そうしないと、他のルートは配信されません。

4. 最後に、対応するネイバーにポリシーを適用します。

ip ip-prefix 30 permit 192.168.30.0 24

route-policy P30 permit node 5 
 if-match ip-prefix 30 
 apply origin egp 200

route-policy P30 permit node 10

[AR1-bgp]peer 10.1.13.3 route-policy P30 import

再次查看BGP路由表:
[AR1-bgp]dis bgp routing-table 
 Total Number of Routes: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
 *>   192.168.30.0       10.1.13.3       0                     0      200e

AS_パス

これは必須として認識されるため、変更後にポリシー ルーティングを通じてIBGP と EBGP の間で受け渡すことができます

要件: EBGP ネイバー 10.1.13.3 から送信された 192.168.30.0/24 のルートの場合、ルートの優先順位を下げるために、その AS_Path が AS 65005 によって増加します。

構成ロジック:

1. ルーティングの一致

2. ポリシーを作成し、指定されたルートの AS_Path を変更します。

3. 他のルートを解放するポリシーを作成する

4. 指定したネイバーにポリシーを適用する

ip ip-prefix 30 permit 192.168.30.0 24
#
route-policy AS permit node 5 
 if-match ip-prefix 30 
 apply as-path 65505 additive
#
route-policy AS permit node 10

[AR1-bgp]peer 10.1.13.3 route-policy AS import

再次查看BGP路由表:
[AR1-bgp]dis bgp routing-table 
 Total Number of Routes: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
*>   192.168.30.0       10.1.13.3       0                     0      65505 200i

AS_Path に関するアクション:

1. 追加、指定した AS 番号を AS_Path [追加] に追加します。

2. AS_Pathを指定したAS番号に上書き書き換え[変更/削除]します。

3. 上書きなし、AS_Path 値をクリアします。

ここに画像の説明を挿入

Next_Hop

これは必須として認識されるため、変更後にポリシー ルーティングを通じてIBGP と EBGP の間で受け渡すことができます

要件: EBGP ネイバー 10.1.13.3 から渡される 192.168.30.0/24 のルートを 3.3.3.3 に変更します。

ip ip-prefix 30 permit 192.168.30.0 24
#
route-policy NextHOP permit node 5 
 if-match ip-prefix 30 
 apply ip-address next-hop 3.3.3.3 
#
route-policy NextHOP permit node 10

[AR1-bgp]peer 10.1.13.3 route-policy NextHOP import

再次查看BGP路由表:
[AR1-bgp]dis bgp routing-table 
 Total Number of Routes: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
      192.168.30.0       3.3.3.3         0                     0      200i

ローカル設定

任意と認識されるため、ポリシールーティング変更によりIBGP と EBGP 間で送信可能ですが、ローカル優先度の特殊性により、EBGP ネイバーに送信しても処理されません。

要件: EBGP ネイバー 10.1.13.3 から渡される 192.168.30.0/24 のルートを 300 に変更します。

ip ip-prefix 30 permit 192.168.30.0 24
#
route-policy LPRI permit node 5 
 if-match ip-prefix 30 
 apply local-preference 300 
#
route-policy LPRI permit node 10 

[AR1-bgp]peer 10.1.13.3 route-policy LPRI import

再次查看BGP路由表:
[AR1-bgp]dis bgp routing-table 
 Total Number of Routes: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
 *>   192.168.30.0       10.1.13.3       0          300        0      200i

デフォルトでは、すべてのローカル優先度は 100 です。デフォルト値を変更する必要がある場合は、次のようにします。[AR1-bgp]default local-preference 新优先值

アトミック集合体

これは任意であると認識されるため、ポリシー ルーティングを通じて変更された後、IBGP と EBGP の間で受け渡すことができます

アグリゲータ

これはオプションの移行であり、ポリシーの変更後にIBGP と EBGP の間で受け渡すことができます。デバイスが認識できない場合でも、この属性を保持し続ける必要があります。

これら 2 つの属性はポリシー ルーティングを通じて変更することはできません。ここでは設定コマンドのみを示します。

要件: AR1 で集約 192.168.0.0/16 を設定し、対応する詳細ルートの外部広告を抑制し、集約ルートに Aggregator 属性を追加します。

[AR1-bgp]aggregate 192.168.0.0 16 as-set detail-suppressed 

ここに画像の説明を挿入

コミュニティ

これはオプションの移行であり、ポリシーの変更後に IBGP と EBGP の間で渡すことができます。デバイスが認識できない場合でも、この属性を保持し続ける必要があります。

要件: EBGP ネイバー 10.1.13.3 によって配信される 192.168.30.0/24 のルートの場合、ルートのコミュニティ値を 200:3 に設定します。

ip ip-prefix 30 permit 192.168.30.0 24
#
route-policy COM permit node 5 
 if-match ip-prefix 30 
 apply community 100:3 
#
route-policy COM permit node 10 
#
[AR1-bgp]peer 10.1.13.3 route-policy COM import

再次查看BGP路由详细信息:
[AR1-bgp]display bgp routing-table 192.168.30.0

 BGP local router ID : 10.1.13.1
 Local AS number : 100
 Paths:   1 available, 1 best, 1 select
 BGP routing table entry information of 192.168.30.0/24:
 From: 10.1.13.3 (10.1.13.3)
 Route Duration: 00h00m35s  
 Direct Out-interface: GigabitEthernet0/0/1
 Original nexthop: 10.1.13.3
 Qos information : 0x0
 Community:<100:3>	【团体值在这】
 AS-path 200, origin igp, MED 0, pref-val 0, valid, external, best, select, acti
ve, pre 255
 Not advertised to any peer yet

拡張機能: 後で BGP ルート選択を導入する場合、この属性は、ルート選択を制御するために、さまざまなルートを区別するために使用されます。

これはオプションで非移行的であり、IBGP と EBGP の間で渡すことができますが、EBGP ネイバーに渡されるとデフォルトで削除されます。

要件: ルート 192.168.30.0/24 の MED 値を EBGP ネイバー 10.1.13.3 から 10 に変更します。

ip ip-prefix 30 permit 192.168.30.0 24
#
route-policy MED permit node 5 
 if-match ip-prefix 30 
 apply cost 10 
#
route-policy MED permit node 10 
#
[AR1-bgp]peer 10.1.13.3 route-policy MED import

再次查看BGP路由表:
[AR1-bgp]dis bgp routing-table 
 Total Number of Routes: 2
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn
 *>   192.168.30.0       10.1.13.3       10                    0      200i

デフォルト値を変更する必要がある場合、BGP によって学習された MED はデフォルトで 0 です。[AR1-bgp]default local-preference 新优先值

クラスターリスト

これはオプションであり、移行的なものではなく、複数のルート リフレクションを防ぐために RR リフレクタ クラスタが存在するシナリオに適用されます。

発信者ID

これはオプションで非移行的なもので、RR リフレクタが存在するシナリオで、複数回のリフレクション後にルーティング ループが発信元デバイスに返されるのを防ぐために使用されます。

上記の 2 つの属性は、ポリシー ルーティングでは変更できませんが、デフォルトで有効になっており、対応する情報が自動的に記録されます。

詳細については、BGP リフレクタを紹介するときに後で説明します。

おすすめ

転載: blog.csdn.net/qq_45443704/article/details/129910246