虛擬雲網路

網路虛擬化NSX 技術文章系列三百三十二: 那些年,我們討論過的微分段問題(八)

作者: Colin Jao 饒康立 – VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化、分散式安全防護技術與新應用遞送方案的介紹與推廣。

繼續就微分段防火牆相關配置與管理維運進階問題與大家進行分享。本篇內會討論兩個議題:規則內的Apply-To功能,以及微分段功能的多租戶管控

可否說明在防火牆規則內的Apply-To欄位功能為何?

Apply-To是NSX分散式防火牆的特殊機制,在實體防火牆內沒有,因此這邊多花一點篇幅討論。在沒有任何特殊的預設配置下,在NSX Firewall Policy或是Rule內的Apply-To配置都是寫DFW。這代表的是這裡配置的規則要『送給受NSX DFW納管的每一台虛機』(實際上是虛擬網卡)。

簡而言之,如果我們配置了一條新規則,Apply-To的設置是DFW,而這組NSX環境內有500台虛機在30台vSphere Hosts上,這500台虛機(的500張虛擬網卡)都會收到這一條規則。

但實際上這條規則就只和特定業務,比如說停車場管理系統,相關啊?為什麼我們要讓重要的網銀虛機前的防火牆也接收到這條無關的規則,讓網銀用戶連線時還得比對無關的規則,造成連線效能降低呢?此時就是Apply-To需要使用的時機了。我們可以透過Apply-To選擇這條規則僅僅配置給與停車場管理系統相關的虛機,其他應用不要,藉此優化各虛機需要比對的規則數目以增進連線效率。

NSX分散式防火牆內有兩個地方可以配置Apply-To:

  • 針對整組NSX Firewall Policy內的所有規則。下圖內,我們是針對CRM-Application這組Firewall Policy定義了要Apply-To到CRM-Application這個群組。這個群組內的所有虛機,都會收到CRM-Application Policy內定義的所有規則:
  • 針對單一條規則設定Apply-To。下圖內,我們對名稱為Web-to-Web這條規則定義了要Apply-To到CRM-Web這個群組。這個群組內的所有虛機,都會收到名稱是Web-to-Web的這條規則

兩個很重要的概念需要討論:

  • 與一般直觀的概念不同,如果我們在一個NSX Firewall Policy有設定Apply-To,而這個Policy內的特定Rule又設定了另一個Apply-To,此時,以『NSX Firewall Policy』內的為優先(而不是Rule優先)。比如說上面兩張圖,Firewall Policy內的Apply-To要求送給CRM-Applications內的所有虛機,但這個Policy內特定的Web-to-Web規則要求僅送給CRM-Web內的虛機。此時,以Firewall Policy的配置優先,所有CRM-Application內的虛機都會收到Web-to-Web規則
  • 其次,Apply-To內僅能採用『虛機』型態的群組定義,不可以定義一個基於IP地址或是特定網段的群組

為了業務運作的效率,我們當然很建議採用Apply-To在防火牆規則的設計。比如說我們將網銀系統、CRM系統、內部差勤管理系統、停車場管理系統等不同業務都可以配置在防火牆的不同Firewall Policies內,然後對應到各自業務的防火牆規則都僅需要發送到與這個業務相關的虛機上。此時,網路流進出虛機時就不用和幾百條無關的規則進行比對,可以大幅提升連線的效能。

可否有多租戶或是RBAC (Role-Based Access Control) 機制,讓不同管理者僅進行特定應用的防火牆規則管理?

抱歉,現在的時間點 (NSX 4.1.0.2) 版本還不行:

  • NSX已經有多租戶 (Multi-Tenant) 機制,但此機制僅運作在Overlay網路內。如果企業僅是要配置VLAN實體網路上的虛機保護,產品還不能讓不同的租戶管理者,各自僅管理自己的分散式防火牆配置
  • NSX也有RBAC機制,但並未細緻到可以給不同管理者不同的防火牆Policy階層權限,現在僅能到特定用戶能否看到/配置整個Distributed Firewall階層的權限而已

因此如果企業的要求是不同應用需要有不同管理者,每個管理者可以各自配置應用本身的防火牆,且不同管理者不會看到其他人的配置,現在的實務做法大抵都需要在上層的雲平台 (Aria Automation / vCloud Director) 這層進行區分或配置,或我們也有經銷夥伴協助客戶建立客製化前端介面,針對各個獨立的應用 / 虛機依據不同管理者權限,各自配置防火牆。

接上題,那是否有機制能識別不同業務系統、不同租戶所產生的防火牆Log

這倒是可以的,在每條防火牆規則最後的Settings圖示點開,我們就可以設定這條規則如果比對符合 (Hit) 時,要不要啟用日誌記錄。同時在UI介面內還有一個欄位叫”Log Label”。管理者只要在這邊對應不同業務系統或不同租戶、部門等設置特定的Log Label,這邊的字串就會帶入到對應的Syslog內作為標示:

此時在後端日誌系統內,就可以用這裡的關鍵字來做日誌搜尋。比如說下圖就是我在Log Insight內用”Colin-Test-Label”做五分鐘內的日誌檢索結果。

透過採用不同的Log Label,我們即能協助管理者區分出不同應用、租戶、部門所制訂出的防火牆規則。

下篇我們繼續就防火牆規則發布、回復、儲存草稿、匯出、備份等議題繼續討論。