BGP(Border Gateway Protocol)は、インターネット上で複数の自律システム(AS)間の経路情報を交換するための重要なプロトコルです。その中でも、MED(Multi Exit Discriminator) 属性は、AS間でインバウンドトラフィックが通る経路を最適化するために使用されます。本記事では、Cisco環境でMED属性を使用してどのようにルート選択が行われるのかを検証し、実際の設定手順とともに動作を確認します。
MED属性とは
MULTI_EXIT_DISC (MED) は、BGP (Border Gateway Protocol) において、隣接するAS(自律システム)に対して、どの経路を優先させたいかを伝えるためのパラメータです。
通常、複数の出口パスを持つ場合、他のASに自ASへのインバウンドトラフィックをどのパスで送信してほしいかを指定するために使用されます。MEDは外部AS間の通信で利用され、他のASには伝播されないため、AS間でのみ効果を持ちます。
MED属性の重要なポイント
- 優先度は数値の大小で決まる: 値が小さい方の経路が優先されます。つまり、より低いMED値が設定された経路を他のルータは選択します。
- AS内では影響しない: MEDは隣接ASにのみ適用され、他の自律システム内では影響を持ちません。
- 標準では使用されない場合もある: 特定の環境や設定でしか利用されないため、すべてのBGPネットワークで使われるわけではありませんが、特定のトラフィックコントロールを行う場面で役立ちます。
検証環境の構成
MED属性の動作を検証します。
- R2、R3: 同じプレフィックス (23.23.23.23/32) を持ち、それをAS6へ広告します。R2はMED 200、R3はMED 100を使用します。
- R6: ルート選択を行うルータ。R2およびR3からの広告を受け取り、どちらの経路を使用するかを決定します。
MEDの動作確認と設定手順
まず、R2とR3のループバックアドレスを23.23.23.23/32として設定し、それをAS6に広告します。初期設定ではMEDはデフォルトの0で動作し、R6はルータIDの小さいR2を優先することになります。
R2の設定
R2(config)# int loopback 23 R2(config-if)# ip add 23.23.23.23 255.255.255.255 ! R2(config)# router bgp 23 R2(config-router)# neighbor 192.168.26.6 remote-as 6 R2(config-router)# network 23.23.23.23 mask 255.255.255.255
R3の設定
R3(config)# int loopback 23 R3(config-if)# ip add 23.23.23.23 255.255.255.255 ! R3(config)# router bgp 23 R3(config-router)# neighbor 192.168.36.6 remote-as 6 R3(config-router)# network 23.23.23.23 mask 255.255.255.255
R6の設定
R6(config)# router bgp 6 R6(config-router)# neighbor 192.168.26.2 remote-as 23 R6(config-router)# neighbor 192.168.36.3 remote-as 23
この段階で、R6はMEDが同じ値(デフォルトの0)のため、ルータIDに基づいてルートを選択します。ここではR2が優先されます。
R6# show ip bgp BGP table version is 2, local router ID is 6.6.6.6 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path * 23.23.23.23/32 192.168.36.3 0 0 23 i *> 192.168.26.2 0 0 23 i
MED値の変更によるルート選択の変化
次に、R2にMED 200、R3にMED 100を設定し、どの経路が選択されるかを確認します。
R2のMED設定
R2(config)# route-map SETMED permit 10 R2(config-route-map)# set metric 200 R2(config)# router bgp 23 R2(config-router)# neighbor 192.168.26.6 route-map SETMED out
R3のMED設定
R3(config)# route-map SETMED permit 10 R3(config-route-map)# set metric 100 R3(config)# router bgp 23 R3(config-router)# neighbor 192.168.36.6 route-map SETMED out
R6の経路確認
BGPプロセスをクリア後、R6で再度ルートテーブルを確認します。
R6# show ip bgp BGP table version is 4, local router ID is 6.6.6.6 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, x best-external, a additional-path, c RIB-compressed, Origin codes: i - IGP, e - EGP, ? - incomplete RPKI validation codes: V valid, I invalid, N Not found Network Next Hop Metric LocPrf Weight Path *> 23.23.23.23/32 192.168.36.3 100 0 23 i * 192.168.26.2 200 0 23 i
R6# show ip bgp 23.23.23.23 BGP routing table entry for 23.23.23.23/32, version 4 Paths: (2 available, best #1, table default) Advertised to update-groups: 2 23 192.168.36.3 from 192.168.36.3 (3.3.3.3) Origin IGP, metric 100, localpref 100, valid, external, best rx pathid: 0, tx pathid: 0x0 23 192.168.26.2 from 192.168.26.2 (2.2.2.2) Origin IGP, metric 200, localpref 100, valid, external rx pathid: 0, tx pathid: 0
ここで、R3のMED 100の経路が優先されていることが確認できます。MEDはBGPの選択基準の中で比較的後ろの方で評価されますが、適切に設定することで、効率的なトラフィックルーティングを行うことが可能です。
まとめ
MED属性は、複数の出口パスを持つ場合によく使用されます。MEDの設定により、トラフィックの流れをコントロールでき、特に大規模なネットワークや複数の出口を持つ環境では有効です。
その他 BGP関連記事は >> ルーティングプロトコル(BGP)まとめ << より参照できます。
コメント