CiscoルータでのBGP AS番号変更:Local-ASと各オプションの解説

 ISPの接続先変更などで、AS番号を変更したい場合を想定します。BGPでは、neighborコマンドでネイバー接続先のAS番号をスタティックで設定をしていますので、AS番号が変更になった場合は、そのASとネイバー関係にあるルータの設定を変更する必要があります。

 ただし、ルータの設定変更ができない場合を想定して、local-asという設定があります。local-asを使用することで、本来のAS番号とは違うAS番号を使用して、BGPネイバーを確立することができます。

スポンサーリンク

local-as 設定

Local-AS設定は、ネットワークのAS番号を変更する際、隣接ルータに影響を与えずにBGPネイバー関係を維持する手法です

 例えば、以下の構成で、R1のAS番号がもともとのAS番号 1からAS番号100に変更したいとします。ただし、R2の設定変更はできません。この場合、R1でlocal-asを使用することで、R1の実際のAS番号は100ですが、ネイバー確立には、AS番号1を引き続き使用することができます。

 まず、R1では、router bgpコマンドで、実際のAS番号100を指定し、neighborコマンドのlocal-asで旧のAS番号1を設定します。R2はR1のAS番号1とEBGPネイバー設定をします。

R1(config)# router bgp 100
R1(config-router)#  network 1.1.1.1 mask 255.255.255.255
R1(config-router)#  neighbor 192.168.12.2 remote-as 2
R1(config-router)#  neighbor 192.168.12.2 local-as 1
R2(config)# router bgp 2
R2(config-router)#  network 2.2.2.2 mask 255.255.255.255
R2(config-router)#  neighbor 192.168.12.1 remote-as 1

 これで、R1とR2でEBGPネイバーが確立できます。

 R1のBGPテーブルを見ると、2.2.2.2/32のAS-PATHは 1 2 であることが確認できます。 つまり、local-asで指定したAS番号1もAS-PATHに含まれます。

R1# show ip bgp 2.2.2.2
BGP routing table entry for 2.2.2.2/32, version 5
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 1
  1 2
    192.168.12.2 from 192.168.12.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, external, best
R2# show 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)
  Not advertised to any peer
  Refresh Epoch 1
  1 100
    192.168.12.1 from 192.168.12.1 (1.1.1.1)
      Origin IGP, metric 0, localpref 100, valid, external, best
スポンサーリンク

no-prepend オプション

 local-asno-prependオプションを使用することで、R1はR2からのルートにlocal-asで設定したAS(今回はAS番号1)をプリペンドしません。

R1(config)# router bgp 100
R1(config-router)#  neighbor 192.168.12.2 local-as 1 no-prepend 
R1(config-router)#
%BGP-5-ADJCHANGE: neighbor 192.168.12.2 Down Local AS change
%BGP_SESSION-5-ADJCHANGE: neighbor 192.168.12.2 IPv4 Unicast topology base 
removed from session  Local AS change
%BGP-5-ADJCHANGE: neighbor 192.168.12.2 Up

 no-prependオプションを設定すると、一度、ネイバーが切断されます。 R1でBGPテーブルを確認します。

R1# show ip bgp 2.2.2.2
BGP routing table entry for 2.2.2.2/32, version 7
Paths: (1 available, best #1, table default)
Flag: 0x820
  Not advertised to any peer
  Refresh Epoch 1
  2
    192.168.12.2 from 192.168.12.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, external, best

AS-PATHが2のみとなり、AS番号1が消えていることが確認できます。

 R2のBGPテーブルはno-prependのオプションあり、なしによる変更はありません。

R2#show ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 9
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 1
  1 100
    192.168.12.1 from 192.168.12.1 (1.1.1.1)
      Origin IGP, metric 0, localpref 100, valid, external, best
スポンサーリンク

no-prepend + replace-as オプション

 no-prependと加え、replace-asを設定することで、R2から見ると、実際のAS(今回はAS番号100)をAS-PATHから外すことができます。

R1(config)# router bgp 100
R1(config-router)# neighbor 192.168.12.2 local-as 1 no-prepend replace-as
%BGP-5-ADJCHANGE: neighbor 192.168.12.2 Down Local AS change
%BGP_SESSION-5-ADJCHANGE: neighbor 192.168.12.2 IPv4 Unicast topology base 
removed from session  Local AS change
R1(config-router)#
%BGP-5-ADJCHANGE: neighbor 192.168.12.2 Up

 設定すると、一度、ネイバーが切断されます。R1のBGPテーブルを確認すると、no-prependオプションのみの時と変更ありません。

R1# show ip bgp 2.2.2.2
BGP routing table entry for 2.2.2.2/32, version 9
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 1
  2
    192.168.12.2 from 192.168.12.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, external, best

R2のBGPテーブルを見ると、1.1.1.1/32へのAS-PATHは実際のAS番号であるAS 100が消えており、R1のloca-asで設定したAS番号1のみとなります。

R2# show ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 11
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  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
スポンサーリンク

no-prepend + replace-as + dual-as オプション

 さらに、dual-asを設定することで、R2はR1のloca-asで設定したAS番号1と実際のAS番号100のどちらでもEBGPネイバーを確立することができます。

R1(config)# router bgp 100
R1(config-router)# neighbor 192.168.12.2 local-as 1 no-prepend replace-as dual-as

%BGP-5-ADJCHANGE: neighbor 192.168.12.2 Down Local AS change
%BGP_SESSION-5-ADJCHANGE: neighbor 192.168.12.2 IPv4 Unicast topology base 
removed from session  Local AS change
%BGP-3-NOTIFICATION: received from neighbor 192.168.12.2 active 2/2 (peer in wrong AS)
 2 bytes 0064
R1(config-router)#
%BGP_SESSION-5-ADJCHANGE: neighbor 192.168.12.2 IPv4 Unicast topology base 
removed from session  BGP Notification received
R1(config-router)#
%BGP-5-ADJCHANGE: neighbor 192.168.12.2 Up

 設定すると、一度、ネイバーが切断されます。

 R1とR2のBGPテーブルを見ると、 no-prepend replace-as オプションの時と変更はありません。

R1# show ip bgp  2.2.2.2
BGP routing table entry for 2.2.2.2/32, version 11
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 1
  2
    192.168.12.2 from 192.168.12.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, external, best
R2# show ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 13
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  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

 現在は、R2はR1をAS番号1として、EBGPネイバーを確立しています。これを実際のAS番号100でEBGPネイバーを確立するよう設定変更します。

R2(config)# router bgp 2
R2(config-router)# no neighbor 192.168.12.1 remote-as 1
R2(config-router)#
%BGP_SESSION-5-ADJCHANGE: neighbor 192.168.12.1 IPv4 Unicast topology base 
removed from session  Neighbor deleted
%BGP-5-ADJCHANGE: neighbor 192.168.12.1 Down Neighbor deleted
R2(config-router)# neighbor 192.168.12.1 remote-as 100
R2(config-router)#
%BGP-5-ADJCHANGE: neighbor 192.168.12.1 Up

 ネイバーが確立できました。R1、R2のBGPテーブルを確認します。

R2のBGPテーブルで、1.1.1.1/32のAS-PATHで、AS番号1から100に変更されていることが確認できます。

R1# show ip bgp 2.2.2.2 
BGP routing table entry for 2.2.2.2/32, version 13
Paths: (1 available, best #1, table default)
Flag: 0x820
  Not advertised to any peer
  Refresh Epoch 1
  2
    192.168.12.2 from 192.168.12.2 (2.2.2.2)
      Origin IGP, metric 0, localpref 100, valid, external, best
R2# show ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 15
Paths: (1 available, best #1, table default)
  Not advertised to any peer
  Refresh Epoch 1
  100
    192.168.12.1 from 192.168.12.1 (1.1.1.1)
      Origin IGP, metric 0, localpref 100, valid, external, best
スポンサーリンク

まとめ

本記事では、BGPのLocal-AS設定を利用してAS番号を変更する際に役立つ方法を解説しました。AS番号の変更はネットワークの再編成やISPの切り替え時に必要ですが、全てのネイバーに対して設定変更を強いることが難しい場合があります。このようなケースで、Local-AS設定を活用することで、既存のAS番号を引き続き使用しつつ、段階的に新しいAS番号へ移行することができます。

さらに、no-prepend、replace-as、dual-asといったオプションを組み合わせることで、AS-PATHの操作や複数AS番号でのネイバー確立が可能となり、ネットワーク管理が柔軟になります。

  • Local-AS:既存のAS番号を保持しつつBGPネイバーを確立
  • no-prepend:AS番号をAS-PATHに追加しない
  • replace-as:新しいAS番号をAS-PATHから除外
  • dual-as:複数のAS番号でのネイバー確立を可能にする

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

コメント