Skip to content

BGP

基本概念

BGP (Border Gateway Protocol) はインターネット規模で使うパスベクター型EGP (Exterior Gateway Protocol)。 AS (Autonomous System) 間の経路制御を属性ベースで行う。

項目内容
種別パスベクター型 EGP
利用領域AS間(外部接続)、大規模DC/ISP
メトリック思想距離より属性(Policy)重視
代表分類eBGP (external BGP), iBGP (internal BGP)

eBGP と iBGP

項目eBGPiBGP
接続相手別AS同一AS
既定TTL1255
AS_PATH自ASを追加して広告自ASは追加しない
Next Hop送信元に書き換わるのが基本そのまま渡るため next-hop-self を使うことが多い
こういうとき選ぶ方式理由
ISPや他社ネットワークと接続するeBGP別AS間で経路交換するため
自AS内でBGP経路を全体共有したいiBGP同一AS内で経路配布するため
AS境界のルータ同士で経路を受け渡すeBGP境界制御(ポリシー/属性調整)を行うため
受け取った外部経路を社内BGP網へ広げるiBGPAS内伝搬(RR設計含む)が必要なため
判定の最短ルール内容
AS番号が違う隣接eBGP
AS番号が同じ隣接iBGP

主なPath Attribute

属性役割備考
WeightCisco独自の最優先属性大きい方を優先(ローカル装置のみ有効)
Local PreferenceAS内の出口選択大きい方を優先
AS_PATH経由AS列短い方を優先
Origin経路生成元IGP > EGP > incomplete
MED隣接ASへの入口制御小さい方を優先(比較条件あり)
Next Hop次ホップ到達性到達不能なら経路不採用

Local Preference(Local_Preference)の主な特徴

項目内容
デフォルト値100
優先ルール値が大きい経路を優先
設定タイミング(実運用)AS内で一貫性を持たせるため、境界ルータで eBGP 受信時(in)に設定することが多い
有効範囲自AS内のみ有効(iBGPで伝搬)。eBGPへ広告する際は Local Preference は送られない
設定目的コンフィグモードコマンド例
受信経路に Local Preference を付与Route-map configset local-preference 200
eBGP受信時に適用Router configneighbor <peer-ip> route-map <map-name> in
確認コマンド見るポイント
show ip bgpLocPrf 列の値
show ip bgp <prefix>対象プレフィックスでの LocPrf 比較

BGP ベストパス(試験向け順序)

順位比較項目判定デフォルト値/既定動作
1Weight大きい方受信経路は 0、自装置起源経路は 32768
2Local Preference大きい方100
3Locally originated自装置起源を優先数値既定なし(自装置起源なら優先)
4AS_PATH長短い方数値既定なし(経路ごとに変動)
5OriginIGP > EGP > incompletenetwork 起源は通常 IGPredistribute 起源は incomplete
6MED小さい方未設定MEDは通常 0 として扱う(既定)
7eBGP / iBGPeBGPを優先同条件時は eBGP 優先(既定動作)
8IGP metric to next hop小さい方数値既定なし(IGP計算結果に依存)

show ip bgp の見方

列/記号意味見るポイント
Network宛先プレフィックスどの経路の比較かを確認
Next Hop次ホップIP到達不能ならベストパスになれない
MetricMED小さい方が有利(比較条件あり)
LocPrfLocal Preference大きい方が有利(iBGP内で有効)
WeightCisco独自属性大きい方が有利(最優先)
PathAS_PATH通過AS列。AS_PATH属性はここで確認する
*有効経路BGPで有効な候補経路
>ベストパスこの経路が最終選出(*> なら有効かつベスト)
Network が空欄省略表示直前行と同じプレフィックスの別候補経路
Path 列の読み方内容
先頭側直近で追加されたASが左側に並ぶ
例: 3 2 1AS1起源の経路が AS2 → AS3 を通過して受信側に到達
ベストパス判定同条件なら AS_PATH が短い方を優先
確認コマンド見るポイント
show ip bgp全経路の *>, Weight, LocPrf, Path
show ip bgp <prefix>指定プレフィックスの属性比較を深掘り
show ip bgp summaryピア状態(Established / 受信プレフィックス数)

重要: 問題で「AS_PATH属性はどこか」と聞かれたら Path 列で判定する。

重要: デフォルトルートは Network 列に 0.0.0.0 と表示される。空欄表示とは意味が違う。

BGP メッセージ一覧

メッセージ役割主な送信タイミング補足
OPENピア確立の初期交渉TCP確立後、最初に送るAS番号、BGPバージョン、Hold Time、Router ID、Capabilityを交換
KEEPALIVEセッション維持確認OPEN 後、および定期送信Hold Time切れを防ぐ
UPDATE経路広告/撤回経路変化時NLRIとPath Attributeを運ぶ
NOTIFICATIONエラー通知と切断異常検知時送信後に通常セッション終了
ROUTE-REFRESH経路再広告要求(拡張)ポリシー変更後などセッションを切らずに再評価させる
状態遷移主に関わるメッセージ意味
Connect/ActiveOpenSentOPEN(送信)TCP接続後にBGP交渉開始
OpenSentOpenConfirmOPEN(相互交換完了)能力交渉が成立
OpenConfirmEstablishedKEEPALIVE(相互確認)セッション確立
Established 維持KEEPALIVE / UPDATE生存確認しつつ経路交換
任意状態 → 切断NOTIFICATION異常を通知して終了
確認コマンド見るポイント
show ip bgp summaryState/PfxRcd で確立可否を確認
show ip bgp neighborsピア詳細、Capability、メッセージ関連情報

BGP セッション状態一覧(show ip bgp summary

状態意味最初に見るポイント
Idleピア接続開始前/再試行待ちneighbor 設定、到達性、shutdown 有無
Idle (Admin)管理的にBGPピアを停止中neighbor <peer-ip> shutdown の有無
ConnectTCP接続を開始中(TCP/179)ACL/FW、対向IP、経路到達性
Active接続失敗後に再試行中Connect と同様。疎通不良が多い
OpenSentOPENメッセージ送信済み、応答待ちAS番号不一致、認証不一致、能力不一致
OpenConfirmOPEN交換完了、KEEPALIVE待ちタイマー/認証/対向状態
Establishedセッション確立、経路交換中PfxRcd 件数が期待通りか
State/PfxRcd 列の見方解釈
文字列が表示される(例: Activeまだ Established ではない
数字が表示される(例: 23Established で、受信プレフィックス数が 23
切断方法と表示典型表示
neighbor <peer-ip> shutdown で停止Idle (Admin)
インターフェース shutdown で切断Idle / Active(通常 Admin は付かない)

最短確認: show ip bgp summaryState/PfxRcd を見て、文字列ならセッション障害、数字なら経路内容を show ip bgp で確認する。

運用トラブルシュート(Established/Idle Trap 多発)

症状典型原因
Established / Idle のTrapが大量発生セッションフラップ(回線不安定、設定不一致、NOTIFICATION 連発)
切り分け順コマンド見るポイント
1show ip bgp summary揺れているピアと State/PfxRcd の遷移を特定
2show ip bgp neighbors <peer-ip>Last reset理由、NotificationのError Code/Subcode
3show logging | include BGP|NOTIFICATION同一エラーの連続発生有無
4show ip route <peer-ip> / show interface到達性、IFエラー、物理断・揺らぎ
5show running-config | section router bgpremote-as、認証、timer、capability設定差分

重要: 原因が残ると Connect/Active → NOTIFICATION → Idle を繰り返すため、Trapだけ止めても根本解決にはならない。

BGP ピアグループ(Peer Group)設定

目的内容
設定簡素化複数ピアに共通のBGP設定をまとめて適用する
運用効率化設定変更時の作業量とミスを減らす
設定手順コンフィグモードコマンド
BGPプロセスに入るGlobal configrouter bgp <asn>
ピアグループ作成Router configneighbor <group-name> peer-group
グループ共通パラメータ設定Router configneighbor <group-name> remote-as <asn>
ピアをグループへ所属Router configneighbor <peer-ip> peer-group <group-name>
共通設定の例(任意)コマンド
update-source 共通化neighbor <group-name> update-source loopback0
route-map 共通化neighbor <group-name> route-map <map-name> in
next-hop-self 共通化neighbor <group-name> next-hop-self
bash
router bgp 65001
 neighbor group1 peer-group
 neighbor group1 remote-as 65001
 neighbor 2.2.2.2 peer-group group1
 neighbor 3.3.3.3 peer-group group1
 neighbor 4.4.4.4 peer-group group1
よくあるミス説明
neighbor peer-group group1構文誤り(正しくは neighbor group1 peer-group
neighbor <peer-ip> group1 peer-group構文順が逆(正しくは neighbor <peer-ip> peer-group group1
自分自身のIPを所属させるピアとして不適切(相手ピアIPを指定する)
確認コマンド見るポイント
show running-config | section router bgpグループ定義と所属ピアの整合
show ip bgp summaryメンバー各ピアがEstablishedか
show ip bgp neighbors各ピアに適用された属性/セッション詳細

eBGP におけるループ回避

デフォルト動作内容
AS_PATH確認受信経路のAS_PATHに「自AS番号」が含まれている場合、その経路を破棄する
目的AS間で経路が戻ってくるループを防止する
具体例判定
自ASが 13、受信AS_PATHが 2 13自AS 13 を含むため破棄
自ASが 13、受信AS_PATHが 2 3自ASを含まないため受信候補
回避策使う側何をするか
as-override送信側(中間ルータ)広告時にAS_PATH内の相手ASを送信側ASへ置換して送る
allowas-in受信側自ASを含むAS_PATHでも受け入れる
確認コマンド見るポイント
show ip bgpPath 列に自ASが含まれているか
show ip bgp neighbors <IP> received-routes受信経路が拒否/受理されているか(機種依存)

重要: eBGPの基本は「自ASを含む経路は捨てる」。設計上必要な場合のみ as-overrideallowas-in を使う。

as-override

目的内容
受信拒否回避受信側が「自ASをAS_PATH内に含む経路」を破棄する動作を回避する
典型シーン同一顧客ASが複数拠点で接続され、途中ASを跨いで相互到達させたいとき
動作説明
as-override 有効時指定ネイバへ広告する際、AS_PATH内の相手AS番号を送信側ASへ置換して送る
効果受信側に自AS番号が見えなくなり、経路を受け取れるようになる
設定目的コンフィグモードコマンド
as-override有効化Router configneighbor <neighbor-ip> as-override
反映を促進(任意)Privileged EXECclear ip bgp * soft
コマンド
R2がR1/R3向けにas-overrideneighbor 192.168.12.1 as-override / neighbor 192.168.23.3 as-override
as-overrideallowas-in違い
as-override送信側でAS_PATHを書き換える(通常は中間PE側で設定)
allowas-in受信側で「自ASを含む経路」を受け入れる(CE側で設定)
よくあるミス説明
自分自身のIPをneighbor指定ネイバ指定ミス(対向ピアIPを指定する)
as-override の適用先誤り「経路を送り出す側」のneighborへ設定する必要がある

BGP Router ID

項目内容
役割BGPベストパス選択で最後のタイブレーク要素として使われる
比較ルールタイブレーク時は Router ID が小さい方を優先
ベストプラクティスbgp router-id で静的に明示設定する
理由自動選出に依存すると、IFアドレス変更や再起動タイミングで意図せず変わる可能性がある
未設定時の選出順内容
1有効なLoopback IFのうち最大IPアドレス
2Loopbackが無ければ、その他有効IFの最大IPアドレス
設定目的コンフィグモードコマンド
Router IDを明示設定Router configbgp router-id <A.B.C.D>
確認コマンド見るポイント
show ip bgp summaryBGP router identifier の値
show running-config | section router bgpbgp router-id の設定有無

重要: Router ID変更の反映にはBGPセッション再確立が必要になるため、変更タイミングを設計して実施する。

BGP 基本設定

設定目的コンフィグモードコマンド
BGPプロセス開始Global configrouter bgp <asn>
ピア定義Router configneighbor <peer-ip> remote-as <asn>
広告プレフィックス指定Router confignetwork <prefix> mask <mask>
iBGPでNext Hopを書き換えRouter configneighbor <peer-ip> next-hop-self
Loopback終端で張るRouter configneighbor <peer-ip> update-source loopback0
neighbor ... route-map ... in/out意味(自分視点)
in隣接ルータから受信した経路に適用neighbor 10.0.0.2 route-map RM-IN in
out隣接ルータへ送信する経路に適用neighbor 10.0.0.2 route-map RM-OUT out
確認コマンド見るポイント
show ip bgp summaryピア状態(Established/PfxRcd)
show ip bgpベストパス(*>)と属性
show ip bgp neighborsセッション詳細、受信/送信プレフィックス
show ip route bgpRIB採用済みBGP経路
コマンド使い分け使う場面
show ip bgp summaryまず全体ヘルス確認したいとき(ピアが張れているか、件数が入っているか)
show ip bgp経路そのものを確認したいとき(*> のベスト、AS_PATH/Next Hop/MED/LocalPrefの比較)

最短手順: show ip bgp summary で異常ピアを特定してから、show ip bgp で経路属性を深掘りする。

BGPのリセット(Hard / Soft)

種別コマンド動作使うとき
ハードリセットclear ip bgp *全BGPピアを切断して再確立。経路を再学習し直すOPEN/Capability不一致などでセッション自体を作り直したいとき
ソフトリセットclear ip bgp * softセッションは維持したまま経路情報を再評価/再交換Route-map、Local Preference、MED などポリシー変更を即時反映したいとき
補足内容
影響範囲* は全ピア対象。影響を絞るなら clear ip bgp <peer-ip> 系を使う
運用目線本番はまず soft を優先し、hard は通信影響を理解して実施する

RIB-Failure

項目内容
意味BGPテーブルでは有効/ベストでも、RIB(ルーティングテーブル)へ投入されなかった状態
典型原因同一プレフィックスで、より優先される経路(主にADが小さい経路)が既にRIBへ入っている
試験ポイントshow ip bgp のステータスコード rRIB-failure を示す
よくあるパターン
iBGP経路(AD 200)とOSPF経路(AD 110)が競合OSPFがRIB採用、BGP側はRIB-failure
iBGP経路(AD 200)とStatic経路(AD 1)が競合StaticがRIB採用、BGP側はRIB-failure
確認コマンド見るポイント
show ip bgp対象経路に r が付いているか
show ip bgp rib-failureRIBへ入らない理由の確認
show ip route <prefix>実際にRIBへ採用された経路種別
必要時の調整コンフィグモードコマンド
BGP ADの調整Router configdistance bgp <external-ad> <internal-ad> <local-ad>

重要: RIB-failure は「BGP不達」ではなく「優先度の結果」で起きることが多い。設計意図どおりなら問題ない。

試験での最短チェック

チェック見るポイント
ピアが張れないremote-as / update-source / 到達性 / ACL
受信しているが使われないNext Hop 到達不能、属性負け
期待経路が広告されないnetwork 条件(RIB存在)やポリシー

覚え方: 「BGPは距離よりポリシー。Weight/LocalPrefで出口を決める」。