作者: Colin Jao 饒康立 – VMware資深技術顧問,主要負責VMware NSX產品線,目前致力於網路虛擬化暨分散式安全防護技術方案的介紹與推廣。
在前面的網誌內我們不斷地強調NSX的Distributed Firewall具備完整的Layer 4防火牆功能。一個完整的Layer 4防火牆並非僅是ACL (Access Control List),並非僅檢查每一個通過封包的來源目的位置、協定以及服務埠。防火牆必須有session或是說flow的概念,也就是說
- 當第一個封包通過了規則檢查,會將此連線放置於連線表 (session table, or connection tracking table) 內,並且開啟同一連線內的回應的封包。
- 同一個連線內後續的傳輸與接收封包會先與連線表比對,若已與連線表內的session記錄符合即可放行,無需再從頭與所有的防火牆規則進行比對。
雖然防火牆功能是分散到各台vSphere Host內的Firewall Kernel Module執行,連線表仍然與防火牆規則一樣,對應到各個VM的各個vNIC都具備自己的連線表。而既然NSX的防火牆有所有虛擬機器封包進出的連線紀錄,這時候就可以有一個十分有趣的應用,就是NSX內的Flow Monitoring功能。
傳統我們在網路環境有Flow Monitoring的需求時做法很簡單:使用Net-Flow。我們會在較高階的網路設備上開啟Net-Flow功能,再把對應的VLAN或是網路埠的Flow統計資料送到網路管理軟體去,然後在這些軟體軟體上我們就可以看一些Flow的統計資料,比如說哪個IP的資料傳輸量最大,哪種協定的傳輸量最高,這樣的。這種傳統的做法VMware於虛擬環境內當然也支援。原本在vSphere Distributed Switch內我們就可以將指定的Port Group內的flow統計值丟出去,而且支援到IPFIX (Netflow v10)。但有了Flow Monitoring功能後,管理者可以由NSX本身就進行flow記錄與統計的功能,同時也可以把這些記錄送給外部的網路管理軟體進行進一步處理。
預設環境內,Flow Monitoring的功能是關閉的。因此要採用此功能時,需要到Flow Monitoring的頁面 -> Configuration內,進行Flow Monitoring功能啟用。當此功能啟用後管理者就可以在Flow Monitoring頁面內查看Live Flow,與選定時間內的Flow統計值。另外如果相關資料希望要送出到外部網路管理軟體,於此功能頁面內也可以到IPFIX頁面內,設定Netflow的Collector與相關資訊。
圖說:於Flow Monitoring頁面內啟用功能
我們可以實地看到選定虛擬機器之選定vNIC的Live Flow。切換到Live Flow頁面後,首先是我們需要指定一個vNIC。點選Browse後,可以用Filter去選擇一台虛擬機,並且指定對應的虛擬網卡。按OK後選定的網卡會顯示於vNIC後面,然後按start後即可開始針對這個虛擬網卡的進出live flow進行檢視。
圖說:進行Live Flow檢視,選擇要檢視的虛擬介面
圖說:按start後,即時進行網路流之檢視
於即時檢視頁面內,可以看到此網卡之session table內目前所記錄的flow資訊,新建立的flow會以綠色進行表示。所有的TCP / UDP Flow會顯示出並被記錄,而最前面的RuleID則是這個flow是對應到哪一條分散式防火牆規則。利用Live Flow的工具,管理者可以進行即時的troubleshooting來確認對應虛擬機器的網路流狀態。
同時,管理者也可以透過Flow Monitoring的Dashboard與Details by Service頁面來查看整個虛擬網路環境內的網路流統計資訊。於Dashboard頁面內,管理者可以在右上方選定網路流統計的時間,接著就可以看到流量最大的Flows種類 (Top Flows)、目的虛擬機 (Top Destinations)、或是來源虛擬機 (Top Sources)等。
圖說:Top Flows統計
圖說:Top Destinations統計
圖說:Top Sources統計
在Details by Service頁面內可以更進一步地去檢視在各個大流量的Flow裡面,細部的Flow顯示。如下圖內,當我們點選了TCP 8443 port,會將選定時間內的各個TCP 8443 port的不同flow君顯示出來,並且可以於有需要時,在各個flow後面都可以直接選擇”Add Rule”或是”Edit Rule”,來將檢視到的flow加入防火牆規則內。
圖說:Details by Services頁面
上面是我們對於Flow Monitoring功能的簡要說明。這時候大家可能會問一個問題:既然可以做Flow的統計,那我們可以直接抓取封包來進行分析嗎?
可以的,有幾種方法。vSphere Distributed Switch原本就有支援Remote SPAN的功能,同樣可以選擇一個網路管理的collector,然後將選定port group裡面的網路封包都mirror一份往對應的collector丟。但在下面我們展示給各位看NSX內藉由Distributed FW,提供工程師另一個抓封包的方法:直接到vSphere Host內利用pktcap-uw –dvfilter指令。下面的圖顯示的是,我們先用比如說summarize-filter抓到對應VM / vNIC的Firewall ID後,用pktcap-uw指令抓取通過的封包,並且輸出到一個叫做test.pcap的檔案
圖說:pktcap-uw工具
產出這個檔案要幹什麼呢?用比如說filezilla這類工具把檔案抓下來後,就可以直接用WireShark進行封包分析啦。當然,上面這樣的做法是用來給工程師作troubleshooting用的,不適合給一般管理者直接使用~
圖說:用Wireshark分析輸出的檔案
以上。下一篇網誌內我們要與各位更進一步介紹用Service Composer進行虛擬環境整體安全保護的概念。
Comments
0 Comments have been added so far