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

 

ネットワーク機器の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 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
 neighbor 20.1.1.1 remote-as 100
            

 

BGPの設定

Tier-0 GWでBGPを有効にし、自身のAS番号(100)を指定します。

次に、BGPネイバーのアドレス(20.1.1.100)とAS番号(200)を指定します。デフォルトでBGPネイバーに対してはIPv4 AF(Address Family)が有効、つまり、IPv4のルート情報の交換が有効になっています。

 

BGPの設定後の状態確認

NSX Edge(Tier-0 GWのSR)の状態確認

最初にvrf <id>コマンドを使用して、NSX Edge内に作成されたTier-0 GWのSRに移動します。(vrf <id>コマンドには<id>は、get logical-routersコマンドで確認可能なTier-0 GWのSRのVRF IDを指定します。)

NSX Edge1

edge1> vrf 9
edge1(tier0_sr)>
            

 

BGPネイバーの状態はget bgp neighborコマンドで確認可能です。状態がEstablishedの場合、BGPネイバーが確立されていることを示します。また、IPv4のルート情報の交換が有効なことが確認できます。

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:04:23
  Last read 00:00:40, Last write 00:00:23
  Hold time is 180, keepalive interval is 60 seconds
  Configured hold time is 180, keepalive interval is 60 seconds
  Neighbor capabilities:
    4 Byte AS: advertised and received
    AddPath:
      IPv4 Unicast: RX advertised IPv4 Unicast
    Route refresh: advertised and received(old & new)
    Address Family IPv4 Unicast: advertised and received
    Hostname Capability: advertised (name: edge1,domain name: n/a) not received
  Graceful restart information:
    Local GR Mode  : Disable*
    Remote GR Mode : NotApplicable
    R bit          : False
    Timers :
     Configured Restart Time(sec)  : 180
     Received Restart Time(sec)    : 0
  Message statistics:
    Inq depth is 0
    Outq depth is 0
                         Sent       Rcvd
    Opens:                  6          6
    Notifications:         10          0
    Updates:                0          2
    Keepalives:             5          5
    Route Refresh:          0          0
    Capability:             0          0
    Total:                 21         13
  Minimum time between advertisement runs is 0 seconds
  Update source is 20.1.1.1

 For address family: IPv4 Unicast
  Update group 10, subgroup 9
  Packet Queue length 0
  Community attribute sent to this neighbor(all)
  1 accepted prefixes

  Connections established 1; dropped 0
  Last reset 00:05:13, due to NOTIFICATION sent (OPEN Message Error/Bad Peer AS)
Local host: 20.1.1.1, Local port: 179
Foreign host: 20.1.1.100, Foreign port: 15807
Nexthop: 20.1.1.1
Nexthop global: ::
Nexthop local: ::
BGP connection: shared network
BGP Connect Retry Timer in Seconds: 10
Read thread: on  Write thread: on
            

 

BGPテーブルの状態はget bgpコマンドで確認可能です。

NSX Edge1

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

 

NSX Edge1はR2からBGP経由で20.2.2.0/24を学習していることが確認できます。
しかし、BGPテーブルにはTier-1 GW側の10.1.1.0/24が存在しないことが確認できます。(想定通りです)

 

BGPテーブルに存在するルート情報の詳細は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
  Peer is 20.1.1.100 with router id 2.2.2.2
  Last Updated: Thu Aug 20 11:35:20 2020
            

 

ルーティングテーブルはget routeコマンドで確認可能です。Tier-0 GWのSRのルーティングテーブルにBGP経由で学習した20.2.2.0/24が存在していることが確認できます。

NSX Edge1

edge1(tier0_sr)> get route

Flags: t0c - Tier0-Connected, t0s - Tier0-Static, b - BGP,
t0n - Tier0-NAT, t1s - Tier1-Static, t1c - Tier1-Connected,
t1n: Tier1-NAT, t1l: Tier1-LB VIP, t1ls: Tier1-LB SNAT,
t1d: Tier1-DNS FORWARDER, t1ipsec: Tier1-IPSec, isr: Inter-SR,
> - selected route, * - FIB route

Total number of routes: 7

t1c> * 10.1.1.0/24 [3/0] via 100.64.128.1, linked-333, 2d20h51m
t0c> * 20.1.1.0/24 is directly connected, uplink-325, 5d21h45m
b  > * 20.2.2.0/24 [20/0] via 20.1.1.100, uplink-325, 00:04:18
t0c> * 100.64.128.0/31 is directly connected, linked-333, 5d21h45m
t0c> * 169.254.0.0/24 is directly connected, downlink-327, 5d21h45m
t0c> * fcc3:7c30:4fbf:b800::/64 is directly connected, linked-333, 5d21h45m
t0c> * fe80::/64 is directly connected, linked-333, 5d21h45m
            

 

BGPネイバーに対して広報しているルート情報はget bgp neighbor <address> advertised-routeコマンドで確認可能です。現在、R2に対して、Tier-0 GWのSRは10.1.1.0/24を広報していないことが確認できます。

NSX Edge1

edge1(tier0_sr)> get bgp neighbor 20.1.1.100 advertised-routes
            

 

NSX Manager(Tier-0 GWのDR)の状態確認

Tier-0 GWのDRのルーティングテーブルを見ると、Tier-0 GWのSRがBGP経由で学習した20.2.2.0/24は存在しないことが確認出来ます。これより、Tier-0 GWのSRからTier-0 GWのDRに対して、Static RouteやConnected Routeのルート情報は広報されますが、BGP経由で学習したルート情報は広報されないことが確認できます。

しかし、Tier-0 GWのDRのルーティングテーブルにはTier-0 GWのSRをネクストホップとしたデフォルトルートが存在するため、Tier-0 GWのDRは物理ネットワーク側へのパケットをTier-0 GWのSRに転送可能です。

NSX Manager1

nsx-manager1> get logical-router 031757a6-06d8-44bb-9e06-1ba1ac0e78c1 route
Router/Cluster-UUID                   Destination               Next-Hop                 LR-Port-Id                            Blackhole  Blackhole-Action  Route-Type     Admin-Distance  Admin-State-Up  Route-UUID

031757a6-06d8-44bb-9e06-1ba1ac0e78c1  100.64.128.0/31           N/A                      5117fa5c-029d-49e4-958f-344b56b0d4ed  false      N/A               CONNECTED      0               true            0af964e3-1873-4cf2-8b06-a38214d031cd
031757a6-06d8-44bb-9e06-1ba1ac0e78c1  ::/0                      fe80::50:56ff:fe56:5300  efa2a0a3-5dc9-4a43-9c02-9ba5e760fbfa  false      N/A               NSX_CONNECTED  250             true            3e8393c3-2b67-416e-b469-930d6b0f1c51
031757a6-06d8-44bb-9e06-1ba1ac0e78c1  fe80::/64                 N/A                      5117fa5c-029d-49e4-958f-344b56b0d4ed  false      N/A               CONNECTED      0               true            bf36db6d-05d3-4e83-90ab-0208f1077629
                                                                N/A                      efa2a0a3-5dc9-4a43-9c02-9ba5e760fbfa  false      N/A               CONNECTED      0               true
031757a6-06d8-44bb-9e06-1ba1ac0e78c1  20.1.1.0/24               169.254.0.2              efa2a0a3-5dc9-4a43-9c02-9ba5e760fbfa  false      N/A               NSX_CONNECTED  0               true            646125d9-ab2e-422e-a6b2-9546a1f7478d
031757a6-06d8-44bb-9e06-1ba1ac0e78c1  20.1.1.1/32               169.254.0.2              efa2a0a3-5dc9-4a43-9c02-9ba5e760fbfa  false      N/A               NSX_CONNECTED  0               true            6e6dfa96-0040-44fe-8730-17c71cb74f63
031757a6-06d8-44bb-9e06-1ba1ac0e78c1  fcc3:7c30:4fbf:b800::/64  N/A                      5117fa5c-029d-49e4-958f-344b56b0d4ed  false      N/A               CONNECTED      0               true            4f4baa36-4df1-4c8a-a3e8-20cece774d20
031757a6-06d8-44bb-9e06-1ba1ac0e78c1  169.254.0.0/24            N/A                      efa2a0a3-5dc9-4a43-9c02-9ba5e760fbfa  false      N/A               CONNECTED      0               true            f7abf229-707e-4abe-97a6-217d28ff28b1
031757a6-06d8-44bb-9e06-1ba1ac0e78c1  169.254.0.0/25            N/A                      efa2a0a3-5dc9-4a43-9c02-9ba5e760fbfa  false      N/A               CONNECTED      0               true            df580895-7d5f-4976-b014-565d2884e283
031757a6-06d8-44bb-9e06-1ba1ac0e78c1  0.0.0.0/0                 169.254.0.2              efa2a0a3-5dc9-4a43-9c02-9ba5e760fbfa  false      N/A               NSX_CONNECTED  250             true            a63b25b0-0f84-4393-9b3f-8d5154b7dbcf
031757a6-06d8-44bb-9e06-1ba1ac0e78c1  10.1.1.0/24               100.64.128.1             5117fa5c-029d-49e4-958f-344b56b0d4ed  false      N/A               T1_DOWNLINK    3               true            dcaf5669-0e99-46eb-bd5b-4be88b8ce716
            

 

R2の状態確認

R2のBGPテーブルを見ると、R2はTier-0 GWのSRから10.1.1.0/24を学習していないことが確認できます。

R2

R2#show ip bgp
BGP table version is 2, local router ID is 2.2.2.2
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,
              t secondary path, L long-lived-stale,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

      Network          Next Hop            Metric LocPrf Weight Path
 *>   20.2.2.0/24      0.0.0.0                  0         32768 i
            

 

BGPへのルート情報の再配送の設定

Tier-0 GWのSRにおいて、BGP経由で10.1.1.0/24を広報するためには、ルーティングテーブルに存在する10.1.1.0/24をBGPプロセスに投入する必要があり、この処理をRedistributeや再配送と呼びます。(NSX-TのGUIでは再配分と表示されますが、この表現は初めて見ました。)

今回はSegmentのルート情報をBGPに再配送します。

 

BGPへのルート情報再配送後の状態確認

NSX Edge(Tier-0 GWのSR)の状態確認

Tier-0 GWのSRのBGPテーブルに10.1.1.0/24が投入されていることが確認できます。

NSX Edge1

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

 

BGPテーブルに投入された10.1.1.0/24の詳細情報は以下になります。(OriginやWeight等は別の記事で説明します。)

NSX Edge1

edge1(tier0_sr)> get bgp 10.1.1.0/24
BGP routing table entry for 10.1.1.0/24
Prefix advertised to:  20.1.1.100
1 Paths available:
  Origin incomplete, Metric 0, LocalPref 100, Weight 32768, best, valid
  Peer is 0.0.0.0 with router id 20.1.1.1
  Last Updated: Thu Aug 20 11:44:23 2020
            

 

R2に対して、Tier-0 GWのSRが10.1.1.0/24を広報していることが確認できます。

NSX Edge1

edge1(tier0_sr)> get bgp neighbor 20.1.1.100 advertised-routes
BGP IPv4 table version is 50
Local router ID is 20.1.1.1
Status flags: > - best, I - internal
Origin flags: i - IGP, e - EGP, ? - incomplete

   Network      Next Hop  Metric  LocPrf  Weight  Path
 > 10.1.1.0/24  0.0.0.0   0       100     32768   ?
            

 

 

R2の状態確認

R2のBGPテーブルを見ると、Tier-0 GWのSRからR2は10.1.1.0/24を学習していることが確認できます。

R2

R2#show ip bgp
BGP table version is 3, local router ID is 2.2.2.2
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,
              t secondary path, L long-lived-stale,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

      Network          Next Hop            Metric LocPrf Weight Path
 *>   10.1.1.0/24      20.1.1.1                 0             0 100 ?
 *>   20.2.2.0/24      0.0.0.0                  0         32768 ii
            

 

疎通確認

R1の10.1.1.1からR2の20.2.2.2へPingを実施します。

 

R1の10.1.1.1からR2の20.2.2.2へのPingが成功したため、Tier-0 GWのSRはBGP経由で学習したルート情報を基に、パケットをルーティングしていることが確認できます。

R1

R1#ping 20.2.2.2 source 10.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 20.2.2.2, timeout is 2 seconds:
Packet sent with a source address of 10.1.1.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/2 ms
            

コメント

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