BGP MED

MEDとは

BGPのMED(Multi Exit Discriminator)は、BGPにおけるオプション属性(Optional Non-transitive Attribute)で、異なるAS間の複数の出口ポイントが存在する場合に、どの出口を優先するかを決定するために使用されます。MEDは、数値が小さいほど優先される属性で、BGPピア間のルート選択に影響を与えます。

MEDは外部BGP(eBGP)ピア間で使用される属性で、AS内で異なる出口を持つ複数のパスがある場合に、外部ASに対して「こちらの出口を優先して使ってください」という情報を提供します。つまり、AS外にある他のネットワークに対して、自分のASへのトラフィックが望ましい経路を通るように誘導するために使われます。

MEDの特徴

  1. 複数の出口ポイントがある場合に使用:
    • AS内に複数の出口(ルーター)があり、外部ASからのトラフィックを特定のルーターを経由させたい場合に使用します。MEDを使うことで、トラフィックが優先的に通る出口を指定できます。
  2. 数値が小さいほど優先される:
    • MEDの値が小さいほど、そのパスが優先されます。他の条件が同等であれば、最も小さいMED値を持つルートが選択されます。
  3. 同一AS内でのみ比較される:
    • MEDは、基本的に同じAS内でのみ比較されます。つまり、他のAS(eBGPピア)から受信したルートのMEDは、異なるAS間では比較されません。
  4. オプション属性:
    • 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に設定します。

ただし、現状だと異なるASのEBGPピアなので比較されておらず、MEDが高いほうのルートが選択されています。

異なるASのEBGPピアからのルートに対してMED値の比較を行うため、bgp always-compare-medコマンドを使用します。

異なるASのEBGPピアに対してもMEDの比較がされ、MEDが低いRouter4経由の通信が優先されるようになりました。