最 近,筆者需要使用VM軟 件(VMware Workstation)虛擬多臺Linux操作系統服務器進行集群測試(本文采用Centos 6.0操作系統為例),虛擬機使用Host-only網絡模式進行連接。在對各主機配置完IP地址后,發現虛擬機與宿主機(筆者的電腦)之間通訊正常,但各虛擬機之間卻不通。在虛擬機中,使用ifconfig命令顯示網絡接口卡配置情況,發現自己犯了一個低級錯誤,雖然各虛擬機的IP地址是同一局域網段的不同IP地址,但網卡的HWADDR地址卻全部相同,都是“00:0C:29:10:AC:71”。根據OSI七層模型,以太網中網絡底層通信是二層硬件地址之間的通信,因此當HWADDR相同時,各虛擬機之間由于地址沖突,當然無法通信。

圖1 重啟網絡服務后的報錯信息
那么為什么這些虛擬機的HWADDR地址都是相同的呢?原來由于需要多臺虛擬服務器進行測試,筆者為省事就直接對虛擬機文件進行了拷貝,“克隆”了多臺虛擬服務器,這種做法非常簡單,但克隆出來的各臺虛擬機的配置卻一模一樣,因此造成了各虛擬機的HWADDR地址相同。
發現問題的原因后,接下來就是如何解決問題。原本計劃將各虛擬服務器的HWADDR地址修改為不同的地址,從而實現各虛擬機的正常通信。筆者認為憑著對Linux系統和虛擬機的幾年操作經驗,問題應該很容易解決。但實際情況卻并非如此簡單。
首先使用vi編輯器,對其中一臺虛擬服務器(以下簡稱虛擬機1)的網卡配置 文 件 “/etc/sysconfig/network-scripts/ifcfgeth0”進行了編輯,將文件中的HWADDR的地址值修改為“00:0C:29:10:AC:72”。再 使 用“service network restart”命令,重啟網絡服務,使配置文件生效。但重啟服務后出現報錯信息,網卡重啟失敗(如圖1)。……