【BGP】プライベートASの削除

BGP

 BGPのプライベートAS番号の範囲は64512~65535です。これらのAS番号はインターネットのグローバル環境へ広告する前にAS-PATHから削除するのが一般的です。Ciscoでは、remove-private-asコマンドによりプライベートASを削除して、eBGPピアにルートを広告することができます。

 以下の構成で、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

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

remove-private-as all

 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

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

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

コメント

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