虛擬機器的MAC位址分配與修改

2021-07-05 08:07:39 字數 1408 閱讀 7896

虛擬世界的mac位址

先看一下真實世界的mac位址是如何分配,如何保證沒有重複的。

每塊網絡卡都有乙個mac位址,mac位址是乙個6位元組、也即48bit的資料。前3位元組稱為oui ,是由ieee組織註冊給網路裝置生產商的;每個廠商擁有乙個或多個oui,彼此不同。後三位元組則是由網路裝置生產商分配給自己生產的每乙個擁有mac位址的裝置,互不重複。

在vm的世界中,每一台擁有虛擬nic(網絡卡)的裝置當然也擁有mac位址。這虛擬網絡卡的mac位址,當然也是按照規定,前三位元組為oui,後三位元組逐一分配給每個裝置。

由於虛擬網絡卡的」製造商「是vmware,xensource,微軟

等虛擬平台軟體的生產商,oui當然就分配給了他們。

oui有了,後三位元組如何生成呢?要知道虛擬機器是經常被建立和銷毀的,這一點不像實體pc。網絡卡生產商可以計算每年生產多少塊網絡卡,從而為每塊網絡卡分配不同的mac位址; vmware卻不可能計算出每年有多少臺vm、有多少塊虛擬網絡卡被建立。

vmware esx server的演算法是,使用雜湊演算法,通過vm的uuid來生成mac位址。vm的uuid是每一台vm特有的、128bit的id,是由esx server硬體smbios的uuid、加上vm的路徑生成的。因此,一台虛擬機器的虛擬網絡卡的mac位址就與下面四個因素有關:

mac位址一旦生成,就不會再有變化,除非上面所述的四項因素發生改變(最可能發生的就是第三項,vm在伺服器上的路徑改變)。

儘管如此,由於雜湊演算法本身的特徵,還是有萬一發生mac位址衝突的可能(可能性極小,和年末ジャンボ中頭彩的機率差不多)。esx server會不斷跟蹤和檢測執行中和掛起(suspend)的vm,以保證沒有mac位址衝突。但是已經關閉電源的vm是不在檢查物件之內的。

因此,萬一一台vm啟動時esx檢測到mac位址衝突,它會分配給vm的虛擬網絡卡乙個新的mac位址。所以從這個意義上說,vm的mac位址是可能發生變化的——只是這個概率實在太小。

手動指定mac位址僅用於一些極其特殊的情況,通常是進行p2v的時候。例如,某物理伺服器上的軟體,其license已經與該伺服器的mac位址 繫結,如果mac位址改變則軟體無法執行;再如,某些底層網路軟體以mac位址來鑑別機器時,為了不做更改能夠繼續使用,在p2v的時候也要手動指定 mac位址。

開啟乙個vm的.vmx檔案,可以看到如下設定:(如果有多塊nic的話,那麼就會有ethernet0、ethernet1、ethernet2……)

ethernet0.addresstype = "generated"

ethernet0.generatedaddress = "00:0c:29:9b:fb:18"

ethernet0.addresstype = "static"

ethernet0.address = "00:50:56:00:00:01"

其中的00:50:56:00:00:01就是手動指定的mac位址。

vmware esx 虛擬機器MAC 位址修改

先看一下真實世界的mac位址是如何分配,如何保證沒有重複的。每塊網絡卡都有乙個mac位址,mac位址是乙個6位元組 也即48bit的資料。前3位元組稱為oui 是由ieee組織註冊給網路裝置生產商的 每個廠商擁有乙個或多個oui,彼此不同。後三位元組則是由網路裝置生產商分配給自己生產的每乙個擁有ma...

虛擬機器轉殖及MAC位址的修改

廢話不多說,下面開始步入正題 一 虛擬機器轉殖 開始轉殖,花費5 10分鐘 看到如下介面,您的虛擬機器就轉殖成功了,二 轉殖後虛擬機器的mac位址的修改 轉殖虛擬機器後,虛擬機器os中還保留了轉殖前的mac位址,導致網絡卡不能被識別.解決方法如下 1 刪除 etc udev rules.d 70 p...

虛擬機器轉殖後MAC位址IP位址修改

虛擬機器轉殖後出現問題 mac位址與ip位址兩個系統都一樣,相衝突 ifconig 只能檢視到eth1位址 網絡卡重啟失敗 環境 centos nat模式 解決辦法 1.關機 手動生成全新mac位址 2.啟動系統 修改實體地址與1.生成位址一致 3.配置檔案修改完畢,刪除70 persistent ...