BGP プライベートAS削除の動作確認(Ciscoルータ)

BGP(Border Gateway Protocol)でプライベートAS(Autonomous System)番号を使用する場合、インターネットのグローバル環境へルートを広告する際に、AS-PATHからプライベートAS番号を削除することがあります。本記事では、Ciscoルータで remove-private-as コマンドを使用してプライベートASを削除する方法を、具体的な設定例と動作確認を通じて解説します。

スポンサーリンク

BGPのプライベートAS番号とは?

プライベートAS番号は、RFC 6996で定義された範囲(64512~65535)に属し、インターネットではなくプライベートネットワーク内での使用を目的としています。BGPでは、これらの番号がAS-PATHに残っていると、グローバルネットワークの他のASにルートを正常に広告できない場合があります。そのため、プライベートAS番号を削除する設定が重要ですことがあります。

スポンサーリンク

検証環境

 以下の構成で、BGPピアリングします。R2はプライベートAS番号である65000に設定します。

R2(config)# router bgp 65000
R2(config-router)#  network 2.2.2.2 mask 255.255.255.255
R2(config-router)#  neighbor 192.168.23.3 remote-as 3
R3(config)# router bgp 3
R3(config-router)#  neighbor 192.168.23.2 remote-as 65000
R3(config-router)#  neighbor 192.168.34.4 remote-as 4
R4(config)# router bgp 4
R4(config-router)#  neighbor 192.168.34.3 remote-as 3

 R3のBGPテーブルを確認すると、2.2.2.2/32をAS-PATH {65000}で学習しています。

R3# show ip bgp 
BGP table version is 2, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  2.2.2.2/32       192.168.23.2             0             0 65000 i

 R4のBGPテーブルを確認すると、2.2.2.2/32をAS-PATH {3,65000}で学習しています。

R4# show ip bgp 
BGP table version is 2, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  2.2.2.2/32       192.168.34.3                           0 3 65000 i

プライベートAS削除 remove-private-as

 R3でR4へルートを広告する際にプライベートASを削除するよう、remove-private-asを設定します。

R3(config)# router bgp 3
R3(config-router)# neighbor 192.168.34.4 remove-private-as

 BGPセッションをクリアします。

R3# clear ip bgp *

 R3のBGPテーブルを確認すると、2.2.2.2/32のAS-PATHは{65000}のままです。

R3# show ip bgp
BGP table version is 2, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  2.2.2.2/32       192.168.23.2             0             0 65000 i

 R4のBGPテーブルを確認すると、設定前のAS-PATHは {3,65000}でしたが、プライベートASが削除され、{3}のみになっています。

R4# show ip bgp
BGP table version is 4, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  2.2.2.2/32       192.168.34.3                           0 3 I

プライベートASとグローバルASの混在時の対応 remove-private-as all

プライベートASとグローバルAS(例: AS 2)がAS-PATHに混在する場合、remove-private-asコマンドでは削除されません。

 remove-private-as を設定した状態で、R2から広告するルートにグローバルAS(今回はAS番号2)をプリペンドします。

R2(config)# route-map ASPREPEND permit 10
R2(config-route-map)# set as-path prepend 2
R2(config-route-map)# exit
R2(config)# router bgp 65000
R2(config-router)# neighbor 192.168.23.3 route-map ASPREPEND out

 BGPセッションをクリアします。

R2# clear ip bgp *

 R3のBGPテーブルを見ると、AS-PATHは{65000,2}であることが確認できます。

R3# show ip bgp
BGP table version is 4, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  2.2.2.2/32       192.168.23.2             0             0 65000 2 I

 次にR4のBGPテーブルを確認すると、AS-PATH内にプライベートASである65000が残っています。

R4# show ip bgp
BGP table version is 6, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  2.2.2.2/32       192.168.34.3                           0 3 65000 2 i

 これは、R3のBGPテーブルで確認できる通り、広告しようとしたルートのAS-PATHが{65000,2}とプライベートASとグローバルASが混在しているためです。

remove-private-asコマンドでは、AS-PATHにプライベートAS番号のみリストされているルートにのみプライベートASが削除され、ローカルAS発のルートとして広告されます。

 プライベートASとグローバルASが混在しているようなルートを広告する際に、プライベートASを削除するには、remove-private-as allと設定します。

R3(config)# router bgp 3
R3(config-router)# neighbor 192.168.34.4 remove-private-as all

 BGPセッションをクリアします。

R3# clear ip bgp *

 R3のBGPテーブルを確認すると、AS-PATHは{65000,2}とプライベートASとグローバルASが混在しています。

R3# show ip bgp
BGP table version is 2, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  2.2.2.2/32       192.168.23.2             0             0 65000 2 i

 R4のBGPテーブルを確認すると、AS-PATHのリストのうち、65000だけ削除されていることが確認できます。

R4# show ip bgp
BGP table version is 8, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  2.2.2.2/32       192.168.34.3                           0 3 2 i

AS-PATHの整合性を保つ remove-private-as all replace-as

 remove-private-as allコマンドだと、プライベートAS番号が削除された分、AS-PATHが短くなります。AS-PATHの長さを同じにするために、プライベートAS番号をローカルAS番号に変換することができます。コマンドは、remove-private-as all replace-asを使用します。

R3(config)# router bgp 3
R3(config-router)# neighbor 192.168.34.4 remove-private-as all replace-as

 BGPセッションをクリアします。

R3# clear ip bgp *

 R3のBGPテーブルを確認すると、AS-PATHが{65000,2}とプライベートASとグローバルASが混在しています。

R3# show ip bgp
BGP table version is 2, local router ID is 3.3.3.3
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  2.2.2.2/32       192.168.23.2             0             0 65000 2 i

 R4のBGPテーブルを確認すると、AS-PATHの65000がR3のローカルAS番号である3に変換されていることが確認できます。

R4# show ip bgp
BGP table version is 10, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, 
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter, 
              x best-external, a additional-path, c RIB-compressed, 
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 *>  2.2.2.2/32       192.168.34.3                           0 3  3  2  i
スポンサーリンク

まとめ

  • remove-private-as: プライベートASのみ削除
  • remove-private-as all: プライベートASとグローバルASが混在している場合も削除
  • remove-private-as all replace-as: 削除後、ローカルASで置き換え

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

コメント