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