今回は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%を超えた際に警告ログが出力されることが確認できます。
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を学習していることが確認できます。
状態確認(受信したルート情報数が2個)
R2からTier-0 GWのSRに対して、20.2.2.0/24と20.3.3.0/24を広報します。
Tier-0 GWのSRはR2から2個のルート情報を学習していることが確認できます。
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を学習していることが確認できます。
BGPのMaximum Prefix関連のログはget log-file routingコマンドで確認可能です。Tier-0 GWのSRがR2からBGP経由で学習したルート情報数が上限に達したことが確認出来ます。
状態確認(受信したルート情報数が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ネイバーはダウンしないことが確認できます。
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を学習していることが確認できます。学習したルート情報数が上限を超えた場合でも、ルート情報を学習し続けることが確認できます。
Tier-0 GWのSRがR2からBGP経由で学習したルート情報数が上限を超えたことが確認出来ます。
コメント