BGPの経路制御を学ぶうえで、MED(Multi Exit Discriminator)は隣接ASへのトラフィック誘導に関わる重要なパスアトリビュートです。
Local Preferenceが自AS内部の出口経路を制御するのに対し、MEDは隣接ASに対して入口経路の優先度を伝える役割を担っています。
この記事では、BGPのMEDの意味・仕組み・経路選択における役割・具体的な設定方法についてわかりやすく解説していきます。
BGPの経路制御を深く理解したいネットワークエンジニアの方にぜひ参考にしていただきたい内容です。
BGPのMEDとは「隣接ASに入口経路の優先度を伝えるパスアトリビュート」のこと
それではまず、MEDとは何かについて解説していきます。
MED(Multi Exit Discriminator)とは、自ASから隣接ASに対して、どの入口ポイントを優先して使ってほしいかを伝えるためのパスアトリビュートのことです。
複数の接続点(マルチホーム)を持つAS間の接続において、隣接ASからのトラフィックがどの経路から入ってくるかを誘導する手段として活用されます。
MEDの値が低いほど優先度が高く、同じ宛先への複数の経路の中からMED値が最も低い経路がベストパスとして選択されます。
MEDとは:
隣接ASに自ASへの入口経路の優先度を伝えるパスアトリビュート。
値が低いほど優先度が高い(Local Preferenceとは逆)。
デフォルト値は0(未設定時)で、同一AS内から受信した経路間でのみ比較される。
MEDとLocal Preferenceの違い
MEDとLocal Preferenceはどちらも経路の優先度制御に使われますが、制御の方向性が正反対です。
Local Preferenceは自ASから外部への出口トラフィックを制御するのに対し、MEDは外部から自ASへの入口トラフィックを誘導するために使われます。
また値の評価方向も異なり、Local Preferenceは高い方が優先・MEDは低い方が優先という点も重要な違いです。
さらにLocal PreferenceはiBGP内でのみ伝達されますが、MEDはeBGPピアに対して送信される点も大きな違いのひとつです。
両者の役割と方向性の違いを正確に把握することが、BGPの経路制御設計において非常に重要です。
MEDのデフォルト値と未設定時の動作
MEDは必須のパスアトリビュートではなく、設定されていない経路にはMED値が存在しない状態になります。
CiscoルーターではMEDが設定されていない経路を受信した場合、デフォルトではMED値0として扱う設定になっています。
bgp bestpath med missingコマンドを使うことで未設定の経路のMED値の扱いを変更することができます。
MEDが設定されていない経路とMED値0の経路は同じ扱いになるため、意図的な経路制御を行う際は明示的にMED値を設定することが推奨されます。
設定できる値の範囲は0〜4294967295であり、値が小さいほど優先度が高くなります。
MEDの仕組みと経路選択への影響を確認しよう
続いては、MEDが経路選択にどのように影響するかを確認していきます。
| 経路 | MED値 | ベストパス選択結果 | 用途 |
|---|---|---|---|
| 経路A(接続点1経由) | 100 | 選択される(優先) | プライマリ入口として誘導 |
| 経路B(接続点2経由) | 200 | 選択されない | バックアップ入口として待機 |
| 経路C(接続点3経由) | 300 | 選択されない | 最終手段の入口として待機 |
MEDが比較される条件
BGPのベストパス選択においてMEDが比較されるのは、同一のAS番号から広報された経路同士の間に限られるという重要な制約があります。
異なるASから受信した経路間ではデフォルトではMEDは比較されないため、意図した動作にならないケースがあります。
CiscoルーターではbgpBestpath med always-compareコマンドを設定することで、異なるASから受信した経路間でもMEDを比較する動作に変更できます。
ただしこの設定はルーティングループのリスクがあるため、十分に動作を理解したうえで慎重に適用することが推奨されます。
MEDの比較条件を正しく把握することが、意図通りの経路制御を実現するうえで非常に重要です。
BGPベストパス選択におけるMEDの位置づけ
BGPのベストパス選択アルゴリズムにおいて、MEDはLocal Preferenceや AS Pathの後に評価されます。
Local PreferenceとAS Pathが同じ経路が複数ある場合にMEDが次の判断基準として機能します。
BGPベストパス選択におけるMEDの評価順序:
①Weight(Cisco独自・高い方優先)
②Local Preference(高い方優先)
③ローカルで生成された経路を優先
④AS Pathが短い経路を優先
⑤Origin(IGP > EGP > Incomplete)
⑥MED(低い方優先)← ここで評価
⑦eBGP経由の経路をiBGP経由より優先
MEDはLocal Preferenceより後に評価されるため、Local Preferenceで差がついている場合はMEDの設定は経路選択に影響しません。
MEDが有効に機能する場面は、Local PreferenceとAS Pathが同等の経路が複数存在するケースに限られるという点を理解しておきましょう。
MEDを使ったインバウンドトラフィックの誘導
MEDの最も典型的な活用例は、マルチホーム環境で隣接ASからのトラフィックを特定の接続点に誘導することです。
自ASがISPに対して2つの接続点を持つ場合、プライマリとして使いたい接続点から広報する経路のMED値を低く・バックアップ接続点から広報する経路のMED値を高く設定することで、隣接ASからのトラフィックをプライマリ接続点へ誘導できます。
ただしMEDはあくまで「希望」を伝えるものであり、隣接ASがMEDを考慮するかどうかは相手ASのポリシーに依存します。
隣接ASがMEDを無視する設定をしている場合は意図した誘導が実現されないため、事前に相手ASの担当者と調整することが重要です。
MEDの設定方法
続いては、MEDの具体的な設定方法を確認していきます。
CiscoルーターとJuniperルーターを例に解説します。
CiscoルーターでのMED設定
CiscoルーターでMEDを設定するには、route-mapを使って広報する経路にMED値を付与します。
CiscoルーターのMED設定例:
route-map SET-MED permit 10
set metric 100
!
router bgp 65001
neighbor 203.0.113.1 remote-as 65002
neighbor 203.0.113.1 route-map SET-MED out
set metricコマンドでMED値を設定し、route-mapをoutbound方向に適用することで隣接ASに広報する経路にMED値を付与できます。
特定のプレフィックスにのみMEDを設定したい場合はroute-mapのmatch句で対象を絞り込むことで、細かな粒度でのMED制御が実現できます。
設定後はshow ip bgp neighborsコマンドやshow ip bgpコマンドで広報している経路のMED値を確認しましょう。
JuniperルーターでのMED設定
JuniperルーターではポリシーステートメントでMEDを設定します。
JuniperルーターのMED設定例:
policy-options {
policy-statement SET-MED {
term MED-100 {
then {
metric 100;
accept;
}
}
}
}
protocols {
bgp {
group EBGP {
neighbor 203.0.113.1 {
export SET-MED;
}
}
}
}
Juniperではexportポリシーとして適用することで、隣接ASに広報する経路にMED値を設定できます。
from句に条件を追加することで特定のプレフィックスや経路に対してのみMEDを設定するきめ細かい制御も可能です。
MED設定時の注意点
MEDを設定する際には、隣接ASのBGP設定がMEDを考慮する設定になっているかを確認することが重要です。
また前述のとおりMEDは同一AS番号から受信した経路間でのみデフォルトで比較されるという制約があるため、複数の上流ASから受信した経路間でMEDを比較したい場合は追加設定が必要です。
MEDの変更はインバウンドトラフィックに影響するため、設定変更前に影響範囲を十分に把握してから適用することが推奨されます。
本番環境での変更はメンテナンスウィンドウを設けて慎重に行い、変更後のトラフィックの流れを検証することが安定運用の基本です。
MEDの実践的な活用シーンとLocal Preferenceとの組み合わせ
続いては、MEDの実践的な活用シーンとLocal Preferenceとの組み合わせ方を確認していきます。
マルチホーム環境でのMED活用
MEDが最もよく活用される場面は、自ASが複数の接続点でISPに接続するマルチホーム環境です。
東京拠点と大阪拠点の2箇所でISPに接続している場合、東京方面の宛先へはMED値を低く設定して東京接続点を優先させ、大阪方面の宛先へはMED値を調整して大阪接続点を優先させるという地理的なトラフィック最適化が実現できます。
このようなMEDを使った経路誘導により、遅延の少ない最適な経路でトラフィックを処理することが可能になります。
ただし上述のとおりISP側がMEDを尊重するかどうかに依存するため、事前の調整と動作確認が重要です。
Local PreferenceとMEDを組み合わせた双方向の経路制御
実践的なネットワーク設計では、Local PreferenceとMEDを組み合わせることでアウトバウンド・インバウンド双方のトラフィックを最適化することができます。
自ASからの出口トラフィックはLocal Preferenceで制御し、外部からの入口トラフィックはMEDで誘導するという役割分担が基本的な設計パターンです。
この組み合わせにより、双方向のトラフィックを意図した経路に誘導することができ、回線コストの最適化や遅延の改善が実現できます。
大規模ネットワークやISP環境では、コミュニティアトリビュートも組み合わせることでさらに高度なトラフィックエンジニアリングが可能になります。
MEDとAS Pathプリペンドの使い分け
インバウンドトラフィックを制御するための手段としてはMEDの他にAS Pathプリペンドという方法もあります。
AS Pathプリペンドは自ASの番号をAS Pathに繰り返し付加することで経路を意図的に長く見せる手法で、MEDより広範な影響範囲を持つという特徴があります。
MEDは隣接ASにのみ影響するのに対し、AS Pathプリペンドはインターネット全体の経路選択に影響する可能性があるため、使い分けには慎重な判断が必要です。
細かい接続点単位での制御にはMED・より広い範囲への影響が必要な場合はAS Pathプリペンドという使い分けが実践的なアプローチです。
まとめ
この記事では、BGPのMEDの意味・仕組み・経路選択における役割・具体的な設定方法・実践的な活用シーンについて解説しました。
MEDとは隣接ASに自ASへの入口経路の優先度を伝えるパスアトリビュートであり、値が低いほど優先度が高く・同一AS番号から受信した経路間でのみ比較されるという特性を正しく理解することが重要です。
Local Preferenceが出口トラフィックを制御するのに対しMEDは入口トラフィックを誘導するという役割の違いを把握し、両者を組み合わせることで双方向のトラフィック最適化が実現できます。
MEDとAS Pathプリペンドの使い分けも意識しながら、目的に合った経路制御ポリシーを設計することがBGP運用の品質向上につながります。
MEDの仕組みをしっかり理解して、BGPの経路制御設計にぜひ役立てていただければ幸いです。