BGPコンフェデレーション設定と動作確認 – Ciscoルータでの手順解説

BGP(Border Gateway Protocol)は、インターネットの基盤ともいえる重要なルーティングプロトコルです。しかし、IBGPでは全ルータ間のフルメッシュ接続が必要なため、大規模ネットワークでは構成が複雑になりがちです。そこで有効なのが「BGPコンフェデレーション」。これは、AS(Autonomous System)を複数のサブASに分割することで、IBGPフルメッシュの負担を軽減し、スケーラビリティを高める手法です。

この記事では、Ciscoルータを使ったBGPコンフェデレーションの設定と動作確認手順をステップバイステップで解説します。

スポンサーリンク

BGPコンフェデレーションの設定

概要

BGP(Border Gateway Protocol)のコンフェデレーションは、大規模なAS(Autonomous System)を複数のサブASに分割することで、IBGPフルメッシュの制約を緩和する仕組みです。通常、IBGPのピアリングでは、すべてのルータ間でフルメッシュ接続が必要ですが、コンフェデレーションではASをサブASに分割することで、このピアリングの負担を軽減します。

サブAS間では、EBGPのように見えるものの、実際にはIBGPとして動作します。

  • サブASに分割:ASを複数のサブASに分割することで、IBGPのフルメッシュ要件を緩和。
  • 内部ではIBGP、外部からはEBGP:サブAS間ではEBGPのように見えるが、実際はIBGPとして動作。
  • BGP属性の変化:サブAS間の通信ではconfed-internalconfed-externalといったBGP属性が適用され、外部ASに対しては通常のAS_PATHで表示される。

主なメリット

  • スケーラビリティ向上:BGPピア数の削減により、大規模ネットワークでも効率的な運用が可能。
  • 管理の簡略化:サブAS内でのルートリフレクタ使用により、ピアリングの管理がシンプルに。
スポンサーリンク

BGPコンフェデレーションの設定

ここでは、Ciscoルータを用いて、BGPコンフェデレーションを設定する具体的な手順を解説します。設定は、以下のネットワーク構成に基づいて行います:

  • サブAS235:ルータR2, R3, R5(ルートリフレクタを使用)
  • サブAS6:ルータR6
  • 外部AS:AS2356
  • IGP:EIGRPを使用し、ループバックアドレスでBGPピアを設定

R5のBGPコンフェデレーション設定

R5は、サブAS235に属し、ルートリフレクタとして動作します。ここでは、R2およびR3とピアリングを設定し、公開ASとしてAS2356を指定します。さらに、ループバックインタフェースを利用してピアを構成します。

R5(config)#router bgp 235
R5(config-router)#bgp confederation identifier 2356
R5(config-router)#neighbor 2.2.2.2 remote-as 235
R5(config-router)#neighbor 2.2.2.2 update-source loopback 0
R5(config-router)#neighbor 2.2.2.2 route-reflector-client 
R5(config-router)#neighbor 3.3.3.3 remote-as 235
R5(config-router)#neighbor 3.3.3.3 update-source loopback 0
R5(config-router)#neighbor 3.3.3.3 route-reflector-client

R2のBGPコンフェデレーション設定

R2もサブAS235のメンバーであり、R5およびR6とBGPピアリングを構成します。R6とはサブAS6に対してbgp confederation peersでピアリングを指定し、EBGPと同様にebgp-multihopを設定します。

R2(config)#router bgp 235
R2(config-router)#bgp confederation identifier 2356
R2(config-router)#neighbor 5.5.5.5 remote-as 235
R2(config-router)#neighbor 5.5.5.5 update-source loopback 0
R2(config-router)#neighbor 6.6.6.6 remote-as 6
R2(config-router)#neighbor 6.6.6.6 update-source loopback 0
R2(config-router)#neighbor 6.6.6.6 ebgp-multihop 
R2(config-router)#bgp confederation peers 6
R2(config-router)#neighbor 192.168.12.1 remote-as 1

R3のBGPコンフェデレーション設定

R3はサブAS235に属し、R5と同様にルートリフレクタとして動作します。R5およびR6とBGPピアリングを設定し、公開ASとしてAS2356を指定します。

R3(config)#router bgp 235
R3(config-router)#bgp confederation identifier 2356
R3(config-router)#neighbor 5.5.5.5 remote-as 235
R3(config-router)#neighbor 5.5.5.5 update-source loopback 0
R3(config-router)#neighbor 6.6.6.6 remote-as 6
R3(config-router)#neighbor 6.6.6.6 update-source loopback 0
R3(config-router)#neighbor 6.6.6.6 ebgp-multihop 
R3(config-router)#bgp confederation peers 6
R3(config-router)#neighbor 192.168.34.4 remote-as 4

R6のBGPコンフェデレーション設定

R6は、サブAS6に属するルータであり、サブAS235に属するR2およびR3とピアリングを行います。R6は、公開ASとしてAS2356を指定し、サブAS235に対してピアリングを設定します。

R6(config)#router bgp 6
R6(config-router)#bgp confederation identifier 2356
R6(config-router)#neighbor 2.2.2.2 remote-as 235
R6(config-router)#neighbor 2.2.2.2 update-source loopback 0
R6(config-router)#neighbor 2.2.2.2 ebgp-multihop
R6(config-router)#neighbor 3.3.3.3 remote-as 235
R6(config-router)#neighbor 3.3.3.3 update-source loopback 0
R6(config-router)#neighbor 3.3.3.3 ebgp-multihop
R6(config-router)#bgp confederation peers 235

R1とR4のBGP設定

R1とR4は外部ASとして、AS2356とのピアリングを行います。これにより、コンフェデレーション全体が外部ASに対して単一のASとして見えます。

R1(config)#router bgp 1
R1(config-router)#neighbor 192.168.12.2 remote-as 2356
R4(config)#router bgp 4
R4(config-router)#neighbor 192.168.34.3 remote-as 2356

設定のポイント

  • ebgp-multihop設定:サブAS間をループバックインタフェースで接続する場合、EBGPと同様にebgp-multihopが必要です。
  • bgp confederation identifier:公開AS番号(AS2356)を設定します。
  • bgp confederation peers:サブAS間のピアを指定し、内部のサブASとして認識。
スポンサーリンク

動作確認

BGPの動作確認では、R1のループバックアドレス1.1.1.1/32をBGPネットワークにアドバタイズし、他のルータが正しくルートを学習するかを確認します。

R1のルートアドバタイズ

まず、R1のループバック1.1.1.1/32をBGPにアドバタイズします。これにより、ネットワーク内の他のルータがこのルートを学習し始めます。

R1(config)#router bgp 1
R1(config-router)#network 1.1.1.1 mask 255.255.255.255

R2のルート学習の確認

R2がR1から1.1.1.1/32を学習しているかを確認します。この学習が成功すれば、コンフェデレーション内の他のルータにもルートが伝播されます。

R2#sh ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 2
Paths: (1 available, best #1, table default)
  Advertised to update-groups:
     9          11        
  Refresh Epoch 1
  1
    192.168.12.1 from 192.168.12.1 (1.1.1.1)
      Origin IGP, metric 0, localpref 100, valid, external, best
      rx pathid: 0, tx pathid: 0x0

R5とR6でのBGP属性の確認

R5とR6では、1.1.1.1/32のルートにconfed-internalまたはconfed-external属性が付加されていることを確認します。

R5では、1.1.1.1/32に対して、新しい属性 confed-internal が付けられています。これは、同じサブASから学習したルートであることを意味します。

R5#sh ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 6
Paths: (1 available, best #1, table default)
  Advertised to update-groups:
     2         
  Refresh Epoch 1
  1, (Received from a RR-client)
    192.168.12.1 (metric 307200) from 2.2.2.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, confed-internal, best
      rx pathid: 0, tx pathid: 0x0

R6では、1.1.1.1/32に対して、confed-external が付けられています。これは、コンフェデレーション内の違うサブASから学習したルートであることを意味します。注意すべきは、eBGPのような動作をしていますが、Nexthop 192.168.12.1 が変更されないことです。

R6#sh ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 8
Paths: (2 available, best #2, table default)
  Advertised to update-groups:
     1         
 (235) 1
    192.168.12.1 (metric 307200) from 3.3.3.3 (3.3.3.3)
      Origin IGP, metric 0, localpref 100, valid, confed-external
      rx pathid: 0, tx pathid: 0
  (235) 1
    192.168.12.1 (metric 307200) from 2.2.2.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, confed-external, best
      rx pathid: 0, tx pathid: 0x0

AS_CONFED_SETの確認

AS_CONFED_SETと呼ばれる新しいBGP属性を使用し、サブASをリストの先頭に( )で追加します。AS-PATHは (235) 1 です。これは、このルートが別のサブAS(235)から来たことを意味します。R2がR6に更新を送信したときに、追加されます。

R3のBGPテーブル 1.1.1.1/32 を確認します。

R3#sh ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 6
Paths: (1 available, best #1, table default)
  Advertised to update-groups:
     2          3         
  Refresh Epoch 1
  1
    192.168.12.1 (metric 307200) from 5.5.5.5 (5.5.5.5)
      Origin IGP, metric 0, localpref 100, valid, confed-internal, best
      Originator: 2.2.2.2, Cluster list: 5.5.5.5
      rx pathid: 0, tx pathid: 0x0

R3は1.1.1.1/24をベストパスとして認識していますので、R4(AS4)にアドバタイズします。その際、AS_CONFED_SETでサブAS番号がリスト化されていれば、そのリストは削除され、公開AS(AS2356)に変更されます。

R4#sh ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 6
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 1
  2356 1
    192.168.34.3 from 192.168.34.3 (3.3.3.3)
      Origin IGP, localpref 100, valid, external, best
      rx pathid: 0, tx pathid: 0x0
スポンサーリンク

補足情報(ベストパス選択の仕組み)

 R6のBGPテーブル1.1.1.1/32を確認してみます。

R6#sh ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 8
Paths: (2 available, best #2, table default)
  Advertised to update-groups:
     1         
  Refresh Epoch 1
  (235) 1
    192.168.12.1 (metric 307200) from 3.3.3.3 (3.3.3.3)
      Origin IGP, metric 0, localpref 100, valid, confed-external
      rx pathid: 0, tx pathid: 0
  Refresh Epoch 1
  (235) 1
    192.168.12.1 (metric 307200) from 2.2.2.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, confed-external, best 
      rx pathid: 0, tx pathid: 0x0

 R6は、1.1.1.1/32のルートをルータID 2.2.2.2 と3.3.3.3の二箇所からアドバタイズされており、2.2.2.2 からのルートをベストパスとしています。これは、ベストパス選択アルゴリズムより、ルータIDが3.3.3.3より2.2.2.2の方が小さいためです。

 R6からR1(1.1.1.1)には、R2を経由して、接続します。

R6#traceroute 1.1.1.1
Type escape sequence to abort.
Tracing the route to 1.1.1.1
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.26.2 1 msec 1 msec 1 msec
  2 192.168.12.1 2 msec 1 msec 2 msec

 ここで、R2のルータIDを222.222.222.222に変更して、ベストパスの選択結果を確認します。

R2(config)#router bgp 235
R2(config-router)#bgp router-id 222.222.222.222

 これで、R6上で1.1.1.1/32は、ルータID 3.3.3.3からのルートがベストパスになっています。

R6#sh ip bgp 1.1.1.1 
BGP routing table entry for 1.1.1.1/32, version 12
Paths: (2 available, best #1, table default)
  Advertised to update-groups:
     1         
  Refresh Epoch 1
  (235) 1
    192.168.12.1 (metric 307200) from 3.3.3.3 (3.3.3.3)
      Origin IGP, metric 0, localpref 100, valid, confed-external, best
      rx pathid: 0, tx pathid: 0x0
  Refresh Epoch 1
  (235) 1
    192.168.12.1 (metric 307200) from 2.2.2.2 (222.222.222.222)
      Origin IGP, metric 0, localpref 100, valid, confed-external
      rx pathid: 0, tx pathid: 0

 再度、R6からR1(1.1.1.1)への接続を確認すると、変更前と変わらずR2経由となります。

R6#traceroute 1.1.1.1
Type escape sequence to abort.
Tracing the route to 1.1.1.1
VRF info: (vrf in name/id, vrf out name/id)
  1 192.168.26.2 2 msec 0 msec 1 msec
  2 192.168.12.1 2 msec 1 msec 2 msec

 これは、ネクストホップ(192.168.12.1)がルータID変更前後で変わらないためです。

 ネクストホップ(192.168.12.1)に対して、出力インタフェースを決定し、1.1.1.1に接続します。BGPで学習したルータと通信経路は異なることはよくあります。通信経路は、BGPで学習した経路のネクストホップに対してのIGPの経路に依存します。

スポンサーリンク

まとめ

BGPコンフェデレーションは、大規模ネットワークでのIBGPフルメッシュの制限を緩和し、ネットワークのスケーラビリティを向上させることができます。

その他 BGP関連記事は   >>  ルーティングプロトコル(BGP)まとめ << より参照できます。

コメント