NSX-T BGP Communityを使用したフィルタリング

今回はNSX-TのBGPにおけるCommunityを使用したフィルタリングの動作をまとめました。

 

概要

Communityについて

下図において、AS 10のR1はAS 20から受信したルート情報のうち、AS 30のルート情報のみ学習したいとします。
この際、IPアドレスを条件に使用したRoute Mapを作成し、30.1.1.0/24のみ許可すれば、R1はAS 30のルート情報のみ学習できます。

 

もし、この状況で、AS 30に新しいネットワークである30.2.2.0/24が追加された場合、R1のRoute Mapの設定も変更する必要があります。つまり、ネットワークの変化が発生する度に、自拠点のBGPの設定変更が発生してしまいます。

 

上記のような問題を回避するには、Communityを使用します。Communityは32ビットの数値で、視覚的に見やすいように、コロン(:)で2ビット単位で区切り表現します。

 

CommunityはBGPで広報されるルートに対して付加する情報で、Route Mapのフィルタリングの条件で使用可能です。

下図のように、AS 30において、ルート情報を広報する際、ルート情報にCommunity 30:1を付加します。そして、R1でCommunity 30:1のみを許可するRoute Mapを設定します。

 

もし、この状況で、AS 30に新しいネットワークである30.2.2.0/24が追加されたとします。AS 30は新たに追加された30.2.2.0/24にCommunity 30:1を付加して、広報します。
R1のRoute MapではCommunity 30:1が付加されたルート情報は許可されているため、R1のBGPの設定変更無しで、R1は30.2.2.0/24を学習できます。

 

検証結果

検証内容、構成

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はBGP経由で10.1.1.0/24を広報します。

 

R2はBGP経由で以下のルート情報を広報します。

  • 20.2.2.0/24 , Community 200:1 200:2
  • 20.3.3.0/24 , Community 200:1 200:2 200:3
  • 20.4.4.0/24 , Community 200:1
  • 20.5.5.0/24 , Community 200:4

 

この状況で、Tier-0 GWのSRにおいて、R2から受信したルート情報に対してCommunityを条件に使用したフィルタリングを適用します。

 

ネットワーク機器の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 Loopback3
 ip address 20.5.5.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
 network 20.5.5.0 mask 255.255.255.0
 neighbor 20.1.1.1 remote-as 100
 neighbor 20.1.1.1 send-community
 neighbor 20.1.1.1 route-map BGP_MAP out
!
ip bgp-community new-format
!
ip prefix-list BGP_PREFIX_1 seq 5 permit 20.2.2.0/24
!
ip prefix-list BGP_PREFIX_2 seq 5 permit 20.3.3.0/24
!
ip prefix-list BGP_PREFIX_3 seq 5 permit 20.4.4.0/24
!
route-map BGP_MAP permit 10
 match ip address prefix-list BGP_PREFIX_1
 set community 200:1 200:2
!
route-map BGP_MAP permit 20
 match ip address prefix-list BGP_PREFIX_2
 set community 200:1 200:2 200:3
!
route-map BGP_MAP permit 30
 match ip address prefix-list BGP_PREFIX_3
 set community 200:1
!
route-map BGP_MAP permit 40
 set community 200:4

            

 

フィルタリング無し

ルート情報を受信した際のフィルタリングは設定せずに、Tier-0 GWのSRとR2間でEBGPネイバーを構成します。

 

BGPの設定

 

状態確認

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

NSX Edge1

edge1(tier0_sr)> get bgp
BGP IPv4 table version is 10, 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.5.5.0/24  20.1.1.100    0       100     0       200 100 i
 > 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
            

 

ルート情報に付加されているCommunityはget bgp <address>/<prefix-length>コマンドで確認可能です。

NSX Edge1

edge1(tier0_sr)> get bgp 20.2.2.0/24
BGP routing table entry for 20.2.2.0/24
Prefix advertised to:  20.1.1.100
1 Paths available:
  Origin IGP, Metric 0, LocalPref 100, Weight 0, best, valid
  Community: 200:1 200:2
  Peer is 20.1.1.100 with router id 2.2.2.2
  Last Updated: Sat Aug 22 07:53:59 2020

edge1(tier0_sr)> get bgp 20.3.3.0/24
BGP routing table entry for 20.3.3.0/24
Prefix advertised to:  20.1.1.100
1 Paths available:
  Origin IGP, Metric 0, LocalPref 100, Weight 0, best, valid
  Community: 200:1 200:2 200:3
  Peer is 20.1.1.100 with router id 2.2.2.2
  Last Updated: Sat Aug 22 07:53:59 2020

edge1(tier0_sr)> get bgp 20.4.4.0/24
BGP routing table entry for 20.4.4.0/24
Prefix advertised to:  20.1.1.100
1 Paths available:
  Origin IGP, Metric 0, LocalPref 100, Weight 0, best, valid
  Community: 200:1
  Peer is 20.1.1.100 with router id 2.2.2.2
  Last Updated: Sat Aug 22 07:53:59 2020

edge1(tier0_sr)> get bgp 20.5.5.0/24
BGP routing table entry for 20.5.5.0/24
Prefix advertised to:  20.1.1.100
1 Paths available:
  Origin IGP, Metric 0, LocalPref 100, Weight 0, best, valid
  Community: 200:4
  Peer is 20.1.1.100 with router id 2.2.2.2
  Last Updated: Sat Aug 22 07:54:21 2020
            

 

フィルタリング有り(いずれかに一致)

Tier-0 GWのSRがR2からルート情報を受信した際、Communityとして200:1か200:2のいずれかが付加されたルート情報のみ許可するフィルタリングを設定します。

 

Community Listの設定

Community 200:1 200:2を指定したCommunity Listを作成します。

 

Route Mapの設定

Route Mapを作成し、先程作成したCommunity Listといずれかに一致オプションを指定します。

 

BGPの設定

R2の入力フィルタに対して、先程定義したRoute Mapを適用します。

 

状態確認

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

NSX Edge1

edge1(tier0_sr)> get bgp
BGP IPv4 table version is 10, 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からルート情報を受信した際、Communityとして200:1か200:2の全てが付加されたルート情報のみ許可するフィルタリングを設定します。

 

Route Mapの設定

Route MapのCommunity Listのオプションをすべてに一致に変更します。

 

状態確認

Tier-0 GWのSRはR2から20.4.4.0/24と20.5.5.0/24を破棄していることが確認できます。

NSX Edge1

edge1(tier0_sr)> get bgp
BGP IPv4 table version is 10, 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
            

 

フィルタリング有り(完全に一致)

Tier-0 GWのSRがR2からルート情報を受信した際、Communityとして200:1と200:2のみが付加されたルート情報を許可するフィルタリングを設定します。

 

Route Mapの設定

Route MapのCommunity Listのオプションを完全に一致に変更します。

 

状態確認

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

NSX Edge1

edge1(tier0_sr)> get bgp
BGP IPv4 table version is 10, 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
            

コメント

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