BGP

Last-modified: 2008-01-28 (月) 23:28:41

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
      • 送信する経路情報
      • 最適パスだけ

ピアセッション確立

  • 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]

経路集約

  • 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

BGP Peer Group

  • Outboundポリシーが同じPeerをGroup化
    • 手動設定
  • 制限
    • Outboundポリシーを共有しなければならない
    • 異なるAddress-family間ではグループ化不可

BGP Dynamic Update 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