BGPとは

スポンサーリンク

BGPとは

BGP ( Border Gateway Protocol )とはルーティングプロトコル(パスベクタ型)の一つです
主に大規模なネットワーク構成で使用されます。
AS内のルート情報に付加されたパスアトリビュートを送信して最適経路を決定します。
宛先ネットワークまでに経由するASが少ない経路が最短ルートとなります。
TCPポート179を使用して、TCP接続を行い信頼性のあるルーティングアップデートを実行します。
定期的なルーティングアップデートを行わず、変更発生時にのみ差分アップデートを実行します。

BGP用語 説明
BGPスピーカー BGPを実行しているルータ
パスアトリビュート 最適ルートを判断するために経路情報に付けられる値
BGPネイバー BGPを交換する相手の事。BGPでは手動でネイバーを定義する必要がある
BGPネイバーテーブル ネイバー情報が記載されているデータテーブル
BGPテーブル ネイバーと交換するUpdateパケットにあるルート情報がインストールされたBGPのルーティングテーブル。
「ルート情報とパスアトリビュート」の情報が含まている。
BGPで学習した複数のルート情報のなかで、ルート選択の決定プロセスで選択されたルートだけがルーティングテーブルにインストールされる(宛先への経路は1つだけが選択される)
BGPピア BGPネイバールータのこと。

ASとは

ASとはAutonomous Systemの略で、自律システムとも呼ばれています。
ASは会社・国などが1つにまとまったグループのようなイメージです。

・グローバルAS番号:1〜64511
 インターネット全体で一意のAS番号となり、個人で勝手に使用できずIANAによって管理されています。

・プライベートAS番号:64512〜65535
 組織内部で自由に使用できるAS番号となり、他のNWと被っていても問題ない。

ASの種類 説明
スタブAS 外部の1つのASとだけ接続しているASの事
トランジットAS 複数のASと接続していて、外部AS間のトラフィックを通過させるASの事
非トランジットAS 複数のASと接続しているが、外部AS間のトラフィックは通過させないASの事

iBGP eBGPとは

同じAS内で接続するグループをiBGPと言い、異なるASで接続するグループをeBGPと言います。
iBGPピア・・・同じAS内でBGPを交換するルータ
eBGPピア・・・異なるASをでBGPを交換するルータ

iBGPは
経路のルーティングループを防ぐため、iBGPで受信した経路はiBGP経路に送信しないスプリットホライズンという仕様となっています。
なのでAS内のiBGPピアに経路を教えるためにはフルメッシュで接続します。
IBGPパケットのTTLが「255」でAD値が「200」です

eBGPは
eBGPで受信した経路は他のeBGPに送信します。iBGPから受信した経路もeBGPに送信します。
eBGPでは自身のAS番号をAS-Pathアトリビュートに追加して経路を広報します。
経路を受信する際は自身のASが含む経路を廃棄する事で経路のルーティングループを防ぎます。
eBGPのパケットのTTLは「1」となるので、経路交換をするeBGPピアとは直接接続している必要があります。

BGPフロー

OPEN ルータ間でBGPピアを確立し、情報交換を実施
KeepAlive 生存確認
UPDATE ルーティング情報の更新
NoTIFICATION BGPピア切断
BGP状態 説明
Idle BGPの設定直後の状態でBGPネイバーへのIP到達性があればTCP接続を開始する
BGPネイバーへのIP到達性があれば「Connect」状態へ遷移する。
Connect TCP接続完了待ち状態。
TCP接続が成功した場合はOPENメッセージを送信して「OPENSent」状態へ遷移する。
TCP接続が失敗した場合は「Active」状態へ遷移。
Active TCP接続を試行している状態。
ネイバーのIPアドレス、AS番号、認証パスワードの設定ミスがある場合、「idle→Active→idle」という状態を繰り返す。
OpenSent OPENメッセージを送信し、ネイバーからのOPENメッセージ確認を待っている状態。
OPENメッセージが受理できる場合、KEEPALIVEメッセージの送信を開始して、OPENConfirm状態に遷移。
受理できない場合は、NOTIFICATIONを送信してidle状態へ遷移。
OpenConfirm KEEPALIVEメッセージ、または、NOTIFICATIONメッセージを待っている状態。
KEEPALIVEを受信すれば「Established」状態へ遷移(BGPネイバー確立の成功)
AS番号の不一致などによってNOTIFICATIONを受信した場合は「idle」状態へ遷移。
Established BGPネイバーが正常に確立している状態。
UPDATEメッセージを交換できBGPテーブルやルーティングテーブルが生成される。
NOTIFICATIONメッセージを受信した場合には「idle」状態へ遷移する

パスアトリビュート

パスアトリビュートはBGPで複数のルート候補がある場合に最適ルートを判断するために経路情報に付けられる値です。

タイプ パスアトリビュート 説明
Well-known mandatory ORIGIN 全ての BGP ルータが認識すべき必須属性
全てのUpdateメッセージに含まれていて、
この属性に値が無いとエラーになる
AS_PATH
NEXT_HOP
Well-known discretinary LOCAL_PREF 全ての BGP ルータが認識できる任意属性
Updateメッセージに含むかは任意
ATOMIC_AGGREGATE
Optional transitive AGGREGATOR ルータは認識できない可能性があるが、受け取ったら他のネイバーにもアドバタイズする
COMMUNITY
Optional Non-transitive MULTI_EXIT_DISC ルータは認識できない可能性がある
受け取っても他のネイバーにもアドバタイズしない
ORIGINATOR_ID
CLUSTER_LIST

BGPルーティングベストパス選択手順

優先度 属性名 説明
1 WEIGHT 最も大きいルートを優先。
ローカルルータのみで使用、ネイバーにアドバタイズはしない
デフォは ローカルルータで追加したルートが「32768」、それ以外のルートは「0」
2 LOCAL_PREF 値が大きいルートを優先される。
自身が所属するAS内でのみ有効
※デフォルト値は「100」
3 BGP設定時のコマンド ローカルルータ自身(networkコマンドなど)で追加したルート
4 AS_PATH 経由したAS数が最も少ないルートが優先
5 ORIGIN ( IGP < EGP < Incomplete )の順で優先
8 MED
(MULTI_EXIT_DISC)
(メトリック)が最も小さいルートを優先
デフォルト値は「0」
9  IBGPで学習したルートよりもEBGPで学習したルートを優先
10  ネクストホップに対して最小のIGPメトリックを持つルートを優先

コメント

タイトルとURLをコピーしました