VMware vSphere虛擬機交換機支持四種VLAN類型,分別是:無、VLAN、VLAN中繼、專用VLAN。
在路由/交換領域,VLAN的中繼端口叫做Trunk。Trunk技術用在交換機之間互連,使不同VLAN通過共享鏈路與其它交換機中的相同VLAN通信。交換機之間互連的端口就稱為Trunk端口。Trunk是基于OSI第二層數據鏈路層(Data Link Layer)的技術。
如果沒有VLAN中繼,假設兩臺交換機上分別創建了多個VLAN(VLAN是基于Layer 2的),在兩臺交換機上相同的VLAN(比如VLAN10)要通信,則需要將交換機A上屬于VLAN10的一個端口與交換機B上屬于VLAN10的一個端口互連;如果這兩臺交換機上其它相同VLAN間也需要通信(例如VLAN20、VLAN30),那么就需要在兩個交換機之間VLAN20的端口互連,而劃分到VLAN30的端口也需要互連,這樣不同的交換機之間需要更多的互連線,端口利用率就太低了。
交換機通過trunk功能,事情就簡單了,只需要兩臺交換機之間有一條互連線,將互連線的兩個端口設置為trunk模式,這樣就可以使交換機上不同VLAN共享這條線路。
Trunk不能實現不同VLAN間通信,VLAN間的通信需要通過三層設備(路由/三層交換機)來實現。
vSphere網絡支持標準虛擬交換機及分布式虛擬交換機。你可以將vSphere虛擬交換機,當成一個"二層"可網管的交換機來使用。普通的物理交換機支持的功能與特性,vSphere虛擬交換機也支持。vSphere主機的物理網卡,可以"看成"vSphere虛擬交換機與物理交換機之間的"級聯線"。根據主機物理網卡連接到的物理端口的屬性(Access、Trunk、鏈路聚合),可以在vSphere虛擬交換機上,以實現不同的網絡功能。
當vSphere虛擬交換機(標準交換機或分布式交換機)上行鏈路(指主機物理網卡)連接到交換機的Access端口時,虛擬機的類型為"無",即該虛擬交換機,與其上行鏈路物理交換機端口屬性相同,如果該主機物理網卡連接到一個VLAN,則該虛擬交換機屬性該物理交換機的VLAN。
當vSphere虛擬虛擬機上行鏈路連接到物理交換機的Trunk端口時,此時VMware虛擬交換機的"虛擬端口組"可以分配三種屬性:
VLAN:在虛擬交換機的端口組中,指定VLAN ID,該虛擬端口組所分配的虛擬機,屬于對應的VLAN ID,可以與其他虛擬機及物理網絡通訊。
VLAN 中繼:在虛擬交換機端口組,指定允許通過的VLAN,然后在虛擬機中,在虛擬網卡中指定VLAN ID。
專用VLAN:指定VLAN ID,虛擬端口組所分配的虛擬機,屬于對應的專用VLAN,受物理交換機專用VLAN ID的功能限制。
下面我們通過具體的實例進行介紹。
-
網絡拓撲描述
當前環境中有3臺ESXi主機,每個主機有4個網卡,其中每個主機的第1、第2個網卡創建了標準交換機,這兩個網卡連接到物理交換機的Access端口,屬于vlan1016;其中每個主機的第3、第4網卡創建了分布式交換機,這些網卡都連接到物理交換機的Trunk端口。拓撲如圖1-1所示。
圖1-1 網絡拓撲
主機所連接的物理交換機的VLAN劃分如表1-1所示。
表1-1 -
虛擬端口組"無VLAN"配置
在規劃大多數的vSphere虛擬化數據中心時,每臺ESXi主機都至少需要配置4塊千兆網卡,并且遵循每2塊網卡一組的原則配置虛擬交換機。一般情況下將其中的兩個網卡連接到交換機的Access端口,用做管理(即設置ESXi的管理地址);而將剩余的另兩個網卡連接到交換機的Trunk端口,用于承載虛擬機的網絡流量,如圖2-1所示。
圖2-1 配置有4個物理網卡的虛擬交換機示意圖
在圖2-1中畫出了1個物理主機的連接示意圖,其中第、第2個網卡連接到物理交換機的Access端口(即某個VLAN端口,一般為服務器專門規劃一段VLAN),這2個網卡創建一個虛擬交換機(一般是標準交換機,安裝ESXi的時候創建)。如果有虛擬機,例如圖中的虛擬機1~虛擬機2,則與主機的管理地址屬于同一個VLAN。而網卡3、網卡4則連接到物理交換機的Trunk端口,由這兩個網卡作為虛擬交換機2的上行鏈路,而虛擬交換機2中的"虛擬端口組"可以根據需要,設置為VLAN、VLAN中繼或專用VLAN方式。
【說明】在同一個虛擬交換機中可以創建多個端口組,并且端口組的類型可以不同。
在本小節中,虛擬交換機1的虛擬端口組,則與物理網卡1、2所屬的VLAN是同一個網段,不需要指定VLAN ID(保持默認為空即可),如圖2-2所示,這是類似"虛擬交換機1"中,虛擬端口組的VLAN類型設置頁。
如果有虛擬機使用該端口組(圖2-2中端口組名稱為manager,而在安裝ESXi的時候,其默認的端口組名稱為VM Network),則與管理地址屬于同一網段。在我們的示例中,當前ESXi主機的管理地址段為172.16.16.0/24,屬于VLAN1016,則圖2-1中的虛擬機1與虛擬機2所使用的IP地址也應該是VLAN 1016才可。
-
在虛擬端口組配置"VLAN"
當虛擬交換機的上行鏈路(綁定的主機物理網卡)連接到交換機的Trunk端口時,虛擬端口組需要在VLAN、VLAN中繼、專用VLAN之間進行選擇設置。本節先介紹"VLAN"功能,這也是最常用的功能。我們仍然以圖2-1為例,其中第3、第4網卡連接到物理交換機的Trunk端口,物理交換機中劃分了1016、1017、1018、1019等VLAN,則在VMware虛擬交換機的虛擬端口組中,可以添加對應ID的VLAN端口組,并且采用"同名"的端口組,以方便管理。例如,在圖3-1中,這是在vSphere Client管理界面中,配置好分布式虛擬交換機后,創建的vlan1017、vlan1018、vlan1019等指定了VLAN ID的虛擬機端口組。
圖3-1 多個指定了VLAN ID的虛擬機端口組
對于每一個端口組,在VLAN類型中都指定了VLAN ID,如圖3-2所示。
圖3-2 指定VLAN ID
當虛擬機選擇"網絡標簽"時,選擇那個端口組,則虛擬機網絡則會被限制為端口組所指定的VLAN,如圖3-3所示。
圖3-3 為虛擬機選擇網絡標簽
例如,如果在圖3-3中選擇Vlan1017,則虛擬機的網絡屬于 VLAN 1017。 在虛擬端口組配置"VLAN中繼"功能
如果要在虛擬機中指定VLAN ID,則需要添加一個類型為"VLAN中繼"的端口組,并為虛擬機分配這個端口組,并且虛擬機使用VMXNET3虛擬網卡,才能使用這一功能。
4.1. 在虛擬交換機中創建VLAN中繼端口組
在虛擬交換機(標準交換機或分布式交換機)中,創建端口組,設置端口組的屬性為"VLAN中繼",主要步驟如下。
4.1.1. 使用vSphere Client或vSphere Web Client,進入網絡管理,右擊要添加端口組的標準交換機或分布式交換機,在彈出的快捷菜單中選擇"新建端口組",如圖4-1-1所示。
4.1.2. 在"屬性"對話框中,在"名稱"文本框中輸入新建的端口組的名稱,在此命名為Trunk,在"VLAN類型"下拉列表中選擇"VLAN中繼",在"VLAN中繼范圍"文本框中,輸入該端口VLAN中繼范圍,例如1-4、5、10-21等,這需要與你的物理交換機的VLAN相對應。如果你要允許所有VLAN通過,則鍵入1-4094,如圖4-1-2所示。
4.1.3. 在"即將完成"對話框,單擊"完成"按鈕,如圖4-1-3所示。
4.2. 在虛擬機中測試VLAN中繼
要使用屬性為"VLAN中繼"的端口組,要在虛擬機的網卡上設置VLAN ID,而這一功能只有VMXNET3的虛擬網卡才能支持,下面介紹這一過程。
4.2.1. 打開一個測試用的虛擬機,為虛擬機添加一個類型為"VMXNET 3"的虛擬網卡,并且在"網絡連接"中選擇"Trunk"網絡標簽,如圖4-2-1所示。
4.2.2. 返回到虛擬機配置頁,移除原來的網卡(大多數虛擬網卡類型為Intel E1000),單擊"確定"按鈕,完成添加,如圖4-2-2所示。
4.2.3. 進入虛擬機控制臺,打開網絡連接,選擇新添加的vmxnet3 虛擬網卡,在連接屬性中,單擊"配置"按鈕,如圖4-2-3所示。
4.2.4. 在"高級"選項卡,在"VLAN ID"選項中,在"值"文本框中,鍵入一個VLAN ID,該VLAN ID需要是物理交換機上已經存在的VLAN,例如1016,如圖4-2-4所示。
4.2.5. 設置完成之后,查看網絡連接信息,如果當前VLAN ID有DHCP,則會獲得VLAN 1016的IP地址,如圖4-2-5所示。
如果你的網絡中沒有DHCP,你可以設置VLAN 1016的IP地址、子網掩碼、網關,然后使用ping命令進行測試,這些不一一介紹。
【說明】該方法的優點是非常靈活,所有的虛擬機都可以屬于不同的VLAN,缺點就是工作量大,需要對每一臺虛擬機進行修改。