はじめに
このドキュメントでは、さまざまなシナリオでの実装によって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(eBGP)ピアではなく、他の内部BGP(iBGP)ピアに渡されます。
ルータ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にインジェクトされたルートが(etworkorredistributecommandを介して)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コマンドの使用』を参照してください。
関連情報