NSX網路虛擬化技術Author黃國帆在SoftwareDefinedAnything的時代,虛擬化技術的主戰場不再只限於伺服器,已經是逐步擴及到儲存、網路、資安等整個IT系統;虛擬化降低了實體架構的複雜性,提高了運營效率,並且能夠動態地重新調整底層資源的用途,以便以最佳的方式快速滿足日益動態化的業務需求,本文將探討VMware的虛擬網路平台,能夠為企業帶來什麼革命性的幫助。一、VMwareNSX是什麼?1.何謂網路虛擬化在探討VMwareNSX前,我們要先了解何謂網路虛擬化(NetworkVirtualization)?大家可以想像我們將資料中心裡的Switch、Router、Firewall和LoadBalancer等設備相關的網路功能,將它們實作在hypervisor裡,透過軟體的方式提供,因為不再需要專屬的硬體,因此意味著擺脫了硬體的限制,不必再為了需要某個網路功能,而同時必需進行硬體設備的採購與更換。如圖一所示,拿伺服器虛擬化與網路虛擬化做類比,前者提供x86Environment,能創建多個VirtualMachine並有效的運作,而網路虛擬化提供L2-L7的NetworksService,透過VirtualNetwork的建立,建立整個網路的邏輯架構,提供VM間網路的存取與安全。圖一伺服器與網路虛擬化比較2.SoftwareDefinedNetwork(SDN)的實現──VMwareNSX一種普遍被認同的SDN定義,就是將網路的DataPlane與ControlPlane做分離,讓網路架構能夠不受專屬硬體的限制,而能夠具備彈性。VMwareNSX透過網路虛擬化的技術來實現SDN的架構,它能在既有的實體環境(底層),打造出一個全新的邏輯網路(虛擬層)(圖二),而底層與虛擬層的網路架構可以完全不同,因為它不限制底層的硬體(如Server、Switch)是哪個廠牌、型號或需要支援特殊的網路功能,只需要底層網路提供一個穩定且高速的環境。為了瞭解NSX是如何實現SDN的架構,我們從三個層面來解析:ManagementPlane、ControlPlane、DataPlane(圖三),在下個章節會逐一為各位說明。圖二VMwareNSX將實體與虛擬網路分離圖三VMwareNSX實現SDN架構二、NSX深度探討在本章節會為各位解說VMwareNSX的分工,與在佈署時需注意的重點與新的網路觀念,並從了解VMwareNSX的過程中,來發覺它能帶來什麼革命性的好處。首先,我們從圖四的VMwareNSX功能構件圖可以瞭解,要建構一個NSX網路,需要先建構一個PhysicalNetwork,然後再配置上面的LogicalNetwork,其中包括,用來管理雲端服務的CloudManagement,由服務面來配置網路的需求,並透過ManagementPlane的NSXManager來控管NSX網路的網路配置,而Logical網路實際運作,依據SDN的精神,將ControlPlane與DataPlane分開,NSXController負責ControlPlane中控制網路建構與運作必要的通訊協定,從上層的NSXManager獲得指示後,指揮DataPlane的各項元件進行實際Data運作,包含LogicalSwitch、DistributedLogicalRouter、DistributedLocalFirewall、NSXEdgeServiceGateway等等,接下來我們將逐一為各位說明。圖四VMwareNSX功能構件圖1.NetworkInfrastructure──建構NSX的實體網路所謂的網路虛擬化,基本上就是在實體網路中,透過VXLAN、STT、NVGRE等Tunnel技術,在實體網路中,創建一個全新的虛擬網路架構,即所謂的「OverlayNetwork」。在目前的VMwareNSXforvSphere的版本中,運用的是VXLAN的Tunnel技術,在建構NSX的實體網路時,可以從客戶的既有環境和需求來考量,可以從既有的網路環境佈建,或者建立一個全新的實體網路環境。從既有的網路環境佈建,優點是不需要改變架構,或添購額外的設備,但缺點是實體架構可能因為缺乏備援和頻寬的評估,而不是最佳化的架構。基本上在NSX的網路環境中,是至少需要10GEthernet的網路,作為基礎環境。圖五Spine-Leaf架構在傳統資料中心的三層式架構(圖六),我們會建構CORE交換器為L3Gateway,再由各機櫃的TOR(Top-of-Rack)交換器透過Layer2連接到CORE交換器。因為是Layer2交換,因此當某個網路節點異常時,透過SpanningTree運算機制,來做線路的切換,而STP收斂的時間往往過久,導致網路的Downtime拉長,而且多個Link也同時只能運用一個,雖然也有多個廠商,發展非標準化的Multi-ChassisLinkAggregation(ex.vPC)協定來解決這個問題,但是還是有跨廠牌無法運作的缺點存在。圖六傳統資料中心的三層式架構而全新的Layer3Spine-Leaf架構,從TOR交換器到CORE交換器,運行Layer3的IP路由交換,透過IP動態路由協定收斂較快,與天生具備ECMP(EqualCostMultiPath)多重路徑的優點,避免了運行STP所造成的收斂時間和Link效率問題。因此Spine-Leaf架構(圖五)成為兼具頻寬與備援能力的最佳化設計。另外,當我們規劃主機Clusters時,建議要將Clusters橫向擺放(圖七),也就是跨機櫃擺放,避免相同性質的主機過度集中於單一個機櫃(直向),而當機櫃斷電時,導致整個Clusters停擺。圖七實體主機擺放位置概念圖2.ManagementPlane──建立NSXManager的管理平台在完成基礎網路的配置後,接下來就是要建立ManagementPlane的管理平台,以VMwareNSXforvSphere版本為例,需要另外建立一套NSXManager平台,搭配vCenterServer來執行管理面的設定配置與管理工作。NSXManager在管理層主要負責二件事,第一是提供相關UI介面來讓用戶操作整個NSX系統,所有的網路設定僅透過點擊、輸入相關資訊即可完成,非常便於操作;第二是當使用者進行虛擬網路的部署或變更時,通知ControlPlane進行後續的動作。NSXManager採用OVA檔案格式,可以用vCenter匯入成為VM的方式安裝,一般建議規劃安裝在ManagementCluster,在與vCenter進行註冊整合後,在vCenter會多出一個Networking&Security的圖示,爾後相關的虛擬網路設定都可以透過vCenter來進行(圖八),我們可以利用它來創建LogicalSwitch、LogicalRouter、LogicalFirewall等相關元件。圖八NSXManager提供UI的網路設定介面3.ControlPlane──NSXController負責傳送控制訊號,LogicalRouterControlVM負責路由控制為了讓NSX更有效率的處理虛擬化網路的訊號控制與封包轉送,NSX採用將ControlPlane與DataPlane分開的設計,ControlPlane主要由NSXController負責解讀上層ManagementPlane的設定後,將相關網路配置派發到DataPlane來執行,而且負責相關VirtualNetwork的網路資訊學習與交換,包含:ARPtable、MACTable、VTEPTable、Routingtable都儲存在NSXController身上。因此,NSXController的高可用度設計非常重要,一般在一個資料中心至少要佈署三台NSXController來互為備援,另要注意的是三台必需佈署在不同Host,避免單台Host故障導致無Controller可用。我們可以透過NSXManager所提供的UI介面就可以輕鬆的佈署NSXController,只需輸入相關資訊,系統會自動在虛擬環境建立Controller虛擬機(圖九)。圖九透過UI界面輕鬆建立Controller另外,LogicalRouterControlVM則負責建立DataPlane中LogicalRouter在轉送封包所需要參考的路由表,這些路由表會由LogicalRouterControlVM透過路由協定交換所建立。4.DataPlane──處理L2/L3封包轉送與安全防護的機制數據層主要負責Traffic的處理,也就是實際資料流會經過的地方,在數據層我們可以建立多樣的虛擬網路設備或功能,集中包括負責Layer2交換的LogicalSwitch,Layer3交換的LogicalDistributedRouter,安全防護機制的LogicalDistributedFirewall,與南北向網路服務的EdgeGateway等幾個元件:(1)LogicalSwitch其實建立LogicalSwitch的概念,跟一般在ESXi的DistributedSwitch(ex.vDS)建立一個Layer2的Switch,並指定一個PortGroup類似(圖十),但不同的是,它不是連接到某個VLAN,而是透過VXLANTunnel技術,連接到某個VXLANVirtualNetwork上。由於VXLAN是在第三層網路上重新封裝的二層網路,因此對於雲端多租戶的環境來說,LogicalSwitch突破了原本VLAN數量只能到4096的限制,提供了第二層網路的延展性,且包含了vDS所有的優點;在建立LogicalSwitch前,需先定義好SegmentIDPool的範圍,此ID即為VNI(VXLANNetworkIdentifier),當LogicalSwitch建立時,會自動在此Pool裡挑選一個未被使用的ID來做為VXLAN的識別(圖十一),通常是按照順序分配。此外,在佈署LogicalSwitch時,需注意底層的實體Switch要支援JumboFrame(意指MTU1600以上),因為VXLAN會增加封包長度50bytes,且有不可被Fragment的特性。圖十透過UI建立的LogicalSwitch會自動在vDS裡建立PortGroup圖十一建立LogicalSwitch會自動選擇SegmentID(2)LogicalDistributedRouter亦稱為LogicalRouter,主要提供VM與VM之間的第三層封包交換(一般在VM和VM之間的Traffic稱之為東西向流量,VM對外部網路的Traffic稱之為南北向流量),能讓處於不同Subnet的VM互相存取,不用透過外部的路由設備。而這個Layer3封包轉送的功能是在每一個Host的KernelModule直接處理的,所以透過分散式的處理,可以大幅提昇效能。我們可以透過在vCenter/NetworkandSecurity標籤下的UI介面來輕鬆佈署DistributedRouter(圖十二)且支援HA功能。圖十二LogicalRouter設定頁面因為部署出來的路由器(LogicalRouterControlVM)其實是ControlPlane的元件,它將路由表派發到每台Host的vSwitch後,實際上的Traffic在每台VM的虛擬網卡和vSwitch上交換,因此即使LogicalRouterControlVM故障,也不會影響VM間的存取。也因為這個特性,LogicalRouter不能用來服務實體機之間的路由,如需與實體路由器界接,可以利用EdgeGateway(在後面章節會提到)。(3)LogicalDistributedFirewall大部份的人在談VMwareNSX重點只有放在網路虛擬化,但我們不可能提供給客戶一個網路產品,而不管他的安全,因此VMwareNSX有另一個革命性的功能就是LogicalDistributedFirewall。傳統的網路架構是邊界式的防火