■ 枝江市職業(yè)教育中心 楊華 梅瀚林
編者按:很多人在使用Linux虛擬機進行網(wǎng)絡配置時會出現(xiàn)各種各樣的錯誤,筆者以Centos-6.5版本為例,對一些常見的Linux虛擬機網(wǎng)絡配置故障進行了詳細說明。
由 于Linux相對于Windows是開源的,而且在安全上要優(yōu)于后者,現(xiàn)在各行各業(yè)應用很廣泛,越來越多的人也在學習Linux。但是有些時候單獨裝它來學習,實在是很浪費,虛擬機就成了最好的選擇。
但在使用虛擬機軟件的時候,很多初學者都會遇到很多問題,其中網(wǎng)絡連接問題是大家遇到最多問題之一。
對于Windwos下的網(wǎng)絡配置,因為是圖形化的界面,操作起來非常方便。但在Linux(本 文 以 Centos-6.5版本為例)虛擬機下配置就不是那么輕松了。
因為它是依賴在虛擬機下配置,首先要保證服務正常啟動,再就是網(wǎng)絡的配置文件有多個,需要手工配置。稍不注意就可能導致網(wǎng)絡配置不成功。
下面以常見幾例故障來分析。
首先需要簡要弄清虛擬機中的三種網(wǎng)絡工作模式,它們分別是:Bridged(橋接模式)、NAT(網(wǎng)絡地址轉(zhuǎn)換模式)、Host-Only(僅主機模式)。系統(tǒng)會為這三種工種模式分別虛擬出三種虛擬網(wǎng) 卡 即 VMnet0、VMnet8和VMnet1。
在此模式下,虛擬機和主機就好比插在同一臺交換機上的兩臺電腦。如果主機連接在開啟了DHCP服務的(無線)路由器上,這時虛擬機能夠自動獲得IP地址。如果局域網(wǎng)內(nèi)沒有提供DHCP服務的設備,那就需要手動配置IP地址,只需仿照主機網(wǎng)卡的IP地址,設置一個同網(wǎng)段的不同的IP地址即可。
注 意 :VMnet0其實是物理網(wǎng)卡上的VMware bridge protocol橋接協(xié)議,它是不會出現(xiàn)在本地網(wǎng)絡連接上,打開本地連接或其他無線網(wǎng)卡的屬性,看下是否有這個協(xié)議,有的話就有橋接模式!
【網(wǎng)卡無法正常啟動】
1.克隆系統(tǒng)網(wǎng)卡配置信息不對稱
【故障現(xiàn)象】
Device eth0 does not seem to be present,delaying initialization.
【故障分析】
Linux(Centos-6.5)虛擬機克隆后,啟動系統(tǒng)發(fā)現(xiàn)網(wǎng)卡無法啟動,然后輸入命令“ifup eth0”會提 示“Device eth0 does not seem to be present,delaying initialization”,翻譯過來即設備eth0似乎不存在,延遲初始化。原因是系統(tǒng)克隆后保留了之前的網(wǎng)絡配置信息,其中重要一個參數(shù)就是網(wǎng)上的物理地址即MAC,而克隆的系統(tǒng)在啟動時會隨機生產(chǎn)一個新的網(wǎng)卡MAC,與配置文件不匹配,導致網(wǎng)卡初始化失敗。
【故障排除】
在“虛擬機設置”對話框的“網(wǎng)絡適配器→高級配置”選項中(如圖1所示),查看克隆系統(tǒng)網(wǎng)卡初始化的MAC,然后在網(wǎng)絡配置文件中進行相應修改。
[root@yum ~]# vim /etc/sysconfig/networkscripts/ifcfg-eth0
將 DEVICE=”eth0″ 改成 DEVICE=”eth1″ ,
將 HWADDR=”08:00:27:7e: 8c:e7″改成上面的MAC地址
HWADDR=” 00:0C:29:14:F7:39″
重新啟動網(wǎng)絡:service network restart
2.NetworkManager和network沖突
【故障現(xiàn)象】
重啟網(wǎng)絡服務時,[root@HBZJ /]# service network restart
圖1 網(wǎng)絡適配器高級設置
Error: Device not managed by NetworkManager or unavailable
或者重啟網(wǎng)卡設備時,[root@HBZJ /]# ifup eth1
Error: Connection activation failed: The connection is not for this device.
【故障分析】
對于初學者來講,一般是采用系統(tǒng)的默認配置,在LINUX中,之前的網(wǎng)絡連接配置是能過ifcfg配置文件的編輯來進行,當然系統(tǒng)也提供了一個SETUP程序來進行簡單圖形化的操作,不管是哪種方式都是配置文件的修改,讓它生效。
現(xiàn)在Linux為了加強網(wǎng)絡連接的管理,方便用戶(特別是習慣了Windows操作)對各種網(wǎng)絡配置又增加了NetworkManager軟件,它也支持傳統(tǒng)的ifcfg 類型配置文件。核心是 NetworkManager守護進程,還提供了命令行工具 nmcli,以及圖形界面配置工具。
我們用戶最直觀的感受如果啟用了NetworkManager服 務,在系統(tǒng)右上角就會出現(xiàn)像Windows一樣的網(wǎng)絡連接圖標,然后可以直接利用圖形界面進行網(wǎng)絡各種配置。ifcfg類型配置文件中有一個重要參數(shù)“NM_CONTROLLED="yes"”, 這 決定是否可以由NNetwork Manager托管,意味著通過軟件可以直接修改ifcfg配置文件。
但是對于極度依賴網(wǎng)絡、經(jīng)常進行遠程管理的系統(tǒng)管理員來說,這東西就是一個災難。當系統(tǒng)管理員按以前的習慣,在遠程連接的終端上,修改ifcfg配置文件時,如果內(nèi)容不完全正確,有很大概率導致網(wǎng)絡中斷(重要原因是當前配置文件是實時生效的),導致遠程連接死機,無法進行任何操作,管理員只能到機房去(如果幸運,離機房比較近的話),到服務器的Console終端來進行修改。
【故障排除】
關閉NetworkManager服務
# chkconfig NetworkManager off --永久關閉服務,需要重啟
# service NetworkManager stop --立即關閉服務,不需要重啟
注意:配置linux網(wǎng)絡IP的時候,設置ifcfg-eh0文件就行了,這是系統(tǒng)級別的,而在圖形界面手工配置的IP設置,是用戶級別的,且重啟后,系統(tǒng)會優(yōu)先加載系統(tǒng)級別的配置,建議關掉圖形界面配置,即關閉NetworkManager服務。
【網(wǎng)卡能正常啟動,但無法獲取IP地址】
1.橋接網(wǎng)卡選擇錯誤;
【故障現(xiàn)象】
圖2 系統(tǒng)網(wǎng)絡服務啟動
圖3 橋接模式網(wǎng)卡選擇
圖4 NAT模式拓樸圖
能夠通過ifconfig命令顯示網(wǎng)卡的基本信息,但唯獨沒有IP 地址相關信息,進行網(wǎng)絡服務重新啟動,如圖2所示,系統(tǒng)一直在獲取網(wǎng)卡的IP配置信息。
【故障分析】
根據(jù)經(jīng)驗,應該是DHCP服務的問題,查看系統(tǒng)日志(/var/messages)發(fā)現(xiàn)提示“NO DHCPOFFERS received”,然后獲取IP都是失敗。但檢測物理機上的IP地址是可以正常獲取的,分析很有可能就是在橋接模式配置上了。進入到虛擬機的橋接配置界面一看真相大白,如圖3所示。可能由于人為誤操作,導致橋接網(wǎng)卡配置到了虛擬網(wǎng)卡上了。
【問題探討】
橋接模式不是跟直接通過物理網(wǎng)卡模擬一臺真實的設備,為什么還要設計這樣一個網(wǎng)卡的選項,還容易出錯?其實這樣設計是為了應對物理機上可能安裝多塊網(wǎng)卡,連接到不同的網(wǎng)絡,這種情況下就要根據(jù)實際情況下橋接到不同的網(wǎng)卡了。
【故障排除】
只要選擇橋接到物理網(wǎng)卡上,然后重新啟動網(wǎng)絡服務即可。
NAT模式與VMnet8虛擬網(wǎng)卡進行通信,從主機的“VMWare Virtual Ethernet Adapter for VMnet8”虛擬網(wǎng)卡出來,連接到VMnet8虛擬交換機,虛擬交換機的另外的口連接到虛擬的NAT服務器(這也是一個VMware組件),還有一個口連接到虛擬DHCP服務器,其他的口連虛擬機,虛擬機的網(wǎng)關即是“VMWare Virtual Ethernet Adapter for VMnet8”網(wǎng)卡所在的機器,就是你的Host機器(如圖4所示)。
同 樣,用ipconfig也可以看出來,你的虛擬機的默認網(wǎng)關也指向了你的“VMWare Virtual Ethernet Adapter for VMnet8”虛擬網(wǎng)卡地址。
【故障現(xiàn)象】
VMnet8虛擬網(wǎng)卡沒有啟動。
【分析排錯】
這個需要在虛擬機里作配置才有的,在虛擬網(wǎng)絡配置器里將 VMnet8進行NAT模式配置,要“將主機虛擬適配器連接到此網(wǎng)絡”和“使用本地DHCP服務將IP地址分配給虛擬機”兩項全部選中,這樣才會在本地網(wǎng)絡配置中出現(xiàn)VMnet8虛擬網(wǎng)卡。
【故障現(xiàn)象】
VMnet8虛擬網(wǎng)卡能正常配置啟動。但系統(tǒng)啟動后無法獲取IP。
【分析排錯】
Windows系統(tǒng)服務中的VMware DHCP Service服務項沒有正常啟動,從而導致虛擬機客戶端無法正常獲取IP,重新啟動該服務即可。
【故障現(xiàn)象】
能夠正常獲取IP,但無法訪問外網(wǎng)。
【分析排錯】
Windows系統(tǒng)服務中的VMware NAT Service服務項沒有正常啟動,從而導致虛擬機客戶端沒有與外網(wǎng)連接的路徑,重新啟動該服務即可。
【故障現(xiàn)象】
能夠通過IP訪問外網(wǎng),不能進行域名解析訪問。
【分析排錯】
這是虛擬機系統(tǒng)上DNS配置錯誤引起的,ifcfg類型配置文件中有一項關于的DNS配置,默認情況下是沒有配置,它會根據(jù)DHCP自動獲取相關DNS,如果人為修改造成一個錯誤的DNS服務地址,這就將導致域名解析錯誤。
有的用戶認為可以修改/etc/resolv.conf配置文件來配置本的DNS服務,其實這個選項是根據(jù)網(wǎng)卡配置文件來,所以會發(fā)現(xiàn)配置完重新啟動會丟失,又回到之前的配置。這主要是系統(tǒng)域名解析的優(yōu)先級是“hosts文件”→“網(wǎng)卡配置文件”→ “/etc/resolv.conf”,所 以 如果網(wǎng)卡配置文件的DNS選擇沒有更改過來,始終不會更改成功。
要么更改網(wǎng)卡配置文件中DNS選項為正確的IP指向,或者直接注釋掉該選項,系統(tǒng)會用默認網(wǎng)關作為DNS,雖然在配置文件中看不到,但 在“/etc/resolv.conf”配置文件中會發(fā)現(xiàn)DNS已經(jīng)同步到默認網(wǎng)關了。