先前介紹了NSX Advanced Load Balancer的功能與使用效益,並說明其安裝準備與流程,然後詳細討論真正用來提供應用遞送服務轉發層的服務引擎。這裡將接著探討實際開始部署前,所需的底層網路準備。不同的雲環境,底層需求的網路準備是不同的。
接續系列文章,前面和大家就NSX Advanced Load Balancer(後續簡稱為NSX ALB或是Avi)的核心構件,包含Controller以及Service Engine進行說明。接下來,本文將就實際安裝前的另一個重要準備:底層網路需求,來專注進行討論。
與傳統硬體應用遞送交換器,或被稱為「Application Switch」的解決方案不同,在絕大部分的狀況下,NSX Advanced Load Balancer並不會被當成一台Switch或是Router。Avi通常建議是利用Reverse-Proxy機制:當外部用戶往應用的連線要求送到Avi的服務引擎上,服務引擎會改用自己的IP地址往後端的Backend Server連線並取得回應。如果業務管理者需要看到用戶的來源地址連線,可以選擇採用X-Forwarded-For或是Proxy Protocol的方式來發送用戶IP資訊給後端伺服器。
這代表的是,Avi在大多數環境內,不需要如同傳統硬體應用遞送交換器,從底層的vlan、IP網段與Gateway、路由等等開始配置。Avi的服務引擎大部分環境是虛機,建立在現有的虛擬化環境╱公有雲上。因此,網路配置上需要關注的是:
‧Avi服務引擎虛機要如何接取到底層的虛擬網路?
‧Avi服務引擎虛機本身以及上層業務採用的虛擬IP(Virtual IP)要如何配置?對應的Gateway要如何設定?
講起來很簡單,但要考慮的沒有那麼單純。如前篇所討論的,Avi的服務引擎是可以「動態」部署的,這代表理想的狀況下,不打算一台台服務引擎手動去配置IP與Gateway。其次,Avi不僅可連動底層的虛擬化平台,同時還能夠連動SDN方案,或不同的公有雲。這代表其實在不同的「Cloud」裡,Avi的網路配置方式會有不同。
這裡沒有打算窮盡所有不同環境進行討論。但在接下來,想要與大家就幾個代表性環境內的網路配置方式進行說明,分別是純vCenter/vSphere Cloud、NSX-T Cloud、AWS Cloud這三種。
vCenter/vSphere Cloud
在vCenter/vSphere Cloud內,配置的過程中Avi會詢問三個類型不同的網路:
1. 管理網路:這是服務引擎與Avi Controller連接的介面,純為Out-of-Band當作控制使用。
2. VIP網路:配置上層Virtual Service VIP的網路,提供Virtual Service服務的Avi Service Engine會動態將一個網卡放置到這個PG內(並配置IP),Virtual Service的VIP也會建立在此網段內
3. Backend Pool網路:配置往後端Backend Server接取的網路,提供Virtual Service服務的Avi Service Engine會依據Pool內的定義,動態地將一個網卡放置到這個PG內(並配置IP),由此網段往後端Backend Server連接。
用一張關係圖來進行說明,如圖1中的vCenter/vSphere環境內,管理者預先建立好三個Port Group(用vSS/vDS建立均可):PG-Mgmt (vlan 10)、PG-VIP (vlan 101)、PG-Backend (vlan 102)。同時,透過採用DHCP,或是在Avi的配置內設定IP Pool,各網段內劃定一段IP範圍可提供服務引擎接取。
此時,當每一台Avi服務引擎動態建立時,這個服務引擎虛機的第一張網卡會接到PG-Mgmt內(於Avi vCenter/vSphere Cloud內指定)。服務引擎透過這個介面與Avi Controller進行溝通
而當一個Virtual Service被指定要放置到這台服務引擎(透過Service Engine Group)時,在Virtual Service的配置內,透過VIP所在的網段,或是管理者手動指定要接到哪個網路,服務引擎虛機用一張網卡接到對應的Port Group(圖1的PG_VIP),並取得服務引擎在此網段上的介面IP,並且配置管理者指定的VIP。
此外,在Pool配置中,透過Backend Server所在的網段,或是管理者手動指定要接到哪個網路,服務引擎虛機用一張網卡接到對應的Port Group(圖1的PG_Backend),並取得服務引擎在此網段的介面IP。
圖2是配置完的示意圖,服務引擎虛機左邊的Network 1介面單純進行管理用途,一張網卡接往前端的PG_VIP,一張網卡接往後端的PG_Backend。用戶連線由前端網路連到服務引擎上的Virtual IP,服務引擎改用後端自己本身的IP往Backend Server連接。
圖3內是一個實際環境動態部署出的服務引擎虛機配置。大家可以看到,第一張網卡是接往管理網路,而Network 10是在Virtual Service設定後,由Controller動態指定連接到Avi-Tenant-01-VIP這個Port Group,Network 5則是連往後端的Avi-Tenant-01-Load Port Group。
Avi方案在vCenter/vSphere Cloud內的網路架構大致說明至此。其實,重點不在實務上的安裝流程,因此文內就沒有太多UI配置畫面,但希望各位可以理解後續若須安裝,架構上的網路設計概念為何。另外,常被客戶問的一個問題是,上面談到的三個網路一定要分開嗎?可不可以把VIP、Backend網路放在一起,或甚至單一網路把Mgmt、VIP、Backend都通吃呢?
答案當然可以,但這樣做好不好,就是各位在架構上的取捨了。這裡的建議是如果能分開,分開當然是比較好,可以把不同性質的管理∕業務分流,也較容易做到硬體上完整的頻寬使用(不同的Port Group在vSphere上可以選擇用不同的獨立網卡)。
NSX-T Cloud配置
Avi從20.1版開始正式支援NSX-T Cloud,這代表了Avi服務引擎可以連接到NSX-T的Overlay交換器。並且,Avi Controller能夠直接連動NSX-T Manager,取得NSX-T網路的相關資訊,並且配置需要的路由、安全群組等構件。
後續Avi會逐步取代NSX-T原生的Load Balancer功能,變成NSX-T環境內的主要應用遞送服務方案。當然各位如果生產環境內有使用NSX-T原生Load Balancer的話,也無須擔憂,VMware會持續提供需求的維護。但若以進階、完整的應用遞送功能,後續就會是做在Avi方案內了。
在前面談到,於vCenter/vSphere Cloud內,需要配置三種網路:管理、對前端VIP的網路、對後端Backend Server的網路。而目前在NSX-T Cloud內,網路架構如圖4所示,分別簡單說明:
‧在NSX-T Cloud架構內,配置時只有兩種網路:管理網路,以及業務網路。圖4左方是管理網路的示意圖,管理者應該預先配置好一個Tier-1 Gateway以及指定的Management Segment。當服務引擎虛機被動態建立時,會有一個vnic連接到Management Segment上,並取得管理使用的IP。
‧NSX-T Cloud內業務網路僅能是One-Arm架構,也就是說,用戶端連往VIP的網路流,以及服務引擎往後端Backend Server的連線,必須使用同一個介面。管理者應該預先配置好一個Tier-1 Gateway以及指定的Data Segment。當Virtual Service被指定到服務引擎上時,服務引擎會有一個vnic連接到Data Segment上,並取得業務網路流傳送的IP。
‧這個Data Segment可以是一個獨立的空網段,專門用來接取服務引擎,也可以與Backend Server在同一個網段,如圖4右方所示。
‧與vCenter/vSphere Cloud相同,管理者應該透過配置DHCP或是在Avi環境內指定IP Pool,提供服務引擎接取到Management/Data Segment上的IP配置。
NSX-T Cloud裡面一個特殊的網路設計,這邊也和大家討論。當配置出一個Virtual Service以及裡面的VIP時,Virtual Service內指定的Tier-1 Gateway會透過Route-Advertisement往Tier-0 Gateway宣告自己擁有這個/32的VIP,並透過Tier-0與外部實體網路的路由發布至企業網路。
此外,這個Tier-1 Gateway上會同時配置靜態路由,將往VIP的封包轉送到服務引擎上。透過這個架構,當以Active/Active架構要服務一個Virtual Service時,所有往VIP的連線會先送到指定的Tier-1 Gateway,然後透過Static Route ECMP機制,底層就可以有多台服務引擎來提供應用遞送服務,如圖5左方。
抓幾個實際的NSX-T Cloud的網路配置畫面。首先,在設定Cloud的配置時,由圖6內大家可看出:
‧Management Network Segment內就是指定服務引擎的管理介面所要接取的Tier-1 Gateway與Segment。 ‧Tier-1 Segment內就是指定業務網路使用的Tier-1 Gateway與Segment。
在Avi的配置中,設定了這兩個網路所配置的IP Pool,以及對應的Gateway,如圖7~8所示。
然後,圖9則是實際在NSX-T Cloud內產出的服務引擎虛機之網路配置。大家可以看到,兩張網卡分別接往Management網路(AVI-SE-Segment)以及業務網路(AVI-SDDC-VIP-Segment)。前面的是Out-of-Band的管理網路,後端的業務網路則負責實際的應用遞送網路流。
以上是Avi在NSX-T Overlay環境內的網路配置架構。這邊隨著NSX Advanced Load Balancer以及NSX Data Center本身新版本的釋出,還會有其他的變化與更多的功能。若各位考慮或已經建置具備NSX Data Center的VMware SDDC環境,可以多關注相關新版本內整合的方式。
AWS Cloud配置
在前面兩段的討論中,vCenter/vSphere Cloud內,服務引擎會配置三種網路:管理、對前端VIP的網路、對後端Backend Server的網路;而在NSX-T Cloud內則僅支援One-Arm架構,因此需要兩種網路:管理網路、業務網路(包含對前端VIP及後端Backend Server的連接)。而在AWS Cloud裡面呢?
超單純的,就只需要配置一個網路,同時給管理/VIP/Backend使用。圖10是AWS Cloud的配置,在設定了AWS Region、Access、Secret-Access Key等配置後,網路這裡需要選擇的配置包括:
‧這個Region內的哪個VPC
‧在這個VPC內哪個AZ內的指定Subnet
然後呢?然後就沒什麼要配的了。只要被選定的Subnet(上面的AVI-network-172.30.101.0/24)裡面有DHCP配置,Avi部署的服務引擎Instance產出時,就會自動配置兩個網路介面接到上述的Subnet,一個負責管理,另一個負責業務網路流的連接。圖11所示則是在AWS EC2管理介面中看到Avi服務引擎的Instance。
可以看到這個Avi-se-nktcx的Instance有兩張網卡eth0/eth1。當然,在AWS介面中可以點進去查看網卡配置的IP等細節,不過,在Avi介面中,也可以藉由點擊服務引擎的介面,看到IP的配置,如圖12所示。
從中可以看到兩個介面的IP都配在同一個Subnet 172.30.101.0/24內,也就是在AWS Cloud裡面選擇的VPC Subnet。
本篇文章內討論了Avi配置時,在三種不同Cloud裡面的網路架構。為什麼要花費這麼多篇幅進行底層網路討論呢?
首先,在不同的Cloud內,網路架構可能相差極大,配置流程也截然不同。因此管理者務必在進行配置前,熟悉對應環境內的網路配置模式。
其次,對應到不同的Cloud,底層實體網路的預先準備也不同。在前面的討論內,提到了:
‧在vCenter/vSphere Cloud中,最佳的架構是底層網路應該區分三個不同的管理、前端(VIP)、後端(Backend)網段。實體網路應該配置這些網段的vlan與gateway,而vCenter/vSphere內應該將對應這些網段的Port Group與對應的vlan設定完成。同時,Avi管理者應該與網路管理者在各個網段內劃定一段範圍IP,以底層DHCP或是Avi IP Pool的方式提供服務引擎接取。
‧NSX-T Cloud內,Avi管理者應與NSX-T管理者預先將環境內對應管理網路以及業務網路的T1-Gateway/Segment配置完成,並且在NSX-T與實體網路介接的路由上,允許業務網路T1-Gateway上的VIP /32 host-route的發布。同時上述的網段內,需要指定IP範圍以DHCP或Avi IP Pool的方式提供服務引擎接取。
‧AWS Cloud內,應預先在指定VPC內,選定一個Subnet供Avi服務引擎部署,並且啟用DHCP提供IP配置。
若上述的準備充足,在Avi的配置過程中,網路的設定是很單純快速的。一般也就是最多三個步驟:
1. 在Infrastructure - Cloud的設定內,配置管理網路。
2. 在Infrastructure - Network的設定,指定選定網路的IP Pool。
3. 在Infrastructure - Gateway的配置內,指定選定網路的Gateway。
<本文作者:饒康立,VMware資深技術顧問,主要負責VMware NSX產品線,持有VCIX-NV、VCAP-DTD、CCIE、CISSP等證照,目前致力於網路虛擬化、軟體定義網路暨分散式安全防護技術方案的介紹與推廣。>