BGP Workshop
- AS 間でルート情報を交換
- EGP: ルート情報を AS 単位で考える( BGP の前のプロトコル)
- IGP( OSPF とか) AS の中のやりとり
- BGP でやりとりされるルート数は 2018 年で 70 万以上
- TCP でやりとりされる
- トリガードアップデート
- パスアトリビュートが付加されるのでルート情報が正確
- グローバル AS 番号
- プライベート AS 番号(64512~65535)
- 16 ビットから 32 ビットに拡張可能
- 予約されている番号もある
AS の種類
Section titled “AS の種類”スタブ AS
Section titled “スタブ AS”- 他の AS と接続を 1 つだけ持っている AS
- グローバル AS 番号を割り当てられない
マルチホーム非トランジット AS
Section titled “マルチホーム非トランジット AS”- 複数の AS と接続している AS
- 他の AS に経路情報を伝搬しない
トランジット AS
Section titled “トランジット AS”- 複数の AS と接続している AS
- 他の AS に経路情報を教えてあげる
- AS 内はすべてのルータが BGP を喋れる必要はない
- eBGP:自ルータの AS 番号とネイバールータの AS 番号が異なる
- AD 値は 20
- iBGP:自ルータの AS 番号とネイバールータの AS 番号が同じ
- AD 値は 200
- AD 値(アドミニストレーティブディスタンス)
- 経路の優先順位
- 小さい方が優先される
- IEBGP:コンフェデレーションを使用したときに利用するネイバー(あんま使わない)
- 1 つの AS を複数のサブ AS に分ける
BGP テーブル
Section titled “BGP テーブル”- ルーティングテーブルとは違う
- BGP で送受信するルート情報を保持する DB
- BGP ネイバーから受信したルート情報はすべて BGP テーブルに格納される
- 「>」がベストパス
BGP メッセージ
Section titled “BGP メッセージ”- OPEN
- 基本情報をやりとり
- これがやりとりできないとコネクションが確立できない
- UPDATE
- 経路情報のやりとり
- KEEPALIVE
- 生存確認
- Hold time 時間内にやりときできないとダウンしたとみなす
- Hold time の 1/3 が Hello を送る間隔
- NOTIFICATION
- エラーで Peer をクローズする
パスアトリビュート
Section titled “パスアトリビュート”| Well-known mandatory( 既知必須 ) | 全ての BGP ルータで識別できて、全ての Update メッセージに含まれる |
|---|---|
| Well-known discretinary( 既知任意 ) | 全ての BGP ルータで識別できるが、 Update メッセージに含まれるかは任意 |
| Optional transitive( オプション通知 ) | 全ての BGP ルータで識別できない可能性があるが、 BGP ネイバーへは通知する |
| Optional non-transitive(オプション非通知) | 全ての BGP ルータで識別できない可能性があり、 BGP ネイバーへは通知しない |
- ORIGIN
- 経路の発生源を示す
| 優先度 | アトリビュート | show ip bgp | 説明 |
|---|---|---|---|
| 0 | IGP | i | AS 内部で IGP により生成された BGP ルート。このルートは BGP の設定で network コマンドまたは aggregate-address コマンドによって発生する |
| 1 | EGP | e | AS 外部から EGP により生成された BGP ルート。このルートは、レガシープロトコルの EGP 経由で学習されることによって発生する。先ずない表示 |
| 2 | Incomplete | ? | ルートの生成元が不明なルート、または別の方法で学習されたルート。通常は、 AS 内部の IGP ルート BGP へ再配布することによって発生する |
- AS_PATH
- 経路情報がどの AS を経由してきたかを示す
- 広報するときに左端に自 AS を追加
- IBGP に広報するときは AS_PATH は変更されない
- AS_PATH に自 AS 番号がある場合ループと判断して経路は破棄する
ループを防ぐためのルール
| eBGP->iBGP | OK |
|---|---|
| iBGP->eBGP | OK |
| eBGP->eBGP | OK |
| iBGP->iBGP | NG |
- NEXT_HOP
- ルータに対するネクストホップ
基本設定と確認
Section titled “基本設定と確認”- 流れ
- BGP を有効にする
- ネイバーの設定
- BGP でアドバタイズするルート情報を指定する
ネイバーの設定
Section titled “ネイバーの設定”- EBGP では、 BGP パケットの TTL が「1」であるため、ネイバーを確立するためには、ルータ間で直接接続している必要がある
- 直接接続していない場合、 ebgp-multihop コマンドで TTL を変更
BGP でアドバタイズするルート情報を指定する
Section titled “BGP でアドバタイズするルート情報を指定する”- ルーティングテーブルに載ってないと BGP テーブルに載らない
- clear ip bgp * soft [in / out]
- TCP 接続を切断しないでできる