Win10 Hyper-V虛擬機網絡配置方式(5)-專用網絡擬機交換機

1、 創建專用虛擬網絡

在Hyper-V管理界面中手動創建專用網絡的虛擬交換機switch-z,創建專用網絡的虛擬交換機不會在父分區(管理主機宿主機)中安裝虛擬網絡適配器。

在Hyper-V管理界面中創建虛擬機ubuntu01-ubuntu04,虛擬機的網絡適配器選擇剛建立的專用網絡的虛擬交換機switch-z,在虛擬機中安裝ubuntu操作系統。

啟動安裝的所有ubuntu虛擬機操作系統,發現所有虛擬機都沒有獲得IP地址,無法進行網絡通信。

2、 配置ubuntu靜態IP信息

Ubuntu01和ubuntu02設置與管理主機(宿主機)物理網卡相同規則的IP地址和子網掩碼,使用sudo netplan apply使設置生效,確保管理主機和虛擬機ubuntu01、ubuntu02邏輯上處於一個網段。如下圖圖1所示。

Win10 Hyper-V虛擬機網絡配置方式(5)-專用網絡擬機交換機

圖1:ubuntu18.04配置靜態IP地址和子網掩碼

ubuntu03和ubuntu04設置與管理主機(宿主機)物理網卡不同規則的IP地址和子網掩碼,使用sudo netplan apply使設置生效,確保管理主機和虛擬機ubuntu03、ubuntu04邏輯上處於不同的網段。如下圖圖2所示。

Win10 Hyper-V虛擬機網絡配置方式(5)-專用網絡擬機交換機

圖2:ubuntu18.04配置靜態IP地址和子網掩碼

3、 專用虛擬網絡連通性測試

根據上述構建出如下圖3所示的測試環境。管理主機win10創建4臺ubuntu虛擬機,物理機A和管理主機win10接入無線路由器的物理LAN口,無線路由器WAN口連接到互聯網。

Win10 Hyper-V虛擬機網絡配置方式(5)-專用網絡擬機交換機

圖3:測試環境示意圖

管理主機使用靜態IP:192.168.1.100/24;虛擬交換機switch-z配置為專用網絡的虛擬交換機;四臺ubuntu虛擬機的網絡適配器使用switch-z虛擬交換機;ubuntu01和ubuntu02組成A組,IP地址設置和管理主機IP地址設置規則相同;ubuntu03和ubuntu04組成B組,IP地址設置和管理主機IP地址設置規則不同。

該測試場景下,A組ubuntu虛擬機之間可以雙向ping通;管理主機可以ping通A組各虛擬機,但A組虛擬機ping不通管理主機,所以管理主機和虛擬機在專用虛擬網環境中只能單向ping通。

B組ubuntu虛擬機之間可以雙向ping通;管理主機和B組各虛擬機雙向都ping不通。

該測試場景下,A組和B組虛擬機之間不能互相ping通。

4、 虛擬機操作系統啟動很慢的問題的解決

上述創建了專用虛擬網絡,虛擬機之間可以雙向通信,但各虛擬機操作系統啟動時耗時很長,等得不耐煩。

如下圖圖4所示,Ubuntu操作系統啟動到"A Start job is running for Wait for Network to be Configured(xx秒 / no limit)這一步時會等待很長時間,長達124秒,之後才能繼續後面的啟動任務,導致總體開機時間很長。

Win10 Hyper-V虛擬機網絡配置方式(5)-專用網絡擬機交換機

圖4:ubuntu操作系統啟動時在等待網絡聯通時卡住

如下圖圖5所示,是等待超時後操作系統啟動界面的輸出信息,從輸出信息可以看出, 細節信息需要到"systemctl status systemd-networkd-wait-online.service"中尋找。

Win10 Hyper-V虛擬機網絡配置方式(5)-專用網絡擬機交換機

圖5:ubuntu操作系統啟動時輸出信息部分截圖

在看看系統日誌,看看能否找到一些幫助信息。查看/var/log/syslog的系統日誌,可以看到下圖6所示的操作系統啟動時的系統日誌,粉底白字部分的日誌信息,對應圖4中卡頓的部分。看來是

systemd-networkd-wait-online.service執行超時了,看來確實需要從該服務入手,看看什麼原因導致長時間等待。

Win10 Hyper-V虛擬機網絡配置方式(5)-專用網絡擬機交換機

圖6:ubuntu操作系統引導啟動的系統日誌syslog問題截圖

經查systemd-networkd-wait-online.service 是一個操作系統啟動後執行的系統服務,該服務監視網絡接口,查看網絡連接狀態,監視到網絡連線成功(可以對外通信)則結束當前運行,轉到操作系統啟動的下一步任務。如果網絡連接一直不成功,則該服務會一直等待,直到超時才會結束當前進程的運行。

經查,該服務運行有三個參數,一個是需要監視的網絡接口,一個是可以忽略的網絡接口,第三個是監視時長的限制。

上圖4中"no limit"表示沒有設置超時限制,系統使用默認設置120秒,經測試實際執行120+4秒後才會結束運行。如下圖圖7所示,下一秒後該任務結束運行開始後面的啟動工作。

Win10 Hyper-V虛擬機網絡配置方式(5)-專用網絡擬機交換機

圖7:操作系統啟動時等待網絡配置完成截圖

經查,該服務在ubuntu 18.04系統的/etc/systemd/system/network-online.target.wants目錄下,修改systemd-network-wait-online.service文件,在【Service】中增加一行:TimeoutStartSec=2sec,設置程序執行時間超過2秒就做為超時處理,跳過當前任務,繼續下面的啟動工作。見下圖圖8,圖示了修改該服務超時時長。

Win10 Hyper-V虛擬機網絡配置方式(5)-專用網絡擬機交換機

圖8:修改ubuntu操作系統啟動時等待網絡配置完成的超時時間

分別設置幾個超時時長,可以明顯觀察到操作系統啟動起到這一步後的表現。下圖圖9是設置超時時長為10秒時截取的系統啟動信息截圖,下圖圖8可見systemd-network-wai-online監控網絡連接,超過14秒還沒有連接成功,則當前任務會終止。

Win10 Hyper-V虛擬機網絡配置方式(5)-專用網絡擬機交換機

圖9:修改timeout值,由(xx秒/no limit)變為(xx秒/14秒)

按照上述修改後,操作系統的啟動速度恢復正常。當然,對使用專用網絡虛擬交換機的虛擬機,可以將該值設置很小,因為只通過虛擬交換機進行虛擬機之間的通信,該種網絡從設計之初就是不發生網絡之間的通信,所以網絡接口不可能連接成功,不可能連接到其他網絡,只能等待超時(默認124秒或者手動修改的超時時長)才能結束當前進程。

其他類型的虛擬網需要網絡連接,該等待值建議不做修改,如果網絡正常,該等待時間也會很短,如果等待時間很長,肯定是出問題了,需要解決。

5、 適用場景

專用虛擬網絡可以實現虛擬機之間的通信以及管理主機到虛擬機單向通信,不需要物理網卡,對外界隔離性很好。除了在單一服務器上構建實驗環境,很少使用。

當然,如果我們希望只允許同一物理服務器上的子分區之間進行通信時,可以使用此類型的虛擬網絡。

專用虛擬網絡是一種無需在父分區中裝有虛擬網絡適配器的虛擬網絡。在希望將子分區從父分區以及外部網絡中的網絡通信中分離出來時,通常會使用專用虛擬網絡。

6、 使用專用網絡虛擬交換機的初步總結

不在管理主機(宿主機)上創建虛擬網絡適配器,虛擬機之間的通信不需要物理網卡。

虛擬機需要設置靜態IP,否則獲取不到IP地址,無法實現虛擬機之間的通信。

同一交換機下的虛擬機的IP地址和子網掩碼規則必須一致,邏輯上處於在同一局域網內下才能互相通信。

管理主機和虛擬機之間可以單向ping通,前提是虛擬機的IP地址和子網掩碼必須和管理主機IP地址與子網掩碼規則相同,邏輯上處於一個網絡內。


分享到:


相關文章: