専門ネタばかりですいません。勉強のノートとして使わせてもらってます。
目次
【新CCNP勉強メモ】BGPまとめ
BGPはインターネット上でNWを交換するためのプロトコルで、780,000を超えるIPv4ルートがある。
プロトコルの概念
・IGP・・・RIP、OSPF、EIGRPなど
・EGP・・・BGP(IBGPとEBGPがある。)
AS
BGPはASというネットワークに分割される。AS番号はICANNによって管理されている。
とりあえず、全部で65,535あり、64,511までが、グローバルASと覚える。
ASはどのネットワークに接続されるかにより、下記の通り分類がある。
- スタブAS・・・他のASと1つだけ接続されている。
- トランジットAS・・・複数のASに接続されているAS
- 非トランジットAS・・・複数のASに接続されているASだが、他のASからアドバタイズされた情報は隣接ASに渡さない。
BGPテーブルと使われるパケット
BGPで使われるテーブル
- BGPネイバーテーブル・・・BGPピア(情報を交換する相手のルータ)
- ルーティングテーブル
- BGPテーブル・・・BGPピアからアドバタイズされた情報がすべてのっているテーブル。
テーブルを維持するための4つのパケット
- OPEN・・・AS番号や認証などを交換。TCP確立してから最初に送られる。
- UPDATE・・・経路情報をアドバタイズ
- NOTIFICATION・・・デフォルト60秒、ホールドタイム180秒。エラー通知など
- KEEPALIVE・・・生存確認
確立した状態は、Established
iBGPとeBGP
違うAS番号ではeBGP同じAS番号内はiBGPが使われる。
- iBGP・・・iBGPで受信した経路情報は、同じAS内の他のiBGPピアにアドバタイズされない。これをスプリットホライズンという。BGPではパケットのTTLが255となるため、直接接続していないルータであってもiBGPピアとなれる。AD値は200
- eBGP・・・・eBGPではBGPパケットのTTLが1であるため、ネイバー関係を確立するためにはルータ間で直接接続している関係がある。(直接接続でない場合はebgp-multihopコマンドでTTLを変更できる。)eBGPでアドバタイズされているルートはAD値が20となる。
R2はR4へ経路情報をアドバタイズしない。アドバタイズするためには、フルメッシュにする必要がある。
パス属性
- ORIGIN well known mandatory
- AS_PASS well known mandatory
- NEXT HOP well known mandatory
- Multi exit disc optional non-transitive
- local pref well known discretionary
- atomic aggregate well known discretionary
- aggregator optional transitive
- community optional transitive
- originator ID optional non-transitive
- cluster list optional non-transitive
- weight シスコ独自
origin属性
AS-PATH属性
リップのディスタンスベクタみたいな感じ。経由しているルータが少ない方が、優先される。
NEXT_HOP属性
OSPFとかと異なり、次に向かうASのIPアドレスが、ネクストホップになる。
multi exit disc属性(MED)
MULTI_EXIT_DISC(MED)属性は外部のASとの接続口を複数持っているASで機能し、外部のASから自ASへ向かってくる通信を制御する。MED値を設定することで他のASに対して優先的に使用させたい経路を選択させることができる。MED値のデフォルト値は0、小さいほど優先される。
AS2からAS1に通信があるとき、MED値が小さいR3→R1の経路が優先される。
LOCAL PREF値
LOCAL_PREF属性は外部のASとの接続口を複数持っているASで機能し、自ASから外部へ送信される通信を制御する。またLOCAL_PREF属性はAS内部独自の属性でiBGPピア間でのみ交換される。デフォルトの値は100で値の大きい経路が優先されます。
R5は、Local Pref値が高いR4を最適経路と判断する。
Weight値
BGPに対してアドバタイズされる値ではなく、そのルータでのみ有効な属性。Weight値のデフォルトはローカルルータで生成したルートは「32768」で、BGPピアから受け取るルートは「0」。値が高いルートが優先される。
上記の場合は、Weight値が高いR4の経路が優先される。設定されているルーターでのみ機能する。
BGPの経路判断
BGPは、1つのルートしか経路情報に登録されない。その際の判断材料は以下の通り。
- ①Weight属性の値の最も大きい経路
- ②LOCAL_PREF属性が最も大きい経路
- ③自身が発信したネットワークが優先
- ④AS_PATH属性が最も短い経路
- ⑤ORIGIN属性が最も小さいもの
- ⑥MULTI_EXIT_DISC属性が最も小さいもの
- ⑦BGPで学習した経路の方がiBGPで学習したものよりも優先
- ⑧ネクストホップに対して最小のIGPのメトリックを持つもの
- ⑨先に登録されていたルート
- ⑩ルータIDが最小のルート
BGPのコンフィグ
(config)#router bgp as番号
(config-router)#neighbor ピアのIPアドレス remote-as ピアのAS番号
(config-router)#network IPアドレス mask サブネットマスク
→EIGRPやOSPFのように動的にネイバーを検出しないので、neighborコマンドで明示的に設定する。remote asの設定は、iBGPでも同じAS番号を入力する。
確認コマンド
#sh ip bgp neighbors
①:自身のBGPルータIDとAS番号を確認できる。
②:ネットワークのエントリ数と使用メモリを確認できる。
③:ピア(ネイバー)のBGPのバージョン、AS番号などが確認できる。右側のStateがIdleやActive状態だと設定を見直す必要がある。
#sh ip bgp
上は自身が作成した経路情報
下は、ピアからアドバタイズされた情報
*は経路が有効であることを示す。>は最適経路であることを示す。
#sh ip route
その他補足
①ルータ間通信
上の図で、R2とR4がBGPピアになれるのは、TCPでネイバーが確立されているから。途中のR3のルートの問題などで相手に通信が到達していないと、当然ピアになれない。
②#sh bgp ipv4 unicast x.x.x.x
③アドレスの集約
(config-router)#aggregate-address x.x.x.x x.x.x.x summary-only
コメント