MEDとは
BGPのMED(Multi Exit Discriminator)は、BGPにおけるオプション属性(Optional Non-transitive Attribute)で、異なるAS間の複数の出口ポイントが存在する場合に、どの出口を優先するかを決定するために使用されます。MEDは、数値が小さいほど優先される属性で、BGPピア間のルート選択に影響を与えます。
MEDは外部BGP(eBGP)ピア間で使用される属性で、AS内で異なる出口を持つ複数のパスがある場合に、外部ASに対して「こちらの出口を優先して使ってください」という情報を提供します。つまり、AS外にある他のネットワークに対して、自分のASへのトラフィックが望ましい経路を通るように誘導するために使われます。
MEDの特徴
- 複数の出口ポイントがある場合に使用:
- AS内に複数の出口(ルーター)があり、外部ASからのトラフィックを特定のルーターを経由させたい場合に使用します。MEDを使うことで、トラフィックが優先的に通る出口を指定できます。
- 数値が小さいほど優先される:
- MEDの値が小さいほど、そのパスが優先されます。他の条件が同等であれば、最も小さいMED値を持つルートが選択されます。
- 同一AS内でのみ比較される:
- MEDは、基本的に同じAS内でのみ比較されます。つまり、他のAS(eBGPピア)から受信したルートのMEDは、異なるAS間では比較されません。
- オプション属性:
- MEDはオプション属性であり、BGPメッセージに必ず含まれるわけではありません。また、Non-transitive属性であるため、AS間で受信したMEDは他のASに伝播されません。
BGP MEDの設定
ルートマップを使ったMEDの設定
ルートマップを使用して、特定の条件に一致するルートに対してMEDを設定することができます。
Router(config)#route-map route-map-name permit number
Router(config-route-map)#match ip address {access-list-number | access-list-name | prefix-list prefix-list-name }
Router(config-route-map)#set metric metric
デフォルト値の設定
IGPから再配布されたルートに対して、デフォルトで付与するMEDを設定します。
Router(config-router)#default-metric number
オプション設定
MED値が付与されていない場合、MED値を最大にします。(デフォルトだと0です)
Router(config-router)#bgp bestpath med missing-as-worst
ASに関わらず常にMED値を比較します。(異なるASでもMED値を比較します)
Router(config-router)#bgp always-compare med
サブASに対してMED値を比較します。
Router(config-router)#bgp bestpath med confed
同じ AS 内の異なるピアによってアドバタイズされたルートを選択するときに、MED値を比較します。
Router(config-router)#bgp deterministic-med
設定例

AS 65002からのルート情報をMED200、AS65004からのルート情報をMED100に設定します。
Router2(config)#ip prefix-list MED permit 3.3.3.3/32
Router2(config)#route-map MEDMAP permit 10
Router2(config-route-map)#match ip address prefix-list MED
Router2(config-route-map)#set metric 200
Router2(config-route-map)#exit
Router2(config)#router bgp 65002
Router2(config-router)#neighbor 192.168.12.1 route-map MEDMAP out
Router4(config)#ip prefix-list MED permit 3.3.3.3/32
Router4(config)#route-map MEDMAP permit 10
Router4(config-route-map)#match ip address prefix-list MED
Router4(config-route-map)#set metric 100
Router4(config-route-map)#exit
Router4(config)#router bgp 65004
Router4(config-router)#neighbor 192.168.14.1 route-map MEDMAP out
ただし、現状だと異なるASのEBGPピアなので比較されておらず、MEDが高いほうのルートが選択されています。

異なるASのEBGPピアからのルートに対してMED値の比較を行うため、bgp always-compare-medコマンドを使用します。
Router1(config)#router bgp 65001
Router1(config-router)#bgp always-compare-med
異なるASのEBGPピアに対してもMEDの比較がされ、MEDが低いRouter4経由の通信が優先されるようになりました。
