はじめに
このドキュメントでは、さまざまなシナリオでの実装によってAS境界を越える場合のボーダーゲートウェイプロトコル(BGP)のMED属性について説明します。
前提条件
要件
BGP に関する基本的な知識があることが推奨されます。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。このドキュメントのシナリオは、次のハードウェアとソフトウェアのバージョンに基づくものです。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
表記法
ドキュメント表記の詳細については、『シスコテクニカルティップスの表記法』を参照してください。
背景説明
Multi Exit Discriminator(MED)は、ASに対する複数のエントリポイントがある場合に、特定のルートに到達する方法で別の自律システム(AS)に影響を与える動的な方法を提供します。BGPは、ベストパスの選択に体系的な手順を使用します。MEDアトリビュートを考慮する前に考慮する必要がある、weight、local preference、originate route、およびAS pathなどの他の重要なアトリビュートがあります。したがって、これらの基準のいずれかが一致する場合、MED属性は考慮されません。
注:他の要素がすべて等しい場合は、最低のMEDを持つ出力点が優先されます。
ケース スタディ
シナリオ 1
BGPスピーカがピアからルートを学習すると、ルートMEDは他の内部BGP(iBGP)ピアに渡されますが、外部BGP(eBGP)ピアには渡されません。
ルータR1とルータR2は、たとえばAS#100のように同じAS内にあると見なされ、ルータR3はAS#101に属しています。分かりやすくするため、IP アドレスは /24 ブロックを使用します。
ルータ R1 と R2 は、次のように設定されています。
ルータ 1 |
(Config)#interface Loopback10
(Config-if)#ip address xx.xx.xx.xx xxx.xxx.xxx.xxx
(Config-if)#interface FastEthernet0/0
(Config-if)#ip address xx.xx.xx.xx xxx.xxx.xxx.xxx
(Config)#router bgp 100
(Config-router)#no synchronization
(Config-router)#bgp router-id xx.xx.xx.xx
(Config-router)#bgp log-neighbor-changes
(Config-router)#network xx.xx.xx.xx mask xxx.xxx.xxx.xxx route-map ATTACH_MED
(Config-router)#neighbor xxx.x.xx.x remote-as xxx
(Config-router)#no auto-summary
(Config)#access-list 10 permit xx.xx.xx.xx
(Config)#route-map ATTACH_MED permit xx
(Config)#match ip address xx
(Config)#set metric xxx |
ルータ 2 |
(Config)#interface FastEthernet0/0
(Config-if)#ip address xxx.x.xx.x xxx.xxx.xxx.x
(Config-if)#interface Serial1/0
(Config-if)#ip address xxx.x.xx.x xxx.xxx.xxx.x
(Config-if)#encapsulation frame-relay IETF
(Config-if)#no fair-queue
(Config-if)#frame-relay map ip xxx.x.xx.x 203 broadcast
(Config-if)#no frame-relay inverse-arp
(Config-if)#frame-relay lmi-type ansi
(Config)#router bgp 100
(Config-router)#no synchronization
(Config-router)#bgp router-id xx.xx.xx.xx
(Config-router)#bgp log-neighbor-changes
(Config-router)#neighbor xxx.x.xx.x remote-as 100
(Config-router)#neighbor xxx.x.xx.x remote-as 101
(Config-router)#neighbor xxx.x.xx.x ebgp-multihop 3
(Config-router)#no auto-summary |
ルータR3の設定を次に示します。
Router 3 |
(Config)#interface Serial1/0
(Config-if)#ip address xxx.x.xx.x xxx.xxx.xxx.x
(Config-if)#encapsulation frame-relay IETF
(Config-if)#no fair-queue
(Config-if)#frame-relay map ip xxx.x.xx.x 302 broadcast
(Config-if)#no frame-relay inverse-arp
(Config-if)#frame-relay lmi-type ansi
(Config)#router bgp 101
(Config-router)#no synchronization
(Config-router)#bgp log-neighbor-changes
(Config-router)#neighbor xxx.x.xx.x remote-as 100
(Config-router)#neighbor xxx.x.xx.x ebgp-multihop 3
(Config-router)#no auto-summary
|
この設定では、R1とR2はiBGPを実行しています。そのため、特定のメトリックを持つアップデートが AS に到達すると、AS 内部ではメトリックを使用してルートが決定されます。
show ip bgp コマンドをR2から実行すると、xx.xx.xx.xxのメトリック値が表示されます。このメトリック値はiBGPネイバーxxx.x.xx.xから取得され、MED値は100です。
R2 と R3 は異なる AS にあるので、両ルータ間では eBGP が実行されています。同じアップデートが第 3 の AS(たとえば AS#101)に送信される場合、メトリックは 0 に戻ります。
show ip bgpコマンドは、R3からチェックされると、xx.xx.xx.xxがAS境界(101)を越えるため、そのメトリックは削除されます。
このシナリオから、MED属性がネイバーの自律システムからの着信トラフィックに影響を与えることが明らかです。
MED属性は、よりリモートの自律システムのルート決定に影響を与えることはできません。BGPスピーカはピアからルートを学習すると、ルートのMEDを任意のiBGPピアに渡すことができますが、eBGPピアには渡すことができません。
その結果、MEDは隣接する自律システム間でのみ関連性を持ちます。
シナリオ 2
BGPに挿入されたルートが(etworkorredistributeコマンドを介して)IGP(RIP、EIGRP、またはOSPF)から取得される場合、MEDはIGPメトリックから取得され、ルートはこのMEDを持つeBGPネイバーにアドバタイズされます。
このネットワークでは、R1 は RIP ネットワークで動作するよう設定されています。ルータ R2 と R3 では BGP が実行されており、R2 には AS 100 が、R3 には AS 101 が設定されています。
ルータR1は次のように設定されています。
ルータ R1 |
(Config)#interface Loopback10
(Config-if)#ip address xx.xx.xx.xx xxx.xxx.xxx.xxx
(Config-if)#interface FastEthernet0/0
(Config-if)#ip address xxx.x.xx.x xxx.xxx.xxx.x
(Config)#router rip
(Config-router)#network xx.x.x.x
(Config-router)#network xxx.x.xx.x
(Config-router)#no auto-summary
|
ルータ R2 と R3 には BGP が設定されているので、R2 は BGP に RIP ネットワークをインジェクトするため、再配布を実行します。
ルータ R2 |
(Config)#interface FastEthernet0/0
(Config-if)#ip address xxx.x.xx.x xxx.xxx.xxx.x
(Config-if)#interface Serial1/0
(Config-if)#ip address xxx.x.xx.x xxx.xxx.xxx.x
(Config-if)#encapsulation frame-relay IETF
(Config-if)#no fair-queue
(Config-if)#frame-relay map ip xxx.x.xx.x 203 broadcast
(Config-if)#no frame-relay inverse-arp
(Config-if)#frame-relay lmi-type ansi
(Config)#router rip
(Config-router)# network xxx.x.xx.x
(Config-router)#no auto-summary
(Config-router)#router bgp 100
(Config-router)#no synchronization
(Config-router)#bgp router-id xx.xx.xx.xx
(Config-router)#bgp log-neighbor-changes
(Config-router)#neighbor xxx.x.xx.x remote-as 101
(Config-router)#neighbor xxx.x.xx.x ebgp-multihop 3
(Config-router)#redistribute rip metric 1
Config-router)#no auto-summary
|
ルータ R3 |
(Config)#interface Serial1/0
(Config-if)#ip address xxx.x.xx.x xxx.xxx.xxx.x
(Config-if)#encapsulation frame-relay IETF
(Config-if)#no fair-queue
(Config-if)#frame-relay map ip xxx.x.xx.x 302 broadcast
(Config-if)#no frame-relay inverse-arp
(Config-if)#frame-relay lmi-type ansi
(Config)#router bgp 101
(Config-router)# no synchronization
(Config-router)#bgp router-id xx.xx.xx.xx
(Config-router)#bgp log-neighbor-changes
(Config-router)#neighbor xxx.x.xx.x remote-as 100
(Config-router)#neighbor xxx.x.xx.x ebgp-multihop 3
(Config-router)#no auto-summary |
R2 では RIP と BGP の両方が実行されています。コマンドを使用して確認すshow ip bgp
ると、プレフィクスxx.x.x.xネットワークのメトリックは1になっていることがわかります。これはRIPから導き出されたものです。
ただし、eBGPで動作するR3では、IGPから取得されたMED値を考慮してネットワークがアドバタイズされます。この例では RIP です。プレフィックス10.0.0.0は、RIPのメトリック1であるIGP MED値でアドバタイズされます。 これは、次の出力で確認できます。
このシナリオでは、ネットワークがetworkorredistributecommandによってBGPルータにインジェクトされた場合のMEDの動作が表示され、実際のMED値はIGPメトリックの値に置き換えられます。
前述したように、このアトリビュートはASへのパスプリファレンスに関する外部隣接ルータへのヒントであるため、最適なルートを決定するために他のより重要なアトリビュートがある場合は、必ずしも考慮されません。
より決定的な属性で同じ効果を得るには、ルートマップの下set as-path prepend
でコマンドを使用します。
特定のルートのASパスを付加しても、他のASからは引き続き認識されます。AS-path prependの使用方法の詳細については、『set-aspath prependコマンドの使用』を参照してください。
関連情報