作者: Colin Jao 饒康立 – VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化、分散式安全防護技術與SD-WAN方案的介紹與推廣。
NSX-T與NSX for vSphere兩個版本間最大的差異,就是NSX for vSphere僅支援vSphere環境與虛機,但NSX-T可以支援不同Hypervisor、虛機及容器、私有雲與公有雲。架構上當然是NSX-T更為開放與兼容,可是僅在vSphere上運作也有好處:可以和vCenter / vSphere整合的更為緊密。
請大家回憶一下NSX for vSphere的操作:當我們要配置分散式防火牆規則的來源或目的端時,除了採用IP地址或是IPSet(IP集合)外,還有哪些其他的方式?
- 直接選虛機或是某個vNic網卡
- 選擇一整個vCenter DataCenter / Cluster / Resource Pool / vApp
- 選擇指定的Distributed Switch Port Group或是Logical Switch
- 選擇一個安全群組 (Security Group)
而當我們要配置一個Security Group時,也有很多方法把指定的應用或部門機器自動納進來,包含了
- 虛擬機器的VM Name或是Hostname
- 虛擬機器的作業系統
- 虛擬機器上被標注的Security Tag
- 用大的安全群組去包含多個小的安全群組
上面的配置方式非常動態且彈性,可以說是廣為我們NSX用戶喜愛的配置機制。但是在NSX-T內,因為要支援其他虛擬化平台如KVM,因為要支援容器,因為要支援公有雲,此時NSX-T在架構上兼容的好處反而會變成管理上可能會有些限制。比如說,在其他的非vSphere平台上,虛機抓得到作業系統嗎?其他的非vSphere平台上,有Cluster / Resource Pool / vApp這類的配置嗎?
因此,在NSX-T Data Center內,我們僅會支援下面這幾種機制作為防火牆的來源與目的地配置:
- IP地址或是IPSet集合
- 指定的NSX-T邏輯交換器
- 指定的Logical Port (對應到虛機的vNic,或是一個K8S Pod)
- 指定的群組 (NSGroup)
而在NSX-T內,我們不再是叫做安全群組,而是改名為NSGroup。這個NSGroup的全名是什麼…PM也沒有和我們講,應該是NSX-T Security Group的意思吧(自己解釋)。重點是現在如果建立一個NSGroup,裡面的群組成員有包括了
- 靜態的指定:包含IPSet / Logical Port / Logical Switch / MACSet,或是去包含其他的小NSGroup
- 動態的指定:可以指定虛機或是Logical Port。如果是虛機,可以用虛機的名稱或是虛機的標籤 (Tag),而如果是Logical Port,僅能使用標籤。
這邊NSX-T的Tag對應到的就是之前NSX for vSphere的安全標籤 (Security Tag),不是vCenter內對到一個VM的Tag喔。
下圖內,我們可以看到在NSX-T內,對應到一個虛機,管理者所打的標籤:

這裡的標籤可以是管理者在UI介面上面配置,或自動化系統利用NSX-T API來配置。有一個重點:大家有沒有注意到,現在的Tags變成是二次項,我們可以先定義一個特定意義的Scope,代表一個屬性像是擁有者、租戶、應用系統、機敏等級等等,然後在對應這個Scope後面的Tag再打上對應的值。上圖內,
- 定義了一個租戶的Scope (Tenant),然後租戶名稱是Customer-01
- 定義了一個業務系統的Scope (Application),然後這個虛機的業務系統是CRM
- 定義了一個特定的應用構件層Scope (Tier),這個虛機是隸屬於Web層
這樣兩層式的架構,標籤定義上是不是比NSX for vSphere的單層標籤清楚的多呢?以前如果我們打個tag叫colin,大家看到了可能搞不清楚這是owner / project name / tenant name還是到底什麼東西,但現在這種兩層架構就能夠把各個標籤定義的非常清楚。
下面舉三個NSGroup的動態配置的例子:

上圖內,任何一個虛機,如果同時符合有三個標籤,其Tenant是Customer-01、Application是CRM、Tier是Web的話,就要加入C01-CRM-Web群組

上圖內,如果有任何一個Logical Port (Kubernetes Pod) 或是虛機,有被打上Tenant是Customer-02,以及Application是planespotter的話,就要加入C02-Planespotter群組

上圖內,如果有任何一個虛機,名稱有包含mysql,Tenant是Customer-02,以及Application是planespotter的話,就要加入C02-Planespotter-MySQL群組

Comments
0 Comments have been added so far