雖然從上個世紀末IPv6就成為下一世代IP定址的標準,到現在已經二十多年,但不可諱言,到目前絕大部分企業環境在資料中心內仍然採用IPv4的定址方式運作。不過,也確實看到部分、特別是政府和電信商的標案,IPv6已經不僅僅只是在標書上要求產品規格支援,在生產環境內也會進行部署且必須真的動起來。
但IPv6的相關配置方式目前仍是VMware客戶與工程師們較不熟悉的,因此接下來幾篇文章想特別針對在IPv6環境內,NSX相關方案的支援能力、限制、基礎配置方式等相關議題進行說明。這系列文章中將假設大家都對IPv6的定址方式已經具備相關概念,如果需要學習或再度複習,只要在網路上打「IPv6教學」,就可以取得非常多免費學習資源。這邊將分幾篇陸續討論下面的課題:
1. VMware NSX/NSX Advanced Load Balancer(NSX ALB)現行版本內,IPv6的支援能力列表。
2. 以實際展示環境,說明VMware NSX內如何建立IPv6配置,包含啟動、路由、IP配送、微分段機制等等相關的流程。
3. 討論IPv6環境內的NSX安全及維運功能。
4. 在同樣展示環境內,說明NSX ALB內如何建立基於IPv6的Virtual Service/Pool,以及NSX ALB的IPv6支援能力限制。
NSX/NSX ALB對於IPv6的支援
首先,就VMware NSX/NSX ALB現行版本對於IPv6支援功能進行說明。圖1並非最新版本,但對應VMware NSX及NSX ALB版內的IPv6支援功能列表。
細項不一一討論,但針對圖1先給大家一個在目前版本主要的功能支援與限制說明:
目前無論是VMware NSX或是NSX Advanced Load Balancer,管理構件部分都僅能使用IPv4定址。也就是說,在NSX內,Managers、Edge的管理介面、vCenter/vSphere的管理介面、Overlay網路的TEP介面,甚至如DHCP Server的管理IP配置等,都只能使用IPv4地址。同樣地,NSX ALB的控制器(Controller)以及服務引擎(Service Engine)的管理介面也僅能是IPv4。因此,目前VMware NSX/NSX ALB還不能運作在一個百分之百純IPv6的環境,至少管理網段必須是支援IPv4的。但這個限制目前在與大部分客戶的討論上問題都不大,多數專案都僅需要業務網路可以運作IPv6就沒有問題。
VMware NSX內,NAT功能目前只支援NAT64(將目標為IPv6的地址轉為內部IPv4的地址),NAT46與NAT66目前並沒有支援。另外,兩個曾被客戶詢問到但目前還未具備IPv6支援的包含了VPN功能(IPSEC/L2VPN),以及與第三方廠商整合的Service Insertion/Guest Introspection。其他絕大部分的網路需求功能,均已支援IPv6。
NSX ALB內,無論業務前端是IPv4/v6定址,後端伺服器是IPv4/v6定址均可支援。目前在負載平衡功能上最主要未支援IPv6的是DSR(Direct Server Return)機制,其他功能幾乎都能夠支援。
在圖1內沒有但特別列出,在VMware NSX內的維運相關機制,包含Traceflow、Port Mirror、Intelligence等均支援IPv6。
通常談到這裡主要是看各個產品能不能回應客戶標書內的IPv6要求,但後續想和大家做更基礎的討論是「VMware NSX/NSX ALB如何配置出IPv6環境」。想以一個真實建立的Lab環境,來討論在VMware NSX/NSX ALB環境中如何部署IPv6,相關步驟以及各步驟內的配置需求說明。
圖2是在Lab內以VMware NSX與NSX ALB搭建的IPv6測試環境示意圖。在此環境內,這裡建立了:
‧標準的NSX Overlay網路環境,包含T0/T1 Gateway,並與實體網路可相互連通。
‧在NSX環境內建立三個IPv6 Segments,分別是2001:db8:cafe:100::/64(Seg-mgmt)、2001:db8:cafe:101::/64(Seg-101)、2001:db8:cafe:102::/64(Seg-102)。T0 Gateway與實體交換器間採用IPv6 uplink,分別是2001:db8:cafe:53::/64以及2001:db8:cafe:54::/64。此外,為了展示與實體網路間的連通,也另外在實體交換器上建立一個2001:db8:cafe:26::/64的網段。
‧上述環境內,Seg-101內的IP配置機制、Gateway及DNS發布機制採用DHCPv6,Seg-102內採用SLAAC(Stateless Address Auto-Configuration)。
‧各個IPv6網段間可透過路由互通。Segments間路由資訊透過NSX內部機制發布,而NSX與實體網路間透過EBGP動態路由機制進行路由交換。
‧環境內部署了不同的作業系統虛機,Windows採用Server 2019,Linux則採用Ubuntu 20.04版本。
‧以NSX Advanced Load Balancer於Seg-101內部署了一個Virtual Service,後端Server為部署於不同IPv6網段內,提供Nginx服務的虛機(nginx-01~03)。
相關網段配置規劃完成後,就可以照圖3所示的流程逐步建立環境。
步驟零:建立VMware NSX/NSX Advanced Load Balancer基礎環境
在前篇文章特別說明過,目前VMware NSX/NSX ALB雖然均支援IPv6大部分功能,但管理構件本身仍然僅能部署在IPv4環境內。但也因此,當要建立基礎環境時,相關控制層構件與底層架構部署方式均與標準環境相同。在此展示環境內,這些步驟包含:
‧建立標準的vCenter/vSphere資源池,配置底層網路、共用儲存以及vCenter內資源叢集相關基本配置。
‧建立NSX Manager管理叢集,連接vCenter,進行Transport Node/TEP部署、Edge Node部署及Edge Cluster建立、建立Tier-0 Gateway/Tier-1 Gateway。
‧NSX Advanced Load Balancer控制器(Controller)叢集配置,建立Cloud配置(在此展示內,採用NSX-T Cloud方式)。
若尚未了解VMware NSX/NSX Advanced Load Balancer的相關建置步驟,這邊簡單整理於圖4,也可參考VMware官方安裝文件,就不多贅述了。
步驟一:於VMware NSX內啟用IPv6
NSX安裝完成後,預設值是僅支援IPv4,需要指定將IPv6啟用。這邊的配置需要先切換至Networking→Global Networking Config→L3 Forwarding Mode內,然後將原本的IPv4 Only改為IPv4 and IPv6,如圖5所示。
這裡特別說明一個技術細節,當上述配置改變後,在現有的T0/T1和內部SR(Service Router)/DR(Distributed Router)間的內部連接網段也會進行IPv6配置:
‧在Tier-0/Tier-1 Gateway間的Router Link,會從fc00::/8(ULA, Unique Local Address)範圍內,任意抓取一段/64的網段配置(在IPv4中,於100.64.0.0/16內抓取一段/31網路)。
‧在Tier-0/Tier-1 Gateway內部SR/DR間的Intra-Tier Transit Link,會使用fe80::/64 Link-Local Unicast網段(在IPv4中,使用169.254.0.0/24網路)。
圖6是Lab內的實際抓圖。啟動IPv6後隨便找一台Tier-1 Gateway,可以看到使用了兩組內部網路:
1. fc68:a5a2:89ea:3800::2/64是這台Tier-1 Gateway往上面Tier-0 Gateway間連接的Router Link。
2. fe80::050:56ff:fe56:4455/64是這個Tier-1 Gateway內部SR/DR間的Intra-Tier Transit Link。
步驟二:建立Tier-0 Gateway上的IPv6 uplink網路以及EBGP相關配置
這裡的配置其實很直接,若已經熟悉IPv4內的uplink/BGP配置方式,其實也就是把原本的IPv4地址換成IPv6而已。在圖7中,特別把Tier-0 Gateway與實體交換器間的uplink/BGP配置拉出來畫成圖,可以看到:
‧有兩個Uplink,分別對應vlan 53/54,IPv6網段使用2001:db8:cafe:53::/64和2001:db8:cafe:54::/64兩組。
‧建立EBGP Neighbor關係,為了簡化僅配兩組Neighbor,在53網段內建立一組,54網段內建立另一組。
‧在路由關聯中,Tier-0 Gateway會透過Route Redistribution機制將內部直連(Connected)以及靜態路由(Static, ALB NSX-T Cloud配置需要用到)透過EBGP送往實體設備,實體設備則送default route給Tier-0 Gateway。
抓一些實際畫面,例如圖8是在T0-Gateway上的Uplink IP地址配置。
然後,圖9是同樣在T0-Gateway上的BGP以及BGP Neighbor配置。
實體設備上,當然需要依據實際環境內不同廠牌型號,進行對應的配置。在展示環境中採用的是Arista交換器,在IPv6定址這裡的配置如下:(因為環境內採用IPv4/IPv6 dual stack,因此v4/v6的配置都有)
ipv6 unicast-routing interface Vlan26 ip address 172.16.26.254/24 ipv6 address 2001:db8:cafe:26: :254/64 ! interface Vlan53 ip address 172.31.53.254/24 ipv6 address 2001:db8:cafe:53: :254/64 ! interface Vlan54 ip address 172.31.54.254/24 ipv6 address 2001:db8:cafe:54: :254/64
而BGP這邊的配置,則是下面這樣:
router bgp 65001 neighbor 172.31.53.1 remote-as 65002 neighbor 172.31.53.1 default-originate neighbor 172.31.54.1 remote-as 65002 neighbor 172.31.54.1 default-originate neighbor 2001:db8:cafe:53::1 remote- as 65002 neighbor 2001:db8:cafe:53::1 default- originate neighbor 2001:db8:cafe:54::1 remote-as 65002 neighbor 2001:db8:cafe:54::1 default- originate ! address-family ipv6 neighbor 2001:db8:cafe:53::1 activate neighbor 2001:db8:cafe:54::1 activate
若順利建置完畢,一切沒問題,應該可以看到BGP Neighbor這邊進入Established狀態。在Arista交換器上,執行「show ipv6 bgp neighbors」指令可以發現,如圖10所示。
另一段BGP連線關係,則到NSX介面上去看,如圖11所示。
而圖12所示,是在後續步驟中將各個IPv6 Segments都建置完成後,在Arista上使用「show ipv6 route」的結果。可以看到內部Seg-mgmt、Seg-101、Seg-102三個網段均有路由送出,且透過ECMP方式(Tier-0 Gateway採用Active-Active方式運作)可由不同Edge兩個路徑進行封包轉發。
結語
由於本文圖多篇幅較長,就先說到這裡。本次文章簡述了VMware NSX/NSX Advanced Load Balancer對應IPv6的支援能力,並就建置一標準NSX IPv6環境的前兩個流程進行了相關說明,下篇文章將會繼續說明第三步驟,亦即在Gateway上建立需求之IPv6 Profile配置繼續討論。
<本文作者:饒康立,VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化、軟體定義網路、微分段安全防護技術,以及新應用遞送方案的介紹與推廣。>