解決網(wǎng)絡(luò)沖突:更改虛擬機MAC地址
介質(zhì)訪問控制地址已經(jīng)出現(xiàn)一段時間了。最初每個網(wǎng)絡(luò)接口有一個***的、由12字母和數(shù)字(0-9,A-F)所組成的MAC地址,格式為XX:XX:XX:XX:XX:XX。每家制造商分配的前六位地址序列各不相同,每個網(wǎng)絡(luò)設(shè)備后六位的組合也是***的。
上述系統(tǒng)確保了世界上所有的網(wǎng)絡(luò)設(shè)備都有***的MAC地址,這有別于最終用戶通常會進行分配或更改的IP地址。
現(xiàn)在,大多數(shù)人并不會進一步考慮虛擬機的MAC地址,因為虛擬機的MAC地址是在創(chuàng)建時自動生成的。無論你使用的是哪種虛擬化平臺,使用的都是相同的MAC地址生成規(guī)則。前六位字符表示制造商(例如VMware或微軟)名稱,接下來的六位字符是隨機生成的。不同的平臺都有各自的產(chǎn)生隨機地址的規(guī)則,但存在一些情況那就是兩臺虛擬機的MAC地址完全一樣。當(dāng)上述情況出現(xiàn)時就意味著MAC地址重復(fù)了。
MAC地址重復(fù)最為常見的原因就是客戶端克隆。P2V以及V2V拷貝通常會保留盡可能多的設(shè)置,包括MAC地址。這不會有什么問題,除非你想同時保留同一網(wǎng)絡(luò)中的源以及副本。
那么,重復(fù)的MAC地址將會帶來什么問題呢?
不必對該問題進行深入的研究,MAC地址位于OSI七層模型的第二層。地址解析協(xié)議ARP用于建立IP地址與MAC地址的對應(yīng)關(guān)系,而且在大多數(shù)網(wǎng)絡(luò)設(shè)備上你可以看到已緩存的ARP表。
同一網(wǎng)絡(luò)上的網(wǎng)絡(luò)設(shè)備通過MAC地址進行通信。通信過程是通過在當(dāng)前子網(wǎng)中廣播請求并得到特定設(shè)備的回應(yīng)或者檢查每個ARP表的本地ARP緩存來實現(xiàn)的。在網(wǎng)絡(luò)中進行初始廣播后會生成ARP表,使網(wǎng)絡(luò)通信更為便利。
在Windows服務(wù)器上,你可以在命令行提示符下輸入arp -a命令查看ARP表。
在使用ARP表時,會發(fā)送網(wǎng)絡(luò)流量與IP地址進行匹配而不會進行進一步的檢查。當(dāng)流量在設(shè)備之間來回發(fā)送卻沒有到達目標(biāo)設(shè)備時可能會導(dǎo)致網(wǎng)絡(luò)環(huán)路以及網(wǎng)絡(luò)超時。
在Windows下你可以使用ipconfig /all命令查看正在使用的MAC地址。
在Hyper-V或者VMware上更改虛擬機MAC地址很容易。在虛擬機屬性對話框中,在硬件選項下的網(wǎng)絡(luò)適配器子項下可以請清晰地看到當(dāng)前的MAC地址。你可以將選項更改為手動(VMware)或動態(tài)(Hyper-V)并為該虛擬機輸入一個不同的MAC地址。
在微軟系統(tǒng)中心虛擬機管理器中查看Hyper-V虛擬機屬性
調(diào)整VMware虛擬機屬性
我建議在同一個網(wǎng)絡(luò)中檢查ARP表以確保你分配的新MAC地址還沒有用到。
請記住你可能需要清除一直存在問題的設(shè)備上(包括交換機和路由器)的ARP緩存。在Windows下,你可以使用arp -d * 命令徹底清空本地緩存。