Linux_多網卡識別順序邦定

來源:互聯網
上載者:User

使用linux系統時會出現這樣的情況,當你安裝了某個網卡的驅動程式時,或者安裝了與網卡相關的程式後。
 
網卡會出現所謂的漂移現象。(注意:不是飄逸)。可能的表象為:
 
(1):網卡順序顛倒,比如之前你的網線串連的網口為eth0,當安裝某個網卡的驅動後,可能它的名字變為eth0或者eth3,等等情況。
 
(2):網卡名字改變,這種情況倒不是eth0到eth1的改變,而是很詭異的變化,比如eth0找不到了,多了個網卡名字叫 __tmp3183921382193__
 
這個確實讓人很惱火。因為有人可能會通過ifconfig | grep eth來擷取資訊從而完成一些開發工作,如果網卡名字變得烏七八糟了,程式肯定會出錯。
 
(3):光口網卡和電口網卡順序亂了,或者交叉。
 
總之我們的目的就是:能夠指定某個網卡的名字為我們想要的物理裝置。做法如下:
 
第一步,識別誰是誰。
 
要使用網卡,首現要知道哪個名字對應的哪個物理裝置,做法為:從交換器拉一根網線,從上到下挨個接到網卡上面,注意每次只能接一個網卡,接上後通過ethtool命令來查看是否連著網線,比如
 
[root@AS5 ~]# ethtool eth0
Settings for eth0:
Supported ports: [ MII ]
Supported link modes:   10baseT/Half 10baseT/Full
                         100baseT/Half 100baseT/Full
                         1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes:  10baseT/Half 10baseT/Full
                         100baseT/Half 100baseT/Full
                         1000baseT/Full
Advertised auto-negotiation: Yes
Speed: 100Mb/s
Duplex: Full
Port: MII
PHYAD: 2
Transceiver: external
Auto-negotiation: on
Supports Wake-on: g
Wake-on: d
Link detected: yes
 
看到了eth0的狀態為串連著網線。如果Linked detected:no,則說明沒有串連網線。
 
如此區分開哪個裝置的名字是什麼,標註好。
 
第二步:擷取每個網卡的MAC地址
 
ifconfig -a能看到所有網路裝置。
 
通過 ifconfig -a | grep HWaddr 來擷取每個裝置的MAC地址。
 
比如:
 
[root@AS5 ~]# ifconfig  -a | grep HWaddr
eth0      Link encap:Ethernet  HWaddr 00:30:48:7F:B5:CA
eth1      Link encap:Ethernet  HWaddr 00:30:48:7F:B5:CB
eth2      Link encap:Ethernet  HWaddr 00:04:23:A6:81:E0
eth3      Link encap:Ethernet  HWaddr 00:04:23:A6:81:E1
 
拿到了每個網卡的MAC地址。
 
第三步:進行MAC和網卡名稱綁定。
 
我們都知道,對於RedHat的系統,網路的設定檔在:/etc/sysconfig/network-scripts/ifcfg-ethX
 
中存著,N=0,1,2。。。
 
比如:root@AS5 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# nVidia Corporation MCP55 Ethernet
DEVICE=eth0
ONBOOT=yes
HWADDR=00:30:48:7f:b5:ca
TYPE=Ethernet
NETMASK=255.255.255.0
IPADDR=192.168.42.231
GATEWAY=192.168.42.1
BOOTPROTO=static
#NAMESERVER=202.106.0.20
 
這個檔案是對網卡進行初始化的設定檔。
 
比如如果我們想指定網卡MAC地址為MAC1的裝置名稱為ethn,那麼,修改檔案
 
/etc/sysconfig/network-scripts/ifcfg-ethn
 
在裡面添加MAC地址綁定和名字的配置資訊
 
DEVICE=ethn
 
HWADDR=MAC1(比如00:30:48:7f:b5:ca)
 
其它配置資訊不受影響。
 
當對所有網卡實現綁定後,reboot系統,應該就可以了。
 
還有一點需要注意,就是驅動對應關係的檔案:
 
/etc/modprobe.conf
 
要在該檔案中修改,確保某個裝置使用的就是對應它的驅動,比如:
 
cat /etc/modprobe.conf
alias eth0 forcedeth
alias eth1 forcedeth
alias scsi_hostadapter aic79xx
alias scsi_hostadapter1 sata_nv
alias scsi_hostadapter2 usb-storage
alias eth2 e1000
alias eth3 e1000
 
說明eth0和eth1用的forcedeth的驅動,eth2和eth3用的是e1000的驅動。
 
 
 
 
解決方案:
 
cd /etc/udev/rules.d
 
找到60-net.rules,備份該檔案
 
mv 60-net.rules 60-net.rules.bak
 
建立檔案60-net.rules,內容如下:
 
[root@localhost rules.d]# cat 60-net.rules
 
SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="你自己的網卡1的mac地址",
 
IMPORT="/lib/udev/rename_device %k eth0"
 
SUBSYSTEM=="net", ACTION=="add", SYSFS{address}=="你自己的網卡2的mac地址",
 
IMPORT="/lib/udev/rename_device %k eth1"
 
其中需要注意的是,你要將你自己的網卡的mac地址做相應的更改。
 
重啟電腦,一切ok。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.