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プレフィクスを交換する設定例を解説します。
続きを読む