BGPの経路選択とは?ベストパス決定の優先順位と属性を図解

ネットワーク上級編 22/全70記事

この記事は、 「ネットワーク上級編|要件定義・設計・クラウド・自動化へ進む」 の第22回です。

前回はBGPの基本として、AS、eBGP・iBGP、BGPピア、経路広告の考え方を学びました。 今回は、同じ宛先への経路を複数受信したときに、 BGPがどの経路をベストパスとして選ぶのかを理解します。

NETWORK ADVANCED|CHAPTER 3 ADVANCED NETWORKING

BGPの経路選択とは?ベストパス決定の優先順位と属性を図解

BGPでは「帯域が広い回線だから」「ルーターまで近いから」という理由だけで 経路が決まるわけではありません。 LOCAL_PREF、AS_PATH、ORIGIN、MEDなど複数の属性を決められた順番で比較し、 最も優先する1つの経路を選択します。 この記事では、暗記ではなく「なぜその経路が選ばれるのか」を説明できるように整理します。

対象レベル Level 3〜4・上級
想定読了時間 約30分
身につく成果 BGPのベストパスを判断できる
前提知識 BGPの基本
演習環境 ブラウザ・CLI例

BGPを学び始めたときに、特につまずきやすいのが 「結局、どの経路が選ばれるのか」という部分です。

OSPFではコストを中心に考えますが、BGPは 経路の距離だけではなく、管理者のポリシーを反映して経路を選択する ことが大きな特徴です。

そのため実務では、選択順序を丸暗記するだけでなく、 「通常時はISP-Aを使いたい」「ISP-Bはバックアップにしたい」といった 設計意図をBGP属性へ変換する力が重要になります。

この記事を読み終えるとできること

  • BGPが複数経路からベストパスを選ぶ仕組みを説明できる
  • WEIGHTとLOCAL_PREFの違いを説明できる
  • AS_PATHが短い経路が選ばれる条件を理解できる
  • ORIGINとMEDの意味を説明できる
  • eBGPとiBGPのどちらが優先されるか判断できる
  • show ip bgpの結果から選択理由を考えられる
  • 主回線・バックアップ回線の経路制御を考えられる
  • 顧客へBGP経路制御の考え方を説明できる

BGPの経路選択とは何か

最初に覚える定義

BGPの経路選択とは、同じ宛先プレフィックスへ到達する複数のBGP経路から、 パス属性やポリシーを順番に比較し、使用するベストパスを決定する処理です。

たとえば、自社ネットワークが2つのISPへ接続されているとします。

2つのISPから同じ宛先経路を受信する例

ISP-A AS 64501
自社ルーター AS 65010
ISP-B AS 64502
ISP-AとISP-Bの両方から 203.0.113.0/24 への経路を受信

自社ルーターから見ると、203.0.113.0/24へ到達する方法が2つあります。

しかし通常は、どちらか一方を ベストパスとして選びます。

BGPは、その判断に複数のパス属性を利用します。

重要: BGPでは「経路が2本ある」ことと「2本を同時に転送へ使う」ことは別です。 通常のベストパス選択では1つのパスを選択し、 複数パスをルーティングテーブルへ導入する場合は BGP Multipathなど別の設定を検討します。

BGPは単純な最短経路を選ぶわけではない

BGPを理解するうえで最も重要なのは、 「物理的に最短の経路を選ぶプロトコルではない」 という点です。

BGPはインターネット上のAS間で経路を交換するために使われ、 ネットワーク管理者が決めた ルーティングポリシーを反映できます。

「近い経路」より「使いたい経路」を優先できる

ISP-A 高品質・主回線
LOCAL_PREF 200
自社AS ISP-Aを優先
LOCAL_PREF 100
ISP-B バックアップ

たとえばISP-Bの方がAS_PATHが短かったとしても、 ISP-A側のLOCAL_PREFを高く設定していれば、 ISP-Aを優先させることができます。

BGPで重要なのは「最短」ではなく「ポリシー」です。

コスト、契約、回線品質、トラフィック量、バックアップ設計など、 組織の方針に合わせて経路を選択できます。

BGPベストパス選択の優先順位

BGPでは、複数の属性を同時に点数化するのではなく、 優先順位の高い項目から順番に比較します。

上位の項目で優劣が決まれば、 原則として下位の項目まで比較しません。

注意: BGPの細かなベストパス選択処理は、 ベンダーやOS、設定によって差があります。 以下はCisco IOS/IOS XEで理解しやすい代表的な順序をベースにしています。 特にWEIGHTはCisco固有の値です。

  1. WEIGHTが大きい経路 Cisco固有。値が大きい経路を優先します。
  2. LOCAL_PREFが大きい経路 AS内部全体で、外向き通信に利用する出口を決める代表的な属性です。
  3. ローカルルーター自身が生成した経路 自身でBGPへ投入した経路を優先します。
  4. AS_PATHが短い経路 宛先までに通過するAS数が少ない経路を優先します。
  5. ORIGINが小さい経路 一般に IGP → EGP → INCOMPLETE の順で優先します。
  6. MEDが小さい経路 同じ隣接ASから複数の入口がある場合などに利用されます。
  7. eBGPで学習した経路 ここまで同じであれば、iBGPよりeBGP経路を優先します。
  8. BGP NEXT_HOPまでのIGPコストが小さい経路 AS内部からBGPの出口まで到達しやすい経路を優先します。
  9. さらにタイブレークを行う 経路の古さ、Router ID、Route ReflectorのCluster List、 ネイバーアドレスなどで最終的に1つへ絞ります。

最初からすべてを暗記する必要はありません。

実務ではまず、 LOCAL_PREF → AS_PATH → MED がどの方向のトラフィック制御に使われるのかを理解し、 必要に応じて詳細なタイブレーク順序を確認する方が実践的です。

WEIGHT:そのルーターだけで経路を優先する

WEIGHT

大きい値を優先

Cisco機器で利用されるローカルな経路選択値です。 設定したルーター自身だけで有効です。

適用範囲

1台のルーター内

BGP UPDATEによって他ルーターへ伝搬する属性ではありません。 AS全体の出口制御にはLOCAL_PREFの方が適しています。

経路 WEIGHT 結果
ISP-A経由 500 優先
ISP-B経由 100 非優先

WEIGHTを「BGP標準属性」として覚えないようにしましょう。 Cisco固有のパラメータなので、 マルチベンダー環境の設計資料では特に区別して記載する必要があります。

LOCAL_PREF:自分のASから出ていく出口を決める

LOCAL_PREF

LOCAL_PREFは、自分のASから外部へ通信するとき、 どの出口を優先するかを決めるために使われる代表的なBGP属性です。 値が大きい経路を優先します。

たとえば、自社がISP-AとISP-Bの2社へ接続しているとします。

接続先 LOCAL_PREF 用途
ISP-A 200 主回線
ISP-B 100 バックアップ

この場合、他の上位条件が同じであれば、 自社AS内ではISP-A経由の経路を優先できます。

LOCAL_PREFによる外向き通信の制御

ISP-A LOCAL_PREF 200
自社AS こちらを優先
ISP-B LOCAL_PREF 100
自社からインターネットへ出る通信は ISP-Aを優先

Cisco環境ではLOCAL_PREFのデフォルト値は通常100です。 主回線側を200などへ上げる設計が分かりやすい例です。

設定イメージ

route-map PREFER-ISP-A permit 10 set local-preference 200 router bgp 65010 neighbor 192.0.2.1 route-map PREFER-ISP-A in

設計の考え方: AS内に複数のBGPルーターがある場合、 特定ルーターだけのWEIGHTではなく、 iBGPを通じてAS内部へ共有できるLOCAL_PREFを使う方が 「AS全体としてどの出口を使うか」を設計しやすくなります。

ローカル生成経路:自分自身が生成した経路を優先する

WEIGHTとLOCAL_PREFが同じ場合、 Ciscoの代表的なベストパス処理では、 そのルーター自身がBGPへ生成した経路が優先されます。

たとえば、次のような方法でBGPへ経路を投入している場合です。

  • networkコマンド
  • 他プロトコルからの再配送
  • 集約経路の生成

この項目は、通常のデュアルISP設計で管理者が最初に操作する属性というより、 ベストパス判定の途中に存在するルールとして理解しておくとよいでしょう。

AS_PATH:通過するASが少ない経路を優先する

AS_PATH

AS_PATHは、経路がどのASを通って伝わってきたのかを記録する属性です。 他の上位条件が同じであれば、一般にAS_PATHが短い経路を優先します。

BEST

経路A

AS_PATH: 64501 64496

AS数:2

VS

経路B

AS_PATH: 64502 64503 64496

AS数:3

LOCAL_PREFなど、それより上位の条件が同じなら、 AS数が少ない経路Aが選択されます。

AS-PATH Prepending

AS_PATHが長い経路ほど選ばれにくい性質を利用し、 自分のAS番号を意図的に複数回追加する方法を AS-PATH Prependingと呼びます。

広告経路 相手から見えるAS_PATH例 目的
主回線 65010 通常はこちらを使ってほしい
バックアップ回線 65010 65010 65010 選ばれにくくする
route-map BACKUP-ISP permit 10 set as-path prepend 65010 65010 65010

AS-PATH Prependingを行っても、 必ず期待どおりに相手側の通信経路を制御できるとは限りません。 相手ASはLOCAL_PREFなど、AS_PATHより優先度の高いポリシーを設定している可能性があるためです。

ORIGIN:経路がBGPへ入った方法を示す

AS_PATHまで同じ場合は、 ORIGIN属性が比較されます。

ORIGIN 表示 優先度
IGP i 最も高い
EGP e 中間
INCOMPLETE ? 低い

「ORIGINがIGPだからOSPFで学習した」という意味ではありません。

ORIGINはBGP経路がBGPへどのように導入されたかを示す属性です。 「IGP」という名前だけを見て、 OSPFやIS-ISの経路だと判断しないようにしてください。

MED:相手ASへ「こちらの入口を使ってほしい」と伝える

MED

MED(Multi-Exit Discriminator)は、 複数の接続点がある隣接ASに対して、 どの入口を優先してほしいかを伝えるために使われる属性です。 値が小さい方を優先します。

同じISPと2回線で接続している例

自社 東京 MED 50
ISP AS64501 入口を選択
自社 大阪 MED 200
他条件が同じなら、 MED 50の東京側を優先してほしいと示す

MEDは値が小さい方が優先です。

ただし、Ciscoの通常動作では 同じ隣接ASから受信した経路同士で比較する ことが基本です。

MEDは「相手への希望」を伝える属性と考えると分かりやすいです。 相手ASのポリシーによっては、 MEDよりLOCAL_PREFなどが優先されるため、 自分だけで完全に相手の経路を決定できるわけではありません。

eBGPとiBGP:条件が同じならeBGPを優先する

WEIGHT、LOCAL_PREF、AS_PATH、ORIGIN、MEDなど、 それまでの条件が同じであれば、 Ciscoの代表的なベストパス処理では eBGPで直接学習した経路をiBGP経路より優先します。

BEST

eBGP経路

外部ASのBGPネイバーから直接受信

VS

iBGP経路

自AS内のBGPルーターから受信

「eBGPだから必ず勝つ」わけではありません。 eBGP/iBGPの比較より前にLOCAL_PREFやAS_PATHなどが比較されます。

BGP NEXT_HOPまでのIGPコストも比較される

ここまでの属性が同じ場合、 BGP NEXT_HOPへ到達するための IGPコストが小さい経路が優先されます。

同じBGP経路でも出口までの距離が違う例

社内ルーター BGP経路を選択
IGP Cost 10
出口A BGP NEXT_HOP
IGP Cost 50
出口B BGP NEXT_HOP

このように、 BGPとOSPFなどのIGPは完全に独立しているわけではありません。

BGP NEXT_HOPの到達性やコストを IGPが支えている構成では、 IGP設計もBGPの経路選択へ影響します。

大規模ネットワークでは、 「BGP属性は同じなのに出口が想定と違う」という場合に、 BGP属性だけでなく NEXT_HOPまでのIGPコストも確認します。

経路選択を例題で確認する

実際に2つのBGP経路を比較してみましょう。

自社ルーターが、203.0.113.0/24に対して次の2経路を受信しています。

属性 ISP-A経由 ISP-B経由
WEIGHT 0 0
LOCAL_PREF 200 100
AS_PATH 64501 64510 64496 64502 64496
ORIGIN IGP IGP
MED 100 0
学習元 eBGP eBGP

どちらが選ばれるか

正解は ISP-A経由です。

1.WEIGHT
0 = 0
決まらない
2.LOCAL_PREF
200 > 100
ここで決定
ISP-A
以降は不要
AS_PATH等は比較不要

ISP-BはAS_PATHが短く、MEDも小さくなっています。

しかしLOCAL_PREFの方が先に比較されるため、 LOCAL_PREF 200のISP-Aが選ばれます。

この考え方がBGP経路選択の核心です。

「どの属性が良いか」を全部見て多数決するのではなく、 優先順位の高い属性から比較し、差が出た時点で決まる と考えます。

LOCAL_PREFも同じなら?

両方のLOCAL_PREFが100だったとします。

経路 LOCAL_PREF AS_PATH
ISP-A 100 64501 64510 64496
ISP-B 100 64502 64496

この場合は上位条件が同じなので、 AS_PATH比較まで進みます。

ISP-B側のAS_PATHの方が短いため、 ISP-B経由が優先されます。

送信経路と受信経路をどう制御するか

BGP設計では、 自社から外へ出る通信インターネットから自社へ入ってくる通信を 分けて考える必要があります。

OUTBOUND

自社 → インターネット

自社AS自身が経路を選ぶため、 比較的制御しやすい方向です。

  • LOCAL_PREF
  • WEIGHT
  • IGPコスト
INBOUND

インターネット → 自社

最終的な経路選択を行うのは相手側ASなので、 自社だけでは完全には決められません。

  • AS-PATH Prepending
  • MED
  • BGP Community
  • 広告プレフィックスの調整

主回線・バックアップ回線の例

方向 主回線を優先する方法例 考え方
自社から外部 主回線のLOCAL_PREFを高くする 自社AS自身の判断を制御
外部から自社 バックアップ回線側へAS prepend 外部ASから選ばれにくくする

送信方向だけ正常でも、受信方向が期待どおりとは限りません。

BGPによる冗長インターネット設計では、 必ず往路と復路の両方を確認します。 非対称ルーティングがファイアウォールなどへ影響しないかも確認が必要です。

show ip bgpの結果から経路選択を読み取る

Cisco系機器では、 show ip bgpshow ip bgp <prefix>を使って BGP経路を確認できます。

Router# show ip bgp 203.0.113.0/24 BGP routing table entry for 203.0.113.0/24 Paths: (2 available, best #1) Path #1: received by eBGP 64501 64496 192.0.2.1 from 192.0.2.1 Origin IGP, metric 100, localpref 200, valid, external, best Path #2: received by eBGP 64502 64496 198.51.100.1 from 198.51.100.1 Origin IGP, metric 0, localpref 100, valid, external

確認する順番

  1. 経路がvalidか確認する NEXT_HOP到達性やポリシーによって候補から外れていないかを確認します。
  2. bestがどの経路についているか確認する 実際にどのパスがベストとして選ばれているかを確認します。
  3. LOCAL_PREFを比較する 明示的な出口制御が行われていないか確認します。
  4. AS_PATHを比較する 上位属性が同じならAS_PATHの長さを確認します。
  5. ORIGIN・MEDなどを確認する さらに同一条件であれば次の属性へ進みます。

コマンド結果を見るときも、ベストパス順序と同じ上から順で確認します。

「MEDが0だからこの経路が選ばれる」と単独の属性だけを見るのではなく、 その前にLOCAL_PREFなどで決着していないか確認します。

BGP経路選択を設計するときの判断ポイント

実務では、 「どの属性を設定するか」から考えるのではなく、 どのような通信状態を実現したいのかから逆算します。

1

主回線を決める

通常時にどのISPや回線を利用したいのかを明確にします。

2

障害時動作を決める

主回線断時に、どの条件でバックアップへ切り替わるかを確認します。

3

往路・復路を分ける

自社発通信と外部発通信では、制御方法が異なることを前提にします。

4

障害検知を考える

BGPセッション断だけでなく、上流障害をどこまで検知できるか確認します。

5

相手ASの制約を確認

MEDやCommunityなど、ISPが受け付ける経路制御方法を確認します。

6

運用で確認できる形にする

設定値だけでなく、正常時のベストパスと障害時の期待値を設計書へ残します。

設計書に残したい項目

項目 記載例
主回線 ISP-A
バックアップ ISP-B
外向き制御 ISP-A受信経路へLOCAL_PREF 200を設定
内向き制御 ISP-Bへの広告時にAS-PATHを3回prepend
障害条件 ISP-A BGPセッション断時にISP-B経由へ切り替え
確認コマンド show ip bgp / show ip route / show ip bgp summary
試験 主回線断・復旧時の送受信経路を確認

設計レビューでは、 「LOCAL_PREFを200にしました」だけでは不十分です。

「通常時はISP-Aを優先し、ISP-A障害時のみISP-Bへ切り替えるため、 ISP-Aから受信する経路のLOCAL_PREFを高く設定しています」 と、設定値を設計意図へ結び付けて説明します。

BGPの経路選択でよくある勘違い

AS_PATHが一番短い経路が必ず選ばれる

AS_PATHより前にWEIGHT、LOCAL_PREFなどが比較されます。 LOCAL_PREFが異なれば、AS_PATHが短くても負ける場合があります。

MEDが小さい経路なら必ず優先される

MEDはLOCAL_PREFやAS_PATHより後で比較されます。 また、通常は比較対象となる隣接ASにも条件があります。

eBGP経路ならiBGP経路より必ず優先される

eBGP/iBGPの比較に到達する前に、 LOCAL_PREFやAS_PATHなどで勝敗が決まることがあります。

Administrative DistanceでBGPベストパスを選ぶ

同一プレフィックスに対するBGP経路同士のベストパス選択は、 BGP属性の比較で行います。 Administrative Distanceは、BGPで選ばれた経路と OSPFやスタティックなど別の経路情報源を ルーティングテーブルへ採用するときの判断とは分けて考えます。

203.0.113.0/24と203.0.0.0/16もBGP属性だけで比較する

プレフィックス長が違う経路は、 パケット転送時には最長一致の考え方が関係します。 BGPベストパスは、基本的に同じ宛先プレフィックスへの複数パスを比較する話として整理します。

AS-PATH Prependingを設定すれば受信経路を完全に制御できる

最終判断は外部ASが行います。 相手側がLOCAL_PREFなど別のポリシーを設定していれば、 自社の意図とは異なる経路が選ばれることがあります。

BGPは上位属性から順番に比較する

上位属性で差が出ればそこで経路選択が決まり、 下位の属性は選択結果に影響しません。

顧客・上司へBGPの経路選択をどう説明するか

顧客へBGPの全属性を説明する必要はありません。

技術用語を並べるより、 通常時と障害時に通信がどう流れるか を説明します。

説明例

「インターネット回線は2本ありますが、通常時は回線Aを優先して使用します。 BGPの経路優先度を設定することで、社内からインターネットへの通信は 原則として回線Aから送信します。 回線A側のBGP経路が利用できなくなった場合は、 回線Bの経路が選択される構成です。」

設計レビューでの説明例

「ISP-Aを主回線、ISP-Bをバックアップ回線とする要件です。 自ASから外部へのトラフィックは、 ISP-Aから受信した経路のLOCAL_PREFを200、 ISP-Bを100とすることでISP-Aを優先します。 ISP-Aの経路が消失した場合はISP-B経由へ切り替わります。」

このように、 要件 → 経路制御方針 → BGP属性 の順に説明できると、設計意図が伝わりやすくなります。

実務で使うBGP経路選択の英語表現

英語 意味
BGP best path BGPで選択された最適経路
path attribute パス属性
local preference LOCAL_PREF
AS path length AS_PATHの長さ
multi-exit discriminator MED
preferred path 優先経路
inbound traffic 受信方向の通信
outbound traffic 送信方向の通信
AS path prepending AS番号を意図的に追加する経路制御
tie-breaking rule 同条件時の最終的な判定ルール

ベンダー問い合わせ・確認で使える表現

Which BGP path is currently selected as the best path?
現在、どのBGP経路がベストパスとして選択されていますか?

Why is this path preferred over the other path?
なぜこの経路がもう一方の経路より優先されていますか?

We would like ISP-A to be preferred for outbound traffic.
外向き通信ではISP-Aを優先したいと考えています。

Local preference is set to 200 on routes received from ISP-A.
ISP-Aから受信する経路にはLOCAL_PREF 200を設定しています。

ISP-B should be used only as a backup path.
ISP-Bはバックアップ経路としてのみ使用する想定です。

理解度チェック

属性名の暗記ではなく、 どの段階で経路選択が決まるかを意識して答えてください。

問題1.同じプレフィックスへの2経路があります。 LOCAL_PREFが200の経路Aと、LOCAL_PREFが100の経路Bがあります。 経路BのAS_PATHの方が短い場合、どちらが優先されるでしょうか。

解答を見る
正解:経路A

LOCAL_PREFはAS_PATHより先に比較されます。 200 > 100なので、その時点で経路Aが優先されます。

問題2.LOCAL_PREFは値が大きい経路と小さい経路のどちらが優先されますか。

解答を見る
正解:値が大きい経路

LOCAL_PREFは大きい値を優先します。 自ASから外部へ出る出口の優先制御でよく使われます。

問題3.MEDは値が大きい経路と小さい経路のどちらが優先されますか。

解答を見る
正解:値が小さい経路

MEDは小さい値を優先します。 LOCAL_PREFとは大小の方向が逆なので注意してください。

問題4.AS_PATHが「64501 64496」の経路と 「64502 64503 64496」の経路があります。 それ以前の条件がすべて同じなら、どちらが優先されるでしょうか。

解答を見る
正解:「64501 64496」の経路

AS_PATHが2ASと3ASなので、 AS_PATHが短い前者を優先します。

問題5.外部から自社へ入ってくるトラフィックを制御するため、 バックアップISP側へAS-PATH Prependingを設定しました。 これで必ず主回線側から通信が入ってくるでしょうか。

解答を見る
正解:必ずとは限りません。

最終的な経路選択は外部ASが行います。 相手側のLOCAL_PREFなど別のポリシーによって、 AS_PATHが長くても選択される可能性があります。

実践演習:2つのISPからベストパスを選択する

あなたは企業ネットワークのBGP設計を担当しています。

自社AS 65010はISP-A、ISP-Bの2社へ接続しています。 198.51.100.0/24に対して、次の2経路を受信しました。

属性 ISP-A ISP-B
WEIGHT 0 0
LOCAL_PREF 150 100
AS_PATH 64501 64510 64496 64502 64496
ORIGIN IGP IGP
MED 100 20
BGP種別 eBGP eBGP

課題1.どちらがベストパスか

ISP-A、ISP-Bのどちらが選択されるか答えてください。 また、どの属性で勝敗が決まったか説明してください。

ベストパス:__________
決定した属性:__________
理由:______________________
課題1の解答を見る

ベストパス:ISP-A

WEIGHTは同じですが、 LOCAL_PREFがISP-A=150、ISP-B=100なので、 LOCAL_PREFの比較でISP-Aが選択されます。

ISP-Bの方がAS_PATHが短く、MEDも小さいですが、 それより上位のLOCAL_PREFですでに決着しています。

課題2.LOCAL_PREFを同じ100に変更したらどうなるか

ベストパス:__________
決定した属性:__________
理由:______________________
課題2の解答を見る

ベストパス:ISP-B

WEIGHTとLOCAL_PREFが同じになれば、 次の主要比較項目であるAS_PATHへ進みます。

ISP-Aは3AS、ISP-Bは2ASなので、 AS_PATHが短いISP-Bを優先します。

課題3.ISP-Aを主回線、ISP-Bをバックアップにしたい

自社からインターネットへ出る通信について、 どの属性を利用するのが分かりやすいでしょうか。

使用する属性:__________
設定方針:____________________
課題3の解答例を見る

LOCAL_PREFを利用します。

例として、ISP-Aから受信する経路をLOCAL_PREF 200、 ISP-B側を100として、 自社ASから外部への通信ではISP-Aを優先します。

課題4.外部から自社への通信でもISP-Aを優先したい

ISP-Bをバックアップ扱いにするための方法を1つ考えてください。

方法:______________________
注意点:_____________________
課題4の解答例を見る

例:ISP-B側へ広告する経路にAS-PATH Prependingを設定する。

ISP-B側のAS_PATHを長く見せることで、 外部ASから選択されにくくします。

ただし最終的な経路選択は相手ASが行うため、 必ずISP-Aへ誘導できるとは限りません。 ISPが提供するBGP Communityなども確認します。

課題5.設計理由を文章にする

次の条件を、設計書へ記載する文章にしてください。

  • ISP-Aが主回線
  • ISP-Bがバックアップ
  • 自社発通信ではISP-Aを優先
  • ISP-A障害時にISP-Bへ切り替える
設計方針:______________________________________
課題5の解答例を見る

ISP-Aを主回線、ISP-Bをバックアップ回線とする。 自社ASから外部への通常通信はISP-Aを優先させるため、 ISP-Aから受信するBGP経路へISP-Bより高いLOCAL_PREFを設定する。 ISP-A側の経路が利用不能となった場合は、 ISP-Bから受信している経路を利用して通信を継続する。

自分の言葉で説明する課題

後輩から、 「BGPはAS_PATHが一番短い経路を選ぶんですよね?」 と質問されました。 1分程度で説明してください。

BGPでは________________________________________。
説明例を見る

BGPはAS_PATHだけで経路を選ぶわけではありません。 複数の属性を決められた順番で比較し、 上位の属性で差が出ればそこでベストパスが決まります。 たとえばLOCAL_PREFが異なれば、 AS_PATHが短い経路よりLOCAL_PREFが高い経路を優先できます。 そのためBGPでは、ネットワーク管理者のポリシーを経路選択へ反映できます。

まとめ

  • BGPは同じ宛先への複数経路から パス属性を比較してベストパスを選択する
  • 経路選択は複数属性の多数決ではなく、 優先順位の高い項目から順番に比較する
  • WEIGHTはCisco固有で、値が大きい方を優先する
  • LOCAL_PREFは値が大きい方を優先し、 自ASから外部へ出る経路制御で重要
  • AS_PATHは上位属性が同じなら、 通過AS数が少ない経路を優先する
  • ORIGINは一般にIGP、EGP、INCOMPLETEの順で優先する
  • MEDは値が小さい方を優先する
  • 上位属性が同じならeBGP経路をiBGP経路より優先し、 さらにBGP NEXT_HOPまでのIGPコストなどを比較する
  • 自社から外部への通信はLOCAL_PREFなどで比較的制御しやすい
  • 外部から自社への通信は、 AS-PATH Prepending、MED、Communityなどで影響を与えられるが、 最終判断は相手ASが行う
  • 実務では「属性を何にするか」ではなく、 通常時・障害時にどの経路へ通信を流したいか から設計する

BGP経路選択を理解するポイントは、 「どの属性の数字が良いか」ではなく、 「どの属性が先に評価されるのか」を理解することです。

次の記事:冗長インターネット接続

今回は、BGPが複数の経路から ベストパスを選択する仕組みを学びました。

次の記事では、この知識を使って、 2本のインターネット回線をどのように冗長化するか を設計視点で考えます。

シングルホーム、デュアルホーム、複数ISP接続、 主回線・バックアップ回線、 往路・復路の経路制御などを整理します。

技術上の補足: BGPの標準仕様では、経路選択はローカルポリシーによる優先度と AS_PATH、ORIGIN、MED、NEXT_HOP到達性などを考慮します。 実際の詳細なベストパス処理や追加属性はベンダー・OS・設定により異なるため、 本番設計では使用製品の公式ドキュメントも確認してください。
ネットワーク上級編 22/全70記事

第3章では、BGP、冗長インターネット接続、ゲートウェイ冗長化、 QoS、マルチキャスト、MPLS、SD-WAN、SASE、Zero Trustなど、 より高度なネットワーク技術を設計視点で学びます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次