BGPって「インターネットを支える超重要技術」なのに、勉強を始めると AS/属性/ベストパス で一気に難しく感じますよね。
この記事は、初心者がつまずきやすいポイントを先回りして、CCNP(ENCOR/ENARSI)で点が取れる理解まで一直線でつなげます。

BGPを一言で言うと?
BGPが必要な理由
IGPとの違いを3行で
BGPは一言でいうと、「ネットワークの“会社同士”が、行ける場所(宛先)を教え合う仕組み」です。
ここで言う“会社同士”は、**AS(自治システム)**という単位で考えます。
ASは「一つの組織が管理しているネットワークのまとまり」くらいでOKです。
BGPは、このAS同士をつないで、インターネット全体が迷子にならない様に道案内をしています。
一方で、OSPFみたいなIGPは「会社の中(同じASの中)」の道案内が得意です。
例えば、同じ学校の校内で教室に行く道はIGP、学校から別の学校へ行く道はBGP、みたいなイメージです。
BGPが強いのは、ただ最短ルートを選ぶだけじゃなくて、こうしたい”という方針(ポリシー)で道を選べるところです。
「この回線は高いからなるべく使わない」「この出口を使わせたい」みたいな“都合”を反映できるのがBGPの特徴です。
CCNPでBGPが出る範囲
ENCORで問われる「直結eBGP」
ベストパスの超基本
CCNP ENCORでは、「BGPを設定出来るか」だけでなく、**“どうやって動いてるか説明出来るか”**が大事です。
実際、試験範囲に「直接つながっている相手どうしのeBGPを設定・確認(ベストパス選びとネイバー関係)」が書かれています。
初心者が最初にやる事はシンプルで、流れはこの順です。
- 相手と友だちになる(セッション確立)
- 道(経路)を交換する
- 同じ目的地への道が複数あるとき、どれが“代表”になるか(ベストパス)
「ベストパス」は、ざっくり言うと“評価の順番”があり、その順番で勝ち残った道が選ばれます。
Ciscoの説明でも「複数の道が来たとき、ベストパスを決めてルーティングテーブルに入れる」と整理されています。
試験でも現場でも役立つ“確認コマンド”はこれです(暗記より、見て判断出来るのが強い)。
ENARSIで問われる「トラシュー&設計」
RR/ポリシー/属性
ENARSIは、もっと“現場寄り”です。試験範囲にも、route-map(ルートマップ:条件つきのルール)やフィルタ、ルートリフレクタ(RR)など、運用っぽい項目が入っています。
ENARSIをラクにするコツは、BGPのトラブルを次の順で考える事です。
- つながってる?(セッション)
- 次の行き先(next-hop)に行ける?
- フィルタで落としてない?
- iBGPの仕組み(RRなど)で止まってない?
- 属性(ルートの“性格”)で負けてない?
この順番で見ていくと、原因が見つかり易いです。
Ciscoのトラブルシュート資料でも「次ホップに行けるようにルートを用意する」「iBGPなら動的ルーティングで伝える」など、まず到達性を見る考え方が出てきます。
BGPの基本用語を“絵”で覚える
ASとAS番号
AS_PATHがループを防ぐ
BGPでよく出るのが AS番号 と AS_PATH(エーエスパス)です。
AS_PATHは「この道はどのASを通ってきたか」という通り道の記録です。
これがあるおかげで、BGPは大きなネットワークでも“ぐるぐる回る”事故(ループ)を減らせます。
JPNICの解説でも、BGPはAS番号を使い、UPDATEで経路情報と属性(パス属性)を運ぶ、とまとめられています。
イメージは「スタンプラリー」です。
道の説明に「通った場所の一覧」が付いてきます。
もしその一覧に自分のAS番号が入っていたら、「同じ場所に戻ってきてる=危ない」ので、その道は基本使いません。
これが“ループを防ぐ”考え方です。
ここが分かると、あとで出てくる AS-PATH prepend(わざと遠回りに見せる)も理解し易くなります(prependは“スタンプを増やして遠く見せる”イメージ)。
eBGPとiBGP
iBGPは勝手に中継しない
ここが初心者の最大のつまずきポイントです。
iBGP(同じASの中のBGP)は、iBGPで覚えた道を、別のiBGP相手にそのまま流しません。
だからiBGPだけでちゃんと経路を広げたいなら、基本は全員が全員と話す(フルメッシュ)が必要になります。
RFCでも、iBGPをフルメッシュにしないとスケールが問題になり、解決策としてRRが説明されています。
なぜそんなルールがあるかというと、同じASの中だと「通り道(AS_PATH)」が変わらず、雑に中継すると混乱しやすいからです。
現実にはフルメッシュはつらいので、次の章で出てくる RR(Route Reflector:中継役) を使って楽にします。
セッション確立:BGPはTCPでしゃべる
4つのメッセージ
OPEN/UPDATE/KEEPALIVE/NOTIFICATION
BGPは、TCPでつながります。
だから、まず“会話の回線”を作ってから話します。
RFC 4271でも、確立後にUPDATE/KEEPALIVE/NOTIFICATIONを交換する(Established状態)事が書かれています。
メッセージは基本この4つを覚えればOKです。
- OPEN(オープン):最初の自己紹介。「私はAS65001だよ」みたいに名刺交換する
- KEEPALIVE(キープアライブ):生きてる確認。「まだつながってるよ」
- UPDATE(アップデート):道を渡す本番。「この宛先へはこう行けるよ」
- NOTIFICATION(ノーティフィケーション):大きなエラー通知。これが出ると切れることが多い
JPNICの資料でも、UPDATEが経路情報を運び、KEEPALIVEはタイマーとセットで“落ちたか判断する”ような話が説明されています。
ルート選択:ベストパスはこう決まる
まずロンゲストマッチ
「経路の粒度」で勝負が決まる
ベストパスの前に、超重要な大前提があります。
ルータは宛先を決めるとき、一番細かく合う道(最長一致=ロンゲストプレフィックスマッチ)を使います。
これはルータの基本ルールとしてRFC 1812にもはっきり書かれています。
例:
- 10.0.0.0/8(ざっくり)
- 10.1.2.0/24(細かい)
が両方あると、10.1.2.3宛ては /24が勝ちです。つまり、属性でベストパスを頑張っても、もっと細かい経路が別にあればそっちが使われる事があります。だから、思った通りにならないときは「/何(プレフィックス長)が入ってる?」を最初に見るのが近道です。
属性の優先順位(Cisco例)
Weight/LocalPref/AS_PATH/Origin/MED
ベストパスは「道の点数勝負」です。
BGPには**属性(その道の“性格”)**があり、順番に比べて勝った道が選ばれます。
Ciscoの説明では、Weight、Local Preference、AS_PATH、Origin、MEDなどを順に見てベストパスを決める流れがまとまっています。
中学生向けに超ざっくり言うと:
- Weight(重み):そのルータだけの“えこひいき”
- Local Preference(ローカルプリファレンス):ASの中の“みんなのルール”。大きいほど優先
- AS_PATH:通るASが少ないほど有利(短い方が勝ちやすい)
- Origin/MED:細かい調整(条件つきで効く)
そして超大事なのがこれ。
next-hop(次ホップ)に行けない道は、最初から候補から落ちる事がある、という点です。
Ciscoも「なぜルータがパスを無視するか」を説明していて、次ホップ到達性は重要ポイントです。
Juniperの説明でも「次ホップに行けない経路は選ばれない」という考え方が明確に書かれています。
ルート制御:CCNPで点が取れる設定の型
フィルタ(prefix-list/route-map)
“許可リスト”から作る
BGPは広い範囲に影響が出るので、初心者ほど 「通していいものだけ通す」 が安全です。
これが“許可リスト方式”です。
- prefix-list(プレフィックスリスト):通していい宛先のリスト
- route-map(ルートマップ):条件に合うものだけに、追加のルールを当てる仕組み
Ciscoの資料でも、不要な経路更新を減らすためにフィルタを使う考え方(prefixベースのフィルタ)や、ルート制御の重要性が説明されています。
やり方の“型”はこれです。
- prefix-listで「許可」する宛先を作る
- route-mapで「その宛先だけ」通したり、属性を変えたりする
- neighborに in/out で当てる(入ってくる道/出していく道)
この型を作ると、「なぜ経路が来ない?」「なぜ広告しない?」のときに、まずフィルタを疑えるようになります。
トラフィックエンジニアリング
LocalPref・AS-PATH prepend・Community
ここは言葉が難しく見えるけど、やる事は単純です。
コツは “行き”と“帰り”を分ける事。
- 行き(自分のASから外へ出る道):自分のASの中で決めやすい → Local Preferenceが主役
- 帰り(外から自分のASへ入ってくる道):相手が選ぶ → AS-PATH prependで“遠く見せる”工夫がよく使われる
そして便利なのが Community(コミュニティ)。
これは「この道はこう扱ってね」という“タグ”みたいな物です。
例えば NO_ADVERTISE(誰にも広告しない) や NO_EXPORT(ASの外へ出さない) の様な“有名タグ”があります。
Ciscoコミュニティの記事や解説でも、no-advertise等の意味が説明されています。
初心者はまず、「LocalPrefは内側で効かせる」「prependは外側にお願いする」「communityはラベル」という3点だけ覚えれば十分です。
経路集約
aggregate-addressとsummary-only
経路が増えると、BGPの表が大きくなって重くなります。
そこで使うのが 経路集約(たくさんの道を、まとめて短くする)です。
Ciscoの資料では
で集約でき、ただし属性が継承されないなどの注意点が説明されています。
集約を中学生向けに言うと、「住所をまとめる」感じです。
- 「東京都千代田区1丁目、2丁目、3丁目…」を
- 「東京都千代田区」みたいにまとめる
というイメージです。便利だけど、まとめると細かい情報が消えます。だから、集約するときは「何が消えるか」を意識する必要があります。
また、summary-only(集約した経路だけ出したい)という考え方もあり、細かい経路を出したくないときに使います(状況によっては運用上助かります)。
トラブルシュート:詰まるのは大体ここ
Next-Hop到達性
next-hop-selfとIGPを疑う
BGPトラブルで一番多いのはこれです。
「相手とはつながってる(Established)っぽいのに、経路が使えない/入ってこない」
この時、まず見るのが next-hop(次ホップ)です。
次ホップは「次に行くべき相手の住所」みたいなもの。
そこに行けないなら、その道は使えません。
Ciscoのトラブルシュートでも「次ホップに行けるようにルートを入れる(スタティックや動的ルーティング)」と説明されています。
そして、iBGPでよく効くのが next-hop-selfです。
これは「次ホップを“自分”に書き換えて、相手が迷わないようにする」考え方です。
Ciscoコミュニティでも、next-hop-selfが“next-hopを一貫した値にする”ために使われる、という説明があります。
チェックの順番はこれでOKです。
show ip bgpで next-hop を見るshow ip routeで next-hop に行けるか見る- 行けないなら IGP/スタティック/next-hop-self を疑う
iBGPスケール問題
ルートリフレクタでフルメッシュ回避
iBGPは「勝手に中継しない」ので、ルータが増えるとフルメッシュが地獄になります。
そこで使うのが RR(Route Reflector)です。
RRは「フルメッシュしなくても済むようにする仕組み」としてRFC 4456で説明されています(RFC 2796を置き換えたものです)。
イメージは「クラスの連絡係」です。
- みんなが全員に連絡するのは大変
- 連絡係(RR)に言えば、RRがみんなに回してくれる
という感じです。これでiBGPの数が増えても回せます。
ただしRRを入れても、next-hop問題や設定ミスで届かない事があります。
だから、最初は「RR1台+クライアント2台」の小さな形で動く事を確認してから広げるのが安全です。
学習ロードマップ(初心者→CCNP)
演習で覚える最短ルート
3つのラボ課題と確認コマンド
最後に、暗記を減らして“体で覚える”ためのラボを3つにしぼります。
ENCORは「直結eBGPの設定・確認(ベストパス、ネイバー)」が明記されています。
ENARSIは「route-map(ルール)、フィルタ、RR」などトラシューと設計寄りが入っています。
ラボ①:直結eBGP(ENCORの土台)
- ゴール:Establishedになる → 経路を交換する → どれが選ばれたか言える
- 見るコマンド:
ベストパスの考え方はCiscoの解説を読むと整理しやすいです。
ラボ②:属性で“出口”を変える(ベストパスを体験)
- ゴール:LocalPrefやAS_PATHで、選ばれる道が変わるのを目で見る
- ここで「次ホップに行けないと候補落ち」も体験すると一気に強くなります。
ラボ③:iBGP+RR+next-hop地雷(ENARSI直結)
- ゴール:iBGPの“中継しない”で詰まる → RRで解決 → next-hopで詰まって直す
- 見るコマンド:
RRはRFC 4456にまとまっているので、仕組みの理解に最適です。
まとめ
BGPは、インターネットで「ネットワークの“組織同士(AS同士)”」が、行ける場所(宛先)を教え合うためのルールです。
普通はISP同士など、別のASとつなぐ時に使い、どの相手を通すかは**方針(ルーティングポリシー)**で決めます。
経路をまとめて小さくして渡す(集約)考え方もあります。
CCNPでは、ENCORで「直結した相手とのeBGP設定・確認」と「どの道が選ばれるか(ベストパス)」がポイントです。
ENARSIではさらに、トラブル対応やルール(フィルタ/属性操作)、ルートリフレクタ(RR)など“運用っぽいところ”まで出ます。
BGPの基本の流れはこうです。
- まずTCPでつながって会話を始める
- OPEN/UPDATE/KEEPALIVE/NOTIFICATIONのメッセージで、自己紹介→道の交換→生存確認→エラー通知をする
そして「どの道を使うか」は、次の順で考えると迷いません。
- 最長一致(いちばん細かい道が勝つ):/24の道は/16より優先されます
- 同じ細かさの道が複数あるときに、BGPのベストパスで代表を決めます
- ただし、次ホップ(next-hop)に行けない道は使えないので、まず「次ホップに行けるか」を確認するのが超重要です
うまく動かない時のチェック順(これだけ覚えると強い):
- 相手とつながってる?(疎通・設定ミス)
- next-hopに行ける?(経路がないと使えない)
- フィルタ(許可/拒否)で落としてない?
- iBGPなら「勝手に中継しない」ルールで止まってない? → RRで解決できることがある
- 最後に、属性(Weight/LocalPref/AS_PATHなど)で負けてないかを見る
この順番で理解して、ラボで「直結eBGP」「属性でベストパスが変わる」「iBGP+RR+next-hop問題」を体験すると、暗記が減って一気にラクになります。
コメント