TL

BGP 経路選択アルゴリズムの完全解説

同じ宛先に複数経路が届いたとき、BGP がどれを最良経路に選ぶかを優先順位ごとに理解できる。各属性の設計意図まで踏み込み、トラフィック制御の勘所がつかめる。

応用BGPルーティングAS_PATHネットワーク経路選択最終更新: 2026-06-21
TL;DR要点だけ先に
  • 1.BGP は同一宛先の複数経路から1本の最良経路を選び、Weight→LOCAL_PREF→AS_PATH→Origin→MED→eBGP/iBGP→IGPメトリックの順で機械的に比較する。
  • 2.上位ほど運用ポリシーが効く設計で、出口(送信側)制御は LOCAL_PREF、入口(受信側)の誘導は AS_PATH プリペンドや MED を使う。
  • 3.最良経路だけがルーティングテーブルに入り、かつ近隣に再広告される。だから経路選択は到達性そのものに直結する。

なぜ「経路選択」が要るのか

BGP では、同じ宛先プレフィックス(例 203.0.113.0/24 という CIDR)への経路が複数のピアから届くことが日常的に起きます。インターネットは数万の AS が網の目状につながっているため、当然です。しかし実際にパケットを送れるネクストホップは1つだけ。そこで BGP は受信した複数の候補からただ1本の最良経路(best path) を選び、それだけをルーティングテーブルに入れます。

重要なのは、最良経路に選ばれた1本だけが他のピアへ再広告される点です。つまり経路選択は自分の到達性だけでなく、自分を経由する他者の到達性まで左右します。AS 間のポリシーは ルーティングプロトコル(OSPF / BGP) で触れたとおり「速さ」でなく「都合」で決まり、その都合を実装するのがこの選択順序です。

選択順序の全体像

BGP は候補経路を上から順に1属性ずつ比較し、差が付いた時点で勝者を決めます。同点なら次の属性へ進む、トーナメント方式です。

属性向き(大/小が優先)主な設計意図
1Weight(Cisco独自)大きいほど優先自ルータ内だけの強制指定
2LOCAL_PREF大きいほど優先AS内で共有する出口ポリシー
3ローカル生成自分発が優先自AS起点の経路を優先
4AS_PATH長短いほど優先通過AS数=おおまかな距離
5OriginIGP<EGP<Incomplete経路の素性の確かさ
6MED小さいほど優先隣接ASに示す入口の希望
7eBGP / iBGPeBGPが優先外部学習を内部学習より優先
8IGPメトリック小さいほど優先最寄りの出口(hot potato)

これ以降も同点が続けば、より古い経路・ルータID最小などのタイブレーカで必ず1本に絞ります。決定性があり、どのルータでも同じ入力なら同じ結論に至るのが BGP の前提です。

Weight:自分だけの最優先指定

Weight は Cisco 独自で、そのルータの中だけで意味を持ち、他ルータには伝わりません。最初に評価されるため最も強力です。「この1台では必ずこの経路を使え」という局所的な強制に向きます。標準属性ではないため、AS 全体で揃えたいなら次の LOCAL_PREF を使います。

LOCAL_PREF:AS の出口ポリシー

LOCAL_PREF は iBGP で AS 内のルータ間に共有される標準属性で、値が大きい経路を優先します。

これが「自 AS からどの出口を使って外へ出るか(outbound)」を決める中心的なツマミです。例えば「主回線(高速・安価)を優先し、バックアップ回線は普段使わない」を実現するには、主回線で学んだ経路に高い LOCAL_PREF を付与します。AS 内の全ルータが同じ値を見るため、組織として一貫した出口選択になります。

LOCAL_PREF は“出口”、MED は“入口”

送信トラフィックの出口を自分で決めるのが LOCAL_PREF。これは自AS内で完結します。一方、外から自分への入口(inbound)は最終的に相手ASが決めるので、こちらは MED や AS_PATH プリペンドで“お願い”するしかありません。制御の効きやすさが構造的に非対称です。

AS_PATH:通過 AS 数という距離

LOCAL_PREF で差が付かなければ、AS_PATH の長さ(通過する AS 数)を比べ、短いほうを選びます。BGP がパスベクタ型と呼ばれるのはこの属性ゆえで、AS番号の並びはループ検出にも使われます(自AS番号が含まれる経路は破棄)。

入口を誘導したいときは、自分が広告する経路の AS_PATH にわざと自AS番号を重ねる AS_PATH プリペンドを使います。経路を長く“見せかけて”、相手にその経路を選ばせにくくする手法です。

# 自AS(65001)からの広告にプリペンドを2回
通常:        AS_PATH = 65001
プリペンド後: AS_PATH = 65001 65001 65001  # 長く見え、選ばれにくくなる

ただし AS_PATH より上位の LOCAL_PREF が相手側で効いていれば、プリペンドは無視されます。上位属性が常に優先である点を忘れると、誘導が効かない理由を見失います。

Origin と MED

Origin は経路の素性を示し、IGP(network文等で素直に生成)が最も信頼され、次いで EGP(現在ほぼ未使用)、Incomplete(再配布由来など出自不明)の順で優先されます。差が付くことは実務上まれですが、再配布した経路が不利に扱われる理由がここにあります。

MED(Multi-Exit Discriminator) は、同じ隣接 AS への複数リンクがある場合に「こちらのリンクで入ってきてほしい」と相手へ示す値で、小さいほど優先されます。あくまで相手AS内での比較に使われる弱いヒントで、デフォルトでは同一隣接AS同士でしか比較しません。LOCAL_PREF より下位なので、相手のポリシー次第で簡単に覆ります。

eBGP/iBGP と IGP メトリック

ここまで同点なら、eBGP(外部ピアから学んだ経路)を iBGP(内部ピア経由)より優先します。外部で直接学んだ経路のほうが新鮮で短いとみなす設計です。

最後に残るのが IGP メトリックで、ネクストホップまでの OSPF/IS-IS コストが小さい経路を選びます。これは「最も近い出口から早く外へ出す」考え方で、ホットポテト(hot potato)ルーティングと呼ばれます。自AS内を長く運ばず、熱いジャガイモを早く手放すイメージです。逆に相手都合を優先して遠い出口まで運ぶ設計はコールドポテトと呼ばれ、MED で実現します。

試験・面接での頻出ポイント
  • 順序の暗記: Weight→LOCAL_PREF→自分発→AS_PATH→Origin→MED→eBGP/iBGP→IGPメトリック。
  • 大小の向き: Weight と LOCAL_PREF は「大」、AS_PATH と MED と IGPメトリックは「小」が優先。混同しやすい。
  • outbound は LOCAL_PREF、inbound は AS_PATH プリペンド/MED。「自分で決められるのは出口だけ」が本質。
  • AS_PATH はループ検出も兼ねる(自AS番号を含む経路を破棄)。

設計意図を一段で言うと

この順序は偶然ではなく、上位ほど運用者の意図を強く反映し、下位ほど技術的・自動的な最短性に近づくよう並んでいます。まずローカルな強制(Weight)、次に組織ポリシー(LOCAL_PREF)、それでも決まらなければ距離(AS_PATH)、最後に物理的な近さ(IGP)。ポリシーと最短性の優先関係を一直線に並べたのが BGP 経路選択であり、ここを誤ると 経路ハイジャックや広域障害 のように影響が AS を越えて波及します。挙動の確認は実機で show ip bgp 系コマンドや パケットキャプチャ を併用し、どの属性で勝敗が付いたかを必ず裏取りしてください。

ネットワーク Article

BGP 経路選択アルゴリズムの完全解説を実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

BGP

比較で見る軸

難易度: advanced / カテゴリ: ネットワーク / タグ数: 5

導入後に効く点

上位ほど運用ポリシーが効く設計で、出口(送信側)制御は LOCAL_PREF、入口(受信側)の誘導は AS_PATH プリペンドや MED を使う。

先に潰すリスク

用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。

数字・仕様の読み方
難易度
advanced
カテゴリ
ネットワーク
タグ数
5

判断チェックリスト

  • 自社の用途が「BGP / ルーティング」に近いか確認する。
  • 強みである「BGP は同一宛先の複数経路から1本の最良経路を選び、Weight→LOCAL_PREF→AS_PATH→Origin→MED→eBGP/iBGP→IGPメトリックの順で機械的に比較する。」が本当に評価軸になるか確認する。
  • 注意点の「用語だけ覚えても、設計・実装・運用でどこに効くかを確認しないと判断を誤る。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

BGPルーティングAS_PATHネットワーク経路選択BGPルーティングAS_PATH
参考: 公式情報