Cisco BGPルートリフレクタとピアグループ設定

スポンサーリンク

■iBGPの欠点


ネットワークの規模が大きくなってくるとiBGPで問題が発生することがあります。懸念されるのはAS内部におけるiBGPの完全メッシュ化です。iBGPではでは近隣ルータから学習した経路を別の近隣ルータにアドバタイズすることはありません。フルメッシュが必要となるのはこのためです。小さなネットワークでは問題となることはありませんが、大規模なネットワークほど表面化します。これの問題を解決する、完全メッシュに代わる手段であるのが次のものです。

  1. ルートリフレクション
  2. コンフェデレーション

下記ではルートリフレクションについてメモ書きしています。コンフェデレーションについてはBGPの解説本には必ず出てくる技術ですが未だ現場で使用しているのを見たことがなくマイナーな技術で理解しておいてもあまり役立つことがなさそうに思います。


■ルートリフレクション


ルートリフレクションを理解するために以下の構成図を見てみましょう。

上の図のR1から流れてくる経路は次のようになります。

  1. R1がR2経路を送信します。
  2. R2は経路を受信してローカルに格納します。
  3. R2がR3に経路を送信します。
  4. R3は経路を受信してローカルに格納します。
  5. R4が経路を受け取ることはありません。

上のような事態をさけるための手段の一つとしてiBGPフルメッシュが必要です。これがルートリフレクションを用いると次のように構成を変更することが可能です。

上の図のR1から流れてくる経路は次のようになります。

  1. R1がR2経路を送信します。
  2. R2は経路を受信してローカルに格納します。
  3. R2がR3に経路を送信します。
  4. R3は経路を受信してローカルに格納します。
  5. R3はR4に経路をリフレクトします。
  6. R4は経路を受信してローカルに格納します。


R2とR4は直接PeerをはらなくてもR3経由でiBGP経路をアドバタイズすることが可能となります。これによりPeerの数を減らし、必要セッション数を減らすことが可能となります。

ルートリフレクタの実際の設定はルートリフレクタのみに設定を実施し、ルートリフレクタクライアントには特に何も設定しなくて大丈夫です。R3の設定は次のようになります。

【 R3 】
router bgp 200
 no synchronization
 neighbor 2.2.2.2 remote-as 200
 neighbor 2.2.2.2 route-reflector-client
 neighbor 4.4.4.4 remote-as 200
 neighbor 4.4.4.4 route-reflector-client


ルートリフレクタであるかの確認は以下のように行います。

# show ip bgp neighbors
BGP neighbor is 2.2.2.2,  remote AS 200, internal link
  BGP version 4, remote router ID 2.2.2.2
  BGP state = Established, up for 00:11:48
  Last read 00:00:48, last write 00:00:48, hold time is 180, \
  keepalive interval is 60 seconds
  Neighbor capabilities:
    Route refresh: advertised and received(old & new)
    Address family IPv4 Unicast: advertised and received
  Message statistics:
    InQ depth is 0
    OutQ depth is 0
                         Sent       Rcvd
    Opens:                  2          2
    Notifications:          0          0
    Updates:                5          8
    Keepalives:            19         19
    Route Refresh:          0          0
    Total:                 26         29
  Default minimum time between advertisement runs is 0 seconds

 For address family: IPv4 Unicast
  BGP table version 21, neighbor version 21/0
 Output queue size : 0
  Index 2, Offset 0, Mask 0x4
  Route-Reflector Client
  2 update-group member

ルートリフレクションで注意すべきことはルートリフレクタが1台の場合、それがこけると機能しなくなるという点です。これを回避するためにルートリフレクタを複数台設置してクラスター構成を組むことが可能です。その場合、ルートリフレクタには共通のCluster-IDを設定する必要があります。以下、設定例です。

router bgp 200
 no synchronization
 bgp cluster-id 1
 neighbor 2.2.2.2 remote-as 200
 neighbor 2.2.2.2 route-reflector-client
 neighbor 4.4.4.4 remote-as 200
 neighbor 4.4.4.4 route-reflector-client


■BGPピアグループ


BGPルータがピアに対して同じ更新ポリシーを適用することは一般的なことです。全ての近隣ルータに同じポリシーを適用するには手順的に大変で人為的な設定ミスも誘発しかねません。これを回避する方法がピアグループと呼ばれるものです。近隣ルータをピアグループと呼ばれる一つのグループにまとめて、そのグループに対して設定を行うことが可能です。

上の図でR1に着眼します。R2-R4に対してiBGPのピアをはり、なおかつR1はルートリフレクタとなります。この場合のR1の設定は以下のようになります。

router bgp 100
 no synchronization
 bgp log-neighbor-changes
 neighbor peergroup peer-group
 neighbor peergroup remote-as 100
 neighbor peergroup update-source Loopback0
 neighbor peergroup route-reflector-client
 neighbor 2.2.2.2 peer-group peergroup
 neighbor 3.3.3.3 peer-group peergroup
 neighbor 4.4.4.4 peer-group peergroup
 no auto-summary


ピアグループの確認コマンドは以下です。

R1# show ip bgp peer-group
BGP peer-group is peergroup,  remote AS 100
  BGP version 4
  Default minimum time between advertisement runs is 0 seconds

 For address family: IPv4 Unicast
  BGP neighbor is peergroup, peer-group internal, members:
  2.2.2.2 3.3.3.3 4.4.4.4
  Index 0, Offset 0, Mask 0x0
  Route-Reflector Client
  Update messages formatted 0, replicated 0
  Number of NLRIs in the update sent: max 0, min 0

ピアグループを使うことで大規模BGPネットワークで必要なコンフィグを削除することができます。また同じ情報を含むはずの複数の更新ポリシーを設定しようとする際の発生するエラーも排除することができます。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする