BGP
概要
- AS間でルート情報を交換
- ネイバーは手動設定
- ネイバー確立直後に全ルーティングテーブルを交換
- 後は差分アップデート
- address-family方式
router BGP <ASN> (グローバルなコンフィグ) address-family [ipv4 unicast | ipv4 multicast | ipv4 vrf vpn1] (アドレス特有のコンフィグ)
- 3つのテーブルでルーティング情報を管理
- Adj-RIBs-In
- 受信した経路情報
- Loc-RIB
- Loc-RIBに載せる際に最適パスの選択を行う
- Loc-RIBからルーティングテーブルに経路がインストールされる
- Adj-RIBs-Out
- 送信する経路情報
- 最適パスだけ
- Adj-RIBs-In
ピアセッション確立
- Idle
- Connect (TCP確立待ち)
- Active (TCP確立失敗)
- Connection Retry TimerでTCP再確立
- 再確立に規定回数失敗でIdleに戻る
- OPENメッセージ受信でOpenSentへ遷移
- OpenSent (OPENメッセージ送信)
- コネクション失敗でActiveへ遷移
- OpenConfirm (OPENメッセージ受信)
- Notification受信でIdleへ遷移
- Keepalive受信でEstablishedへ遷移
- Established
- Holdtimerを初期化。UpdateかKeepalive受信でタイマ更新。
- Error Notification受信でIdleへ遷移
router bgp <ASN> bgp router-id <BGPルータID> bgp log-neighbor-changes timers bgp 30 60 no bgp default ipv4-unicast (直下のneighborでipv4のアップデートを送らせない) neighbor {<IPアドレス> | <PEER_GROUP>} remote-as <ASN> neighbor {<IPアドレス> | <PEER_GROUP>} description <TEXT> address-family ipv4 [unicast | multicast | vrf <VRF_NAME>] network <ローカルアドレス> [mask <MASK>] [route-map <MAP>] neighbor {<IPアドレス> | <PEER_GROUP>} activate neighbor {<IPアドレス> | <PEER_GROUP>} advertisement-interval <SEC> neighbor {<IPアドレス> | <PEER_GROUP>} default-originate [route-map <MAP>] (Peerへのデフォルトルート送信を許可) exit-address-family neighbor {<ネイバーアドレス> | <PEER_GROUP>} shutdown
BGPピアリセット
- Hard reset
- PeerとのTCP接続を切る
- 当該Peerの経路は全て削除
- Soft reset
- PeerとのTCP接続は切らない
- メモリにBGPアップデート情報を保持したままリセット
- 新しいBGP Policyを既存ネットワークに影響与えずに適用する
- Dynamic inbound soft reset
- Route refresh capability
- Peer対向に経路情報の再アドバタイズを要求
- inboundのpolicy変更で使用
- bgp soft-reconfig-backup
- 対向がRoute refresh capability非サポートの場合
- inboundのデータを保持して、ローカルでrefresh処理
router bgp <ASN> bgp log-neighbor-changes bgp soft-reconfig-backup neighbor {<IPアドレス> | <PEER_GROUP>} remote-as <ASN> neighbor {<IPアドレス> | <PEER_GROUP>} soft-reconfiguration [inbound] neighbor {<IPアドレス> | <PEER_GROUP>} route-map <MAP> {in | out} route-map map-tag [permit | deny] [<SEQ_NUM>] set local-preference <PREF> - リセット
clear ip bgp {* | <ネイバーIPアドレス> | <PEER_GROUP>} [soft [in | out]
経路集約
- BGPでの経路集約について
- Redistribute
router bgp <ASN> redistribute static
- Conditional aggregation
- 集約する経路がルーティングテーブル上に存在(必須)
- AS-SET
- 集約したASを載せる
router bgp <ASN> aggregate-address <ADDR> <MASK> [as-set]
- Suppressing and Unsuppressing Advertising Aggregated Routes Using BGP
- Suppress-Mapで指定された経路はアドバタイズしない
- Suppressされた経路のうち、UnSuppress-Mapで指定された経路はアドバタイズする
router bgp <ASN> neighbor ip-address remote-as autonomous-system-number aggregate-address <ADDR> <MASK> [summary-only | suppress-map <MAP>] neighbor {<ADDR> | <PEER_GROUP>} unsuppress-map <MAP>
- Suppressing Inactive Route Advertisement Using BGP
- RIBにインストールされていない経路をBGP PeerにAdvertiseしない
router bgp <ASN> address-family ipv4.... bgp suppress-inactive
- Conditionally Advertising BGP Routes
- Exist map
- NonExist map
- Advertise map
router bgp <ASN> neighbor {<ADDR> | <PEER_GROUP>} remote-as <ASN> neighbor <ADDR> advertise-map <MAP> {exist-map <MAP> | non-exist-map <MAP>} route-map map-tag [permit | deny] [<SEQ_NUM>] match <ADDR> {access-list-number <ACL> | prefix-list <PREFIX_LIST>} access-list <ACL_NUM> {deny | permit} source [source-wildcard] [log]
Originate BGP routes
- デフォルトルート生成
neighbor {<ADDR>|<PEER_GROUP>} default-originate - Conditionally Injecting BGP Routes
BGP Peer Group
- Outboundポリシーが同じPeerをGroup化
- 手動設定
- 制限
- Outboundポリシーを共有しなければならない
- 異なるAddress-family間ではグループ化不可
BGP Dynamic Update Peer Group
- Configure BGP Dynamic update peer group
- 動的に同一Outgoing Policyを持つPeerをGroup化
- 設定不要
Peer Templates
- Configure Peer Templates
router bgp 200 template peer-session PEER_AS100 remote-as 100 update-source Loopback0 exit-peer-session neighbor 192.168.1.1 inherit peer-session PEER_AS100