BGPの仕組み

BGP(Border Gateway Protocol)は、主にインターネット接続サービスを提供するISP(Internet Service Provider)で利用されているルーティングプロトコルです。膨大なインターネットのルート情報を扱うことができる拡張性を備えて、最適ルートの決定を柔軟に制御できることが大きな特徴です。BGPの動作の仕組みとCiscoルータなどのネットワーク機器での設定について解説します。

BGPの概要 ~AS間でルート情報を交換~

BGP(Border Gateway Protocol)は、主にAS(Autonomous System)間でルート情報を交換するために利用するEGPs(Exterior Gateway Protocols)のひとつです。

続きを読む

BGPの動作

BGPの基本的な動作の流れは以下のようになります。
1.BGPネイバーの確立
2.BGPルートの交換
3.ベストパスの選択
4.BGPネイバーの維持

続きを読む

BGPの基本設定と確認コマンド

BGPの基本的な設定の流れは、以下の3ステップです。
1.BGPルーティングプロセスの有効化
2.BGPネイバーの設定
3.BGPルートの生成

続きを読む

BGPピアグループ(Peer Group) ~ネイバーの設定をまとめよう~

BGPネイバーの設定は、同じようなコマンドを繰り返し設定することが多いです。ピアグループ(Peer Group)によって、ネイバーの設定のテンプレートを作成して、BGPネイバーの設定を簡素化できます。

続きを読む

BGPネイバーの状態

BGPネイバーの状態として、Idle/Conect/Active/OpenSent/OpenConfirm/Establishedがあります。これらBGPネイバーの状態について解説します。

続きを読む

BGPコンフェデレーションの設定

CiscoルータでのBGPコンフェデレーションの設定と検証コマンドについて解説します。

続きを読む

BGPコンフェデレーションの設定例

CiscoルータでのBGPコンフェデレーションの設定例です。
コンフェデレーションの設定をしているときに、BGPルートのAS_PATHの内容をきちんと理解しておきましょう。

続きを読む

BGPネイバー認証

BGPネイバー認証によって、不正なBGPルータとネイバーにならないようにできます。
ネイバー認証の設定コマンドと簡単な設定例について解説します。

続きを読む

BGP Well Known Mandatory アトリビュート -ORIGIN/AS_PATH/NEXT_HOP-

BGPルートには、さまざまなパスアトリビュートが付加されています。必ず付加されるパスアトリビュートがWell Known MandatoryのORIGIN/AS_PATH_NEXT_HOPの3つのパスアトリビュートです。

続きを読む

図解!BGPベストパス選択アルゴリズム

BGPではベストパスの選択はパスアトリビュートに基づいて行います。BGPのルート情報に付加されているパスアトリビュートは1つだけではありません。さまざまなパスアトリビュートに基づいて、柔軟にベストパスを決められることがBGPの大きな特徴です。

続きを読む

BGP 基本的な設定についての演習[Cisco]

BGPネイバーを確立して、BGPルートをアドバタイズするという基本的な動作についてのステップ・バイ・ステップの演習です。

続きを読む

BGPの基本的な設定についての演習 ~トラブルシュート~

「BGPの基本的な設定についての演習」のトラブルシュートです。
設定ミスの切り分けと修復を行います。

続きを読む

BGP KEEPALIVEタイマ/ホールドタイムの設定

BGPネイバーはKEEPALIVEメッセージを定期的に交換することで維持します。KEEPALIVEメッセージに関するタイマの設定について解説します。

続きを読む

BGPルート 最小送信間隔の設定

BGPは何らかの変更があったときにルートを送信するトリガードアップデートを採用しています。最小送信間隔によって、変更があったときにBGPルートのアドバタイズを少し遅延させています。BGPルートの最小送信間隔の設定コマンドについて解説します。

続きを読む

BGPルートダンプニング

ルートダンプニングは、BGPルートがフラップしたときにその影響を小さくするための機能です。BGPルートダンプニングの仕組みとCisco IOSでの設定コマンドについて解説します。

続きを読む

マルチホーム - インターネット接続の冗長化 -

「インターネットにつながっていないと何もできない」というぐらい、今やインターネット接続は非常に重要です。そのため、インターネット接続の冗長化を検討することも重要です。インターネット接続を冗長化するマルチホームの概要について解説します。

続きを読む

マルチホームAS BGPルートフィルタのポイント

インターネット接続を冗長化したマルチホームASでは、適切なBGPルートのフィルタの設定が必要です。
マルチホームASでのルートフィルタのポイントについて解説します。

続きを読む

マルチホームAS ベストパス選択のポイント

マルチホームASでインターネット接続を冗長化したときに、ベストパスの選択を制御してパケットの転送を制御します。マルチホームASでのベストパス選択のポイントについて解説します。

続きを読む

マルチホームAS IGPとBGPの連携のポイント

マルチホームAS内のすべてのルータでBGPを利用しているわけではありません。マルチホームAS内はOSPFなどのIGPを利用します。マルチホームASでは、IGPとBGPの連携も考える必要があります。

続きを読む

マルチホームAS BGPの設定例

インターネット接続を冗長化しているマルチホームASでのBGPの設定例です。

続きを読む

IP-VPNでのBGPの利用 設定例

IP-VPN(MPLS-VPN)で、PE-CE間のルーティングプロトコルとしてBGPを利用するときの設定例です。CEルータ側のBGPの設定に注目しています。

続きを読む

BGPルートフィルタの種類

BGPで特定のネイバーとルート情報を送受信する際にフィルタをかけられます。BGPでのルートフィルタでは、「どうやってルート情報を特定するか」が重要です。

続きを読む

BGPルートフィルタ -ディストリビュートリスト-

BGPルートフィルタのディストリビュートリストの設定と確認コマンドについて解説します。ディストリビュートリストは、ACLで許可または拒否するBGPルート情報を特定します。

続きを読む

BGPルートフィルタ -ディストリビュートリスト設定例-

ディストリビュートリストのBGPルートフィルタの設定例です。標準ACLと拡張ACLの両方を利用して、フィルタするBGPルートを特定する設定例です。

続きを読む

BGPルートフィルタ -プレフィクスリスト-

BGPルートフィルタのプレフィクスリストの設定と確認コマンドについて解説します。プレフィクスリストでは、ネットワークアドレスとサブネットマスクによってフィルタするBGPルートを特定します。

続きを読む

BGPルートフィルタ -プレフィクスリスト設定例-

プレフィクスリストのBGPルートフィルタの設定例です。ディストリビュートリストのフィルタと同じ条件をプレフィクスリストで設定します。

続きを読む

BGPルートフィルタ -フィルタリスト(AS_PATH ACL)-

BGPルートフィルタのフィルタリストの設定と確認コマンドについて解説します。
フィルタリストは、AS_PATH ACLによってフィルタするBGPルートを特定します。AS_PATH ACLでは、フィルタ対象のBGPルートのAS_PATHアトリビュートを正規表現により特定します。

続きを読む

BGPルートフィルタ -フィルタリスト(AS_PATH ACL)設定例-

フィルタリスト(AS_PATH ACL)によるBGPルートフィルタの設定例です。正規表現でどのようにAS_PATHアトリビュートを表すかが大事なポイントです。

続きを読む

BGPルートフィルタ -ルートマップ(route-map)-

ルートマップによるBGPルートフィルタの設定と確認コマンドについて解説します。ルートマップを利用すると、標準/拡張ACL、プレフィクスリスト、AS_PATH ACLなどを参照してフィルタするBGPルートを特定できます。また、フィルタだけではなく、BGPルートに追加でパスアトリビュートをセットできます。

続きを読む

BGPルートフィルタ -ルートマップ(route-map)設定例-

ルートマップによるBGPルートフィルタの設定例です。ルートマップでは、match条件で標準/拡張ACL、プレフィクスリスト、AS_PATH ACLを参照して柔軟にフィルタするBGPルートを特定できます。

続きを読む

BGP neighbor allowas-inコマンド

neighbor allowas-inコマンドによって、特定のネイバーから受信するBGPルートについて、AS_PATHによるループ防止を無効化します。
neighbor allowas-inコマンドについて解説します。

続きを読む

BGP neighbor as-overrideコマンド

neighbor as-overrideコマンドは、特定のネイバーへアドバタイズするBGPルートのAS_PATHアトリビュートを書き換えます。
neighbor as-overrideコマンドについて解説します。

続きを読む

BGPルート RIB Failure

ベストパスとなったBGPルートがルーティングテーブルに登録されていないと、RIB Failureの状態になります。
BGPルートのRIB Failureについて解説します。

続きを読む

BGPルート アドミニストレイティブディスタンスの制御

BGPルートのアドミニストレイティブディスタンスを制御すると、他のルーティングプロセスのルートよりもBGPルートを優先させられます。BGPルートのアドミニストレイティブディスタンスの制御方法について解説します。

続きを読む

BGPルートの負荷分散

BGPで学習したネットワーク(BGPルート)宛てのパケットを負荷分散することもできます。BGPルートの負荷分散を行うための2つの方法について解説します。

続きを読む

BGPルート 条件付き生成

特定のネイバーから学習したBGPルートのより詳細なルートを生成できます。BGPルートの条件付き生成について解説します。

続きを読む

BGPルート 条件付きアドバタイズ

BGPルートをアドバタイズするときに、BGPテーブル上に特定のBGPルートがある or ないという条件をつけることができます。BGPルートの条件付きアドバタイズについて解説します。

続きを読む

BGP ルート集約 自動集約

BGPの自動集約について解説します。
RIP/EIGRPでの自動集約とは異なっています。

続きを読む

BGPルート集約 networkコマンドによる集約

networkコマンドで、ルーティングテーブル上の既知のネットワークアドレスをBGPルートとして生成できます。
networkコマンドによって、BGPの集約ルートを生成することについて解説します。

続きを読む

BGPルート集約 networkコマンドによる集約 設定例

networkコマンドを利用したBGPルート集約の設定例です。networkコマンドは、ルーティングテーブル上の既知のネットワークアドレスをBGPルートとして生成するコマンドです。

続きを読む

BGP ルート集約 aggregate-addressコマンドによる集約

aggregate-addressコマンドでBGPの集約ルートを生成することができます。
aggregate-addressコマンドとコマンドが機能するための条件について解説します。

続きを読む

aggregate-addressコマンドのオプション summary-only

BGPの集約ルートを生成するaggregate-addressコマンドのsummary-onlyオプションについて解説します。

続きを読む

aggregate-addressコマンドのオプション attribute-map

BGPの集約ルートを生成するaggregate-addressコマンドのattribute-mapのオプションについて解説します。

続きを読む

aggregate-addressコマンドのオプション as-set

BGPの集約ルートを生成するaggregate-addressコマンドのas-setのオプションについて解説します。

続きを読む

aggregate-addressコマンドのオプション advertise-map

BGPの集約ルートを生成するaggregate-addressコマンドのオプションであるadvertise-mapについて解説します。

続きを読む

aggregate-addressコマンド as-set/attribute-map/advertise-map 設定例

aggregate-addressコマンドで生成したBGP集約ルートのパスアトリビュートを制御するためのas-set/advertise-map/attribute-mapの設定のまとめです。

続きを読む

BGP選択型集約の概要

BGPではルート集約をした際に、集約ルートだけではなく、集約前の個別のルートもアドバタイズします。選択型集約(Selective Aggregation)によって、集約ルートと一緒にアドバタイズする集約前のルートを制御できます。

続きを読む

BGP選択型集約 suppress-map

選択型集約を行うためのaggregate-addressコマンドのsuppress-mapオプションについて解説します。

続きを読む

BGP選択型集約 unsuppress-map

unsuppress-mapによって、ネイバーごとに集約ルートと一緒にアドバタイズする集約前のルートを決められます。unsuppress-mapによる選択型集約について解説します。

続きを読む

BGP 選択型集約 suppress-map/unsuppress-map 設定例

BGP選択型集約のsuppress-map/unsuppress-mapの設定のまとめです。

続きを読む

BGP local-as ~ネイバーに他のASのように見せる~

local-asによって、特定のEBGPネイバーに対して本来のAS番号以外のASでBGPネイバーを確立しルートを交換できます。
BGP local-asの動作と設定コマンドについて解説します。

続きを読む

BGP neighbor remove-private-ASコマンド

neighbor remove-private-ASコマンドによって、指定したEBGPネイバーへアドバタイズするBGPルートのAS_PATHからプライベートAS番号を削除できます。neighbor remove-private-ASコマンドについて解説します。

続きを読む

bgp fast external-fallover

bgp fast-external-falloverは、BGP接続に使うインタフェースがダウンしたら即座にネイバーをダウンさせる機能です。

続きを読む

BGP プレフィクス数の制限

ネイバーの設定ミスなどで大量のルート情報(プレフィクス)が送信されると、ルータの負荷が高まり悪影響を受けることがあります。そこで、BGPネイバーから受信するルート情報の数を制限するためにneighbor maximum-prefixコマンドを使います。

続きを読む

BGP COMMUNITYアトリビュートの使い方

COMMUNITYアトリビュートによって、BGPルートをグループ化してさまざまな制御を行います。
COMMUNITYアトリビュートの特徴とその使い方について解説します。

続きを読む

BGP Well-known COMMUNITYのルートフィルタ設定例

BGPルートにWell-known COMMUNITYを付加すると、自動的にルートフィルタが行われます。no_advertise/no_export/local_asのWell-known COMMUNITYによるルートフィルタの設定例です。

続きを読む

BGP プライベートCOMMUNITYによるルート制御の設定例

BGPルートに任意のCOMMUNITYアトリビュート(プライベートCOMMUNITY)を付加して、ルート制御を行う設定例です。

続きを読む

[演習]BGP応用 Part1:BGP基本設定

複数のASでBGPによるルーティングを行う演習です。Part1では、BGPの基本的な設定によりトランジットASを構築して、AS間で通信できるようにします。トランジットASの構築には、ルートリフレクタとコンフェデレーションを組み合わせます。

続きを読む

[演習]BGP応用 Part2:ルート集約

複数のASでBGPによるルーティングを行う演習です。Part2では、各AS内のBGPルートを集約します。そのときに、集約ルートのアトリビュートや集約前のルートのアドバタイズを制御します。

続きを読む

[演習]BGP応用 Part3:ポリシーベースルーティング

複数のASでBGPによるルーティングを行う演習です。Part3では、ベストパス(最適ルート)を制御するポリシーベースルーティングです。LOCAL_PREF/MED/AS_PATHとWell known Communityを利用した制御を行います。

続きを読む

[演習]BGP応用 Part4:トラブルシューティング

複数のASでBGPによるルーティングを行う演習です。Part4では、設定ミスの切り分けと修正のトラブルシューティングです。

続きを読む

BGP 設定ミスの切り分けと修正 Part1

EBGPネイバーを確立するための設定について、設定ミスの切り分けと修正を行います。

続きを読む

BGP 設定ミスの切り分けと修正 Part2

BGPルートをアドバタイズするための設定について、設定ミスの切り分けと修正を行います。
Well-knownコミュニティとNEXT_HOPアトリビュートへの接続性がポイントです。

続きを読む

BGP 設定ミスの切り分けと修正 Part3

コンフェデレーションとプレフィクスリストによるルートフィルタの設定ミスについて、切り分けと修正を行います。

続きを読む

BGP 設定ミスの切り分けと修正 Part4

BGPのルート集約について設定ミスの切り分けと修正を行います。
suppress-mapとunsuppress-mapによる選択型集約を扱っています。

続きを読む

BGP 設定ミスの切り分けと修正 Part5

BGPのAS_PATHアクセスリストによるルートフィルタについて、設定ミスの切り分けと修正を行います。

続きを読む

BGP 設定ミスの切り分けと修正 Part6

BGPの同期とルートリフレクタについて、設定ミスの切り分けと修正を行います。

続きを読む

BGP 設定ミスの切り分けと修正 Part7

設定ミスによって、正常にBGPネイバーを確立できません。また、BGPルートのアドバタイズも想定通りできません。BGPの設定ミスの切り分けと修正を行います。

続きを読む

IPv6 BGPの設定例 Part1

IPv6 BGPの基本的な設定についてステップ・バイ・ステップで設定と確認を行っています。
Part1では、フルメッシュのIBGPネイバーで設定します。

続きを読む

IPv6 BGPの設定例 Part2

IPv6 BGPの基本的な設定についてステップ・バイ・ステップで設定と確認を行っています。
Part2では、ルートリフレクタでIBGPネイバーを設定します。また、リンクローカルアドレスでEBGPネイバーを設定します。

続きを読む

2021年10月4日 Facebookに何が起こったか?

2021年10月4日のFacebookの障害原因の報告についての簡単なまとめです。

続きを読む

IPv4 BGPネイバーでのIPv6プレフィックスの交換

IPv4アドレスで設定しているBGPネイバー上でIPv6プレフィクスを交換する設定例を解説します。

続きを読む