NSX-T BGP Maximum Prefix

今回はNSX-Tのおいて、特定のルータからBGP経由で学習したルート情報数が一定数を超えた際にログを出力する機能の検証証跡をまとめました。

 

概要

BGPのMaximum Prefixについて

異なる組織間でBGPを動作させている状況で、他の組織の運用管理者が設定ミスなどをした場合、他の組織から大量のルート情報が広報されます。急に自拠点のルータが想定を遥かに超えるルート情報を学習した結果、ルータのメモリ等が枯渇し、ルータがクラッシュする危険性があります。

 

上記のような問題を回避するために、BGPではネイバーに対して、学習可能なルート情報数の上限を設定することが可能です。もし、学習したルート情報数が上限を超えた場合は、ネイバーを切断したり、警告ログを出力することが可能です。
NSX-TのBGPでは、警告ログの出力のみサポートしています。

 

 

検証結果

検証内容、構成

Tier-1 GWでSegment 1を収容します。
Tier-1 GWとTier-0 GWを接続します。
NSX EdgeにTier-0 GWのSRを配置し、物理ネットワークとNSX-Tの仮想ネットワークを接続します。

Tier-0 GWのSRをAS 100、R2をAS 200として、EBGPネイバーを構築します。
Tier-0 GWのSRにおいて、R2から学習したルート情報数が2以上になった際、警告ログを出力します。
Tier-0 GWのSRはBGP経由で10.1.1.0/24を広報します。

この状況で、Tier-0 GWのSRに対して、R2からBGP経由で20.2.2.0/24、20.3.3.0/24、20.4.4.0/24を1つずつ順番に広報します。

 

ネットワーク機器のCLIの設定


interface GigabitEthernet2
 ip address 10.1.1.1 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 10.1.1.254
            


interface Loopback0
 ip address 20.2.2.2 255.255.255.0
!
interface Loopback1
 ip address 20.3.3.2 255.255.255.0
!
interface Loopback2
 ip address 20.4.4.2 255.255.255.0
!
interface GigabitEthernet2
 ip address 20.1.1.100 255.255.255.0
!
router bgp 200
 bgp router-id 2.2.2.2
 network 20.2.2.0 mask 255.255.255.0
 network 20.3.3.0 mask 255.255.255.0
 network 20.4.4.0 mask 255.255.255.0
 neighbor 20.1.1.1 remote-as 100
            

 

BGPの設定

R2のMaximum Prefixの閾値に2を指定します。

 

状態確認(受信したルート情報数が1個)

R2からTier-0 GWのSRに対して、20.2.2.0/24のみ広報します。

 

Tier-0 GWのSRはR2から1個のルート情報を学習していることが確認できます。

また、R2に対するMaximum Prefixの閾値が2であること、学習したルート情報数が上限の75%を超えた際に警告ログが出力されることが確認できます。

NSX Edge1

edge1(tier0_sr)> get bgp neighbor
BGP neighbor is 20.1.1.100, remote AS 200, local AS 100, external link
  BGP version 4, remote router ID 2.2.2.2, local router ID 20.1.1.1
  BGP state = Established, up for 00:18:21
  Last read 00:00:32, Last write 00:00:21
  Hold time is 180, keepalive interval is 30 seconds
  Configured hold time is 180, keepalive interval is 30 seconds
  .
  <一部省略>
  .
 For address family: IPv4 Unicast
  Update group 23, subgroup 20
  Packet Queue length 0
  Community attribute sent to this neighbor(all)
  1 accepted prefixes
  Maximum prefixes allowed 2 (warning-only)
  Threshold for warning message 75%

  Connections established 12; dropped 11
  Last reset 00:20:29, due to Peer closed the session
Local host: 20.1.1.1, Local port: 44833
Foreign host: 20.1.1.100, Foreign port: 179
Nexthop: 20.1.1.1
Nexthop global: ::
Nexthop local: ::
BGP connection: shared network
BGP Connect Retry Timer in Seconds: 10
Estimated round trip time: 2 ms
Read thread: on  Write thread: on
            

 

Tier-0 GWのSRはR2から20.2.2.0/24を学習していることが確認できます。

NSX Edge1

edge1(tier0_sr)> get bgp
BGP IPv4 table version is 102, BGP IPv6 table version is 0
Local router ID is 20.1.1.1
Status flags: > - best, I - internal
Origin flags: i - IGP, e - EGP, ? - incomplete

EVPN type-2 prefix: [2]:[EthTag]:[MAClen]:[MAC]:[IPlen]:[IP]
EVPN type-3 prefix: [3]:[EthTag]:[IPlen]:[OrigIP]
EVPN type-4 prefix: [4]:[ESI]:[IPlen]:[OrigIP]
EVPN type-5 prefix: [5]:[EthTag]:[IPlen]:[IP]

   Network      Next Hop      Metric  LocPrf  Weight  Path       RD
 > 10.1.1.0/24  100.64.128.1  0       100     32768   100 ?
 > 20.2.2.0/24  20.1.1.100    0       100     0       200 100 i
            

 

状態確認(受信したルート情報数が2個)

R2からTier-0 GWのSRに対して、20.2.2.0/24と20.3.3.0/24を広報します。

 

Tier-0 GWのSRはR2から2個のルート情報を学習していることが確認できます。

NSX Edge1

edge1(tier0_sr)> get bgp neighbor
BGP neighbor is 20.1.1.100, remote AS 200, local AS 100, external link
  BGP version 4, remote router ID 2.2.2.2, local router ID 20.1.1.1
  BGP state = Established, up for 00:20:03
  Last read 00:00:12, Last write 00:00:03
  Hold time is 180, keepalive interval is 30 seconds
  Configured hold time is 180, keepalive interval is 30 seconds
  .
  <一部省略>
  .
 For address family: IPv4 Unicast
  Update group 23, subgroup 20
  Packet Queue length 0
  Community attribute sent to this neighbor(all)
  2 accepted prefixes
  Maximum prefixes allowed 2 (warning-only)
  Threshold for warning message 75%

  Connections established 12; dropped 11
  Last reset 00:22:11, due to Peer closed the session
Local host: 20.1.1.1, Local port: 44833
Foreign host: 20.1.1.100, Foreign port: 179
Nexthop: 20.1.1.1
Nexthop global: ::
Nexthop local: ::
BGP connection: shared network
BGP Connect Retry Timer in Seconds: 10
Estimated round trip time: 2 ms
Read thread: on  Write thread: on
            

 

Tier-0 GWのSRはR2から20.2.2.0/24と20.3.3.0/24を学習していることが確認できます。

NSX Edge1

edge1(tier0_sr)> get bgp
BGP IPv4 table version is 102, BGP IPv6 table version is 0
Local router ID is 20.1.1.1
Status flags: > - best, I - internal
Origin flags: i - IGP, e - EGP, ? - incomplete

EVPN type-2 prefix: [2]:[EthTag]:[MAClen]:[MAC]:[IPlen]:[IP]
EVPN type-3 prefix: [3]:[EthTag]:[IPlen]:[OrigIP]
EVPN type-4 prefix: [4]:[ESI]:[IPlen]:[OrigIP]
EVPN type-5 prefix: [5]:[EthTag]:[IPlen]:[IP]

   Network      Next Hop      Metric  LocPrf  Weight  Path       RD
 > 20.3.3.0/24  20.1.1.100    0       100     0       200 100 i
 > 10.1.1.0/24  100.64.128.1  0       100     32768   100 ?
 > 20.2.2.0/24  20.1.1.100    0       100     0       200 100 i
            

 

BGPのMaximum Prefix関連のログはget log-file routingコマンドで確認可能です。Tier-0 GWのSRがR2からBGP経由で学習したルート情報数が上限に達したことが確認出来ます。

NSX Edge1

edge1> get log-file routing
2020/08/22 02:11:48.397282 BGP: %MAXPFX: No. of IPv4 Unicast prefix received from 20.1.1.100 reaches 2, max 2
            

 

状態確認(受信したルート情報数が3個)

R2からTier-0 GWのSRに対して、20.2.2.0/24と20.3.3.0/24と20.4.4.0/24を広報します。

 

Tier-0 GWのSRはR2から3個のルート情報を学習していることが確認できます。
また、BGPネイバーの状態がEstablishedであることから、学習したルート情報数が上限を超えた場合でも、BGPネイバーはダウンしないことが確認できます。

NSX Edge1

edge1(tier0_sr)> get bgp neighbor
BGP neighbor is 20.1.1.100, remote AS 200, local AS 100, external link
  BGP version 4, remote router ID 2.2.2.2, local router ID 20.1.1.1
  BGP state = Established, up for 00:23:31
  Last read 00:00:04, Last write 00:00:01
  Hold time is 180, keepalive interval is 30 seconds
  Configured hold time is 180, keepalive interval is 30 seconds
  .
  <一部省略>
  .
 For address family: IPv4 Unicast
  Update group 23, subgroup 20
  Packet Queue length 0
  Community attribute sent to this neighbor(all)
  3 accepted prefixes
  Maximum prefixes allowed 2 (warning-only)
  Threshold for warning message 75%

  Connections established 12; dropped 11
  Last reset 00:25:39, due to Peer closed the session
Local host: 20.1.1.1, Local port: 44833
Foreign host: 20.1.1.100, Foreign port: 179
Nexthop: 20.1.1.1
Nexthop global: ::
Nexthop local: ::
BGP connection: shared network
BGP Connect Retry Timer in Seconds: 10
Estimated round trip time: 2 ms
Read thread: on  Write thread: on
            

 

Tier-0 GWのSRはR2から20.2.2.0/24と20.3.3.0/24と20.4.4.40/24を学習していることが確認できます。学習したルート情報数が上限を超えた場合でも、ルート情報を学習し続けることが確認できます。

NSX Edge1

edge1(tier0_sr)> get bgp
BGP IPv4 table version is 102, BGP IPv6 table version is 0
Local router ID is 20.1.1.1
Status flags: > - best, I - internal
Origin flags: i - IGP, e - EGP, ? - incomplete

EVPN type-2 prefix: [2]:[EthTag]:[MAClen]:[MAC]:[IPlen]:[IP]
EVPN type-3 prefix: [3]:[EthTag]:[IPlen]:[OrigIP]
EVPN type-4 prefix: [4]:[ESI]:[IPlen]:[OrigIP]
EVPN type-5 prefix: [5]:[EthTag]:[IPlen]:[IP]

   Network      Next Hop      Metric  LocPrf  Weight  Path       RD
 > 20.3.3.0/24  20.1.1.100    0       100     0       200 100 i
 > 20.4.4.0/24  20.1.1.100    0       100     0       200 100 i
 > 10.1.1.0/24  100.64.128.1  0       100     32768   100 ?
 > 20.2.2.0/24  20.1.1.100    0       100     0       200 100 i
            

 

Tier-0 GWのSRがR2からBGP経由で学習したルート情報数が上限を超えたことが確認出来ます。

NSX Edge1

edge1> get log-file routing
2020/08/22 02:15:23.865429 BGP: %MAXPFXEXCEED: No. of IPv4 Unicast prefix received from 20.1.1.100 3 exceed, limit 2
            

コメント

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