inux網卡與MAC地址綁定方法總結


 

 

   

使用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的驅動。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM