国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

虛擬機地址參數(shù)鬧沖突

2017-11-23 08:36:26
網(wǎng)絡(luò)安全和信息化 2017年6期
關(guān)鍵詞:配置文件網(wǎng)卡設(shè)置

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

圖1 重啟網(wǎng)絡(luò)服務(wù)后的報錯信息

原因分析

那么為什么這些虛擬機的HWADDR地址都是相同的呢?原來由于需要多臺虛擬服務(wù)器進行測試,筆者為省事就直接對虛擬機文件進行了拷貝,“克隆”了多臺虛擬服務(wù)器,這種做法非常簡單,但克隆出來的各臺虛擬機的配置卻一模一樣,因此造成了各虛擬機的HWADDR地址相同。

解決問題

發(fā)現(xiàn)問題的原因后,接下來就是如何解決問題。原本計劃將各虛擬服務(wù)器的HWADDR地址修改為不同的地址,從而實現(xiàn)各虛擬機的正常通信。筆者認為憑著對Linux系統(tǒng)和虛擬機的幾年操作經(jīng)驗,問題應(yīng)該很容易解決。但實際情況卻并非如此簡單。

首先使用vi編輯器,對其中一臺虛擬服務(wù)器(以下簡稱虛擬機1)的網(wǎng)卡配置 文 件 “/etc/sysconfig/network-scripts/ifcfgeth0”進行了編輯,將文件中的HWADDR的地址值修改為“00:0C:29:10:AC:72”。再 使 用“service network restart”命令,重啟網(wǎng)絡(luò)服務(wù),使配置文件生效。但重啟服務(wù)后出現(xiàn)報錯信息,網(wǎng)卡重啟失敗(如圖1)。

將虛擬機1的系統(tǒng)重啟后,問題依然存在。使用ifconfig命令查看,網(wǎng)卡的HWADDR地址依然顯示為“00:0C:29:10:AC:71”。 但 查看“/etc/sysconfig/networkscripts/ifcfg-eth0”配置文件,HWADDR的值已經(jīng)修改為“00:0C:29:10:AC:72”了。這說明修改沒有起作用,配置沒有生效。

在網(wǎng)上查閱資料后,將“/etc/sysconfig/networkscripts/ifcfg-eth0” 中的HWADDR修改為MACADDR。再次重啟網(wǎng)絡(luò)服務(wù),網(wǎng)絡(luò)啟動正常。使用ifconfig命令查看網(wǎng)絡(luò)情況,發(fā)現(xiàn)回顯的HWADDR已經(jīng)成功改為“00:0C:29:10:AC:72”。 根據(jù)此方法對虛擬機網(wǎng)絡(luò)配置進行修改,經(jīng)測試,虛擬機1與其他虛擬機通信正常,問題已解決。

雖然硬件地址修改的方法已經(jīng)找到。但帶來新的問題:網(wǎng)卡配置文件“ifcfgeth0”中MACADDR是什么?它和HWADDR有什么不同?

實驗檢驗

在互聯(lián)網(wǎng)中,關(guān)于網(wǎng)絡(luò)配置文件“ifcfg-eth0”文件中,在MACADDR和HWADDR參數(shù)的介紹資料很少,無法找到準確的定義。筆者通過開展一系列關(guān)于修改硬件地址的實驗,分析驗證了這兩個參數(shù)的作用和區(qū)別,并通過實驗對Linux操作系統(tǒng)設(shè)備管理知識有了一定的了解。

在以太網(wǎng)中,設(shè)備的網(wǎng)卡提供接口以保證設(shè)備能夠接入網(wǎng)絡(luò)實現(xiàn)通信,每塊網(wǎng)卡都有一個MAC地址(物理地址),該地址采用十六進制數(shù),以“AA:BB:CC:DD:EE:FF”的形式表示,是以太網(wǎng)設(shè)備的硬件地址。每塊網(wǎng)卡的MAC地址是惟一的地址。在名為“ifcfg-eth0”的網(wǎng)絡(luò)配置文件中,不論是MACADDR或HWADDR參數(shù),都是用來表示網(wǎng)卡的硬件地址的(這兩個參數(shù)不能同時使用),但這兩個參數(shù)有較大的區(qū)別。

1.MACADDR參數(shù)

MACADDR參數(shù)的作用比較容易得出結(jié)論,之前集群測試問題的解決,就可以當(dāng)做一次實驗,并可以得出結(jié)論。之前問題解決過 程 中,“ifcfg-eth0” 文件 中,MACADDR參 數(shù) 的 被設(shè)置了新的網(wǎng)卡硬件地址“00:0C:29:10:AC:72”,重啟網(wǎng)絡(luò)后,該配置即生效。

由 于 新MAC地 址“00:0C:29:10:AC:72”是筆者自己編造的地址,因此可以得出以下結(jié)論:當(dāng)系統(tǒng)網(wǎng)絡(luò)配置文件使用MACADDR參數(shù)時,系統(tǒng)中網(wǎng)卡的硬件地址以MACADDR設(shè)置的值為準。通過這個參數(shù),Linux系統(tǒng)中可以設(shè)置一個與網(wǎng)卡實際MAC地址不一致的物理。在虛擬機環(huán)境,這種設(shè)置方法是有效的。

2.HWADDR參數(shù)

如之前例中所述,在“ifcfg-eth0” 文 件 中,直接將HWADDR改為“00:0C:29:10:AC:72”是無效的。那么HWADDR是否代表設(shè)備網(wǎng)卡自身的物理地址呢?這個想法,可以通過將系統(tǒng)中兩塊網(wǎng)卡的MAC地址進行互換設(shè)置的實驗進行驗證。即,兩塊網(wǎng)卡的物理地址能否通過網(wǎng)絡(luò)配置文件中HWADDR參數(shù)進行交換設(shè)置,如果交換設(shè)置MAC地址,網(wǎng)卡配置能夠順利啟動,則可證明HWADDR參數(shù)即網(wǎng)卡的物理地址。

在虛擬機1中,再新增加1塊網(wǎng)卡。這塊新增網(wǎng)卡會被虛擬機分配一個虛擬的硬件地 址“00:0C:29:4A:40:F4”。即虛擬機1中,現(xiàn)在有兩塊實際存在的網(wǎng)卡,其第一塊網(wǎng)卡(簡稱為網(wǎng)卡1)的MAC地址 為“00:0C:29:10:AC:71”,第二塊新增網(wǎng)卡(簡稱為網(wǎng)卡2)的MAC地址為“00:0C:29:4A:40:F4”。通過“ifconfig”命令查看網(wǎng)卡的情況,目前網(wǎng)卡1對應(yīng)為設(shè)備名eth0,網(wǎng)卡2對應(yīng)為設(shè)備名eth1。 在/etc/sysconfig/network-scripts/中新建網(wǎng)卡2的配置文件ifcfgeth1,配置MAC地址和IP地址。重啟網(wǎng)絡(luò)服務(wù)“service network restart”,網(wǎng)卡啟動正常。

編 輯ifcfg-eth0和ifcfg-eth1文 件, 將ifcfg-eth0中的HWADDR由“00:0C:29:10:AC:71”修改為“00:0C:29:4A:40:F4”。ifcfg-eth1中的HWADDR由“00:0C:29:4A:40:F4”修改為“00:0C:29:10:AC:71”。完成編輯后,再重啟網(wǎng)絡(luò)服務(wù),但網(wǎng)卡啟動失敗。

難道只能網(wǎng)卡1固定對應(yīng)設(shè)備名eth0,網(wǎng)卡2固定對應(yīng)設(shè)備eth1,無法做到雙網(wǎng)卡HWADDR值的交換修改配置?這顯然與Linux系統(tǒng)的開源精神是不符合的。經(jīng)過查閱資料,發(fā)現(xiàn)還需修改/etc/udev/rules.d/70-persistentnet.rules文件,將文件中的 NAME=”eth0”所在行的ATTR{address}數(shù)值調(diào)整為“00:0C:29:4A:40:F4”, 將文件中的 NAME=”eth1”所在行的ATTR{address}數(shù)值調(diào)整為“00:0C:29:10:AC:71”(如圖2)。重啟操作系統(tǒng)(修改“70-persistent-net.rules”文件需重啟系統(tǒng)),網(wǎng)卡啟動正常,兩塊HWADDR的HWADDR值已順利交換。

圖 2“70-persistent-net.rules”文件

由此可以得出結(jié)論,HWADDR必須配置網(wǎng)卡的物理地址,該地址是無法隨意修改的。在多網(wǎng)卡情況下,可以通過調(diào)整網(wǎng)絡(luò)配置文件和“70-persistent-net.rules”文件,在系統(tǒng)中修改設(shè)置網(wǎng)卡與設(shè)備名的對應(yīng)關(guān)系。通過以上的實驗帶來了新的問題:“70-persistent-net.rules”文件的作用是什么?

3.70-persistent-net.rules文件

“70-persistent-net.rules” 位 于/etc/udev/rules.d目錄下。通過查閱資料,可以了解到該文件的相關(guān)信息。Linux 傳統(tǒng)上使用靜態(tài)設(shè)備創(chuàng)建方法,因此大量設(shè)備節(jié)點在 /dev 下創(chuàng)建(有時上千個),而不管相應(yīng)的硬件設(shè)備是否真正存在。而udev是Linux kernel 2.6系列的設(shè)備管理器,它主要的功能是管理/dev目錄底下的設(shè)備節(jié)點。采用udev的方法,只有被內(nèi)核檢測到的設(shè)備才會獲取為它們創(chuàng)建的設(shè)備節(jié)點。因為,這些設(shè)備節(jié)點在每次系統(tǒng)啟動時被創(chuàng)建,它們會被貯存在ramfs(一個內(nèi)存中的文件系統(tǒng),不占用任何磁盤空間)。udev能通過定義一個 udev規(guī)則(rule)來產(chǎn)生匹配設(shè)備屬性的設(shè)備文件,“70-persistent-net.rules”就是網(wǎng)絡(luò)設(shè)備的udev 規(guī)則。

那 么 通 過“70-persistent-net.rules”文件可以修改硬件地址嗎?之前做實驗的虛擬機1有兩塊網(wǎng)卡,在“70-persistentnet.rules”文件中有兩行設(shè)備信息,一行NAME=”eth0”,另 一 行 NAME=”eth1”。 筆者 將 NAME=”eth0” 所 在行 的ATTR{address}值 由“00:0C:29:10:AC:71”改 為“00:0C:29:10:AC:72”,并 在ifcfg-eth0中將HWADDR的值也對應(yīng)修改,重啟電腦后,該修改不能生效。

查 看“70-persistentnet.rules”, 重 啟 前 的NAME=”eth0”和NAME=”eth1”的兩行信息還在。但新增 了 一 行 NAME=”eth2”,行中ATTR{address}值為“00:0C:29:10:AC:71”。說明“70-persistent-net.rules”文件的新增內(nèi)容,是根據(jù)系統(tǒng)重啟動時,內(nèi)核檢測到的相關(guān)網(wǎng)絡(luò)設(shè)備信息而添加。重啟前將文件進行了修改,重啟時系統(tǒng)內(nèi)核檢測到了正確的網(wǎng)卡信息,于是在該文件中增加了一行檢測到的網(wǎng)卡信息。

實驗結(jié)論

根據(jù)之前的實驗可以得到以下結(jié)論:

MACADDR參數(shù)是用于給一個網(wǎng)絡(luò)接口卡分配一個MAC地址,并覆蓋物理分配的MAC地址。即,當(dāng)系統(tǒng)網(wǎng)絡(luò)配置文件使用MACADDR參數(shù)時,系統(tǒng)中網(wǎng)卡的硬件地址以MACADDR設(shè)置的值為準。通過這個參數(shù),Linux系統(tǒng)中可以設(shè)置一個與網(wǎng)卡實際MAC地址不一致的物理。在虛擬機環(huán)境,這種設(shè)置方法是有效的。

HWADDR參數(shù)即網(wǎng)卡的物理地址,在網(wǎng)絡(luò)配置中,用于保證網(wǎng)絡(luò)接口卡通過網(wǎng)絡(luò)配置文件分配給正確的設(shè)備,該配置必須與“70-persistent-net.rules”文件中的配置保持一致,特別是對于多網(wǎng)卡配置的情況下。

Linux系統(tǒng)通過udev設(shè)備管理器進行設(shè)備管理?!?0-persistent-net.rules”是udev設(shè)備管理器中網(wǎng)絡(luò)設(shè)備的規(guī)則文件。通過該文件可以設(shè)置物理網(wǎng)卡與設(shè)備名稱的對應(yīng)關(guān)系。而“/etc/sysconfig/networkscripts”下的網(wǎng)絡(luò)配置文件“ifcfg-eth*”主要是針對網(wǎng)卡參數(shù)的配置。一般情況下,網(wǎng)卡相關(guān)參數(shù)的配置應(yīng)該與設(shè)備管理器中的參數(shù)相一致。

經(jīng)驗總結(jié)

筆者已經(jīng)使用Linux操作系統(tǒng)很多年,自己感覺已經(jīng)對于Linux操作系統(tǒng)網(wǎng)絡(luò)配置已經(jīng)非常熟悉。但近期在維護測試工作中,因硬件地址配置問題造成了的網(wǎng)絡(luò)不通,根據(jù)實驗研究驗證了網(wǎng)絡(luò)配置文件中的MACADDR和HWADDR原來有著很大的不同,也學(xué)習(xí)到了Linux系統(tǒng)中設(shè)備管理相關(guān)的知識。筆者在以往的維護工作中,只注重問題是否解決,忽略了對于基礎(chǔ)知識的探究。學(xué)無止境,只有通過不斷學(xué)習(xí),才能更好地提升自己。

猜你喜歡
配置文件網(wǎng)卡設(shè)置
在DDS 中間件上實現(xiàn)雙冗余網(wǎng)卡切換的方法
提示用戶配置文件錯誤 這樣解決
中隊崗位該如何設(shè)置
少先隊活動(2021年4期)2021-07-23 01:46:22
搭建簡單的Kubernetes集群
互不干涉混用Chromium Edge
Server 2016網(wǎng)卡組合模式
忘記ESXi主機root密碼怎么辦
本刊欄目設(shè)置說明
中俄臨床醫(yī)學(xué)專業(yè)課程設(shè)置的比較與思考
挑戰(zhàn)Killer網(wǎng)卡Realtek網(wǎng)游專用Dragon網(wǎng)卡
额敏县| 平顶山市| 六安市| 大名县| 桃源县| 新宁县| 远安县| 鸡东县| 昌乐县| 黑山县| 玛纳斯县| 定兴县| 宁南县| 丰县| 林芝县| 铁岭市| 平潭县| 常宁市| 吴旗县| 通道| 壶关县| 建昌县| 大洼县| 长春市| 文水县| 祁连县| 苗栗县| 崇左市| 宁远县| 象州县| 克什克腾旗| 庆安县| 禄丰县| 龙游县| 威远县| 常熟市| 大英县| 沙雅县| 虎林市| 永新县| 安阳市|