【BGP】コンフェデレーション

BGP
スポンサーリンク

コンフェデレーションとは

 ASをサブASに分割し、必要なIBGPピアリング数を減らす方法として、コンフェデレーションがあります。
サブAS内では依然としてフルメッシュIBGP、もしくはルートリフレクタが必要です。また、これらのサブAS間では、EBGPのように見えますが、IBGPのように動作します。 設定では、router bgp で指定されるASはサブAS番号を使用します。サブAS番号は通常プライベートASの範囲(64512~65535)ですが、グローバルAS番号でも技術的には問題ありません。 neighborコマンドで設定したリモートASの番号が、自身のサブAS番号もしくはbgp confederation peer で設定されたAS番号である場合、そのAS番号はコンフェデレーション内のサブASであると見なします。

スポンサーリンク

設定

 下のような構成を考えます。R2、R3、R5でサブAS235(ルートリフレクタ使用) R6でサブAS6 とし、外部ASに公開するASはAS2356とします。 また、ルータ。R2、R3、R5、R6間は、EIGRPでルート情報を交換し、ループバックアドレス間でBGPネイバーを設定します。

 BGP設定は以下です。サブAS間をループバックインタフェースでBGPセッションを張るときは、eBGPと同様にebgp-multihop設定が必要です。 また、コンフェデレーション外部へ公開するASは、bgp confederation identifier で設定します。

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(config)#router bgp 235
R5(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(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(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(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
スポンサーリンク

動作確認

 では、R1のループバック1.1.1.1をAS2356へアドバタイズします。

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

 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

 1.1.1.1/32はベストパスですので、R5とR6にアドバタイズされます。

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

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

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

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

 また、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関連記事は   >>  ルーティングプロトコル(BGP)まとめ << より参照できます。

コメント

タイトルとURLをコピーしました