在一次实践过程中,发现AX3.0上面的多网卡设备号有点奇怪。根据/etc/modprode.conf或是/etc/modules.conf文件中的加载顺序决定网卡设备号。
#cat /etc/modprode.conf | grep eth
alias eth0 bnx2
alias eth1 bnx2
alias eth2 tg3 |
后来发现,在AX3.0上似乎并不是这样的。可能是由于驱动原因(都是相同的网卡),或是有其他原因,机器每次启动后连接网线的设备号都会不同。如果你只在一个网卡上接了网线,那可能这次用eth2可以连接,但下次重启后就变成需要用eth1。没有什么固定的规律。这对服务的稳定性带来很大的影响。如果是在数据库上做了绑定端口的话那麻烦可大了,每次启动都需要修改一堆东西。
不过,既然有问题了,肯定有办法去解决,下面简单介绍一下解决的方法--通过修改网卡的MAC地址,在激活网卡的时候一同绑定就可以了。通过修改配置文件:
# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:D0:F8:38:24:2A
inet addr:192.168.228.155 Bcast:192.168.228.255 Mask:255.255.255.0
inet6 addr: fe80::2d0:f8ff:fe38:242a/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:36460394 errors:0 dropped:0 overruns:0 frame:0
TX packets:30629434 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2936034100 (2.7 GiB) TX bytes:1956782604 (1.8 GiB)
Interrupt:193 Base address:0x4000
# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.228.255
HWADDR=00:D0:F8:38:24:2A
IPADDR=192.168.228.155
IPV6ADDR=
IPV6PREFIX=
NETMASK=255.255.255.0
NETWORK=192.168.228.0
ONBOOT=yes
就是在对应的网络设备,例如 ifcfg-eth0上增加上述红色标记的HWADDR设定即可。
关于配置文件中,HWADDR和MACADDR的不同之处就在于修改过的问题啦,至于如何修改,下面简单介绍一下在linux下如何去修改MAC地址。
在linux下,修改MAC地址有下面两个方法:
第一:使用命令临时修改:
ifconfig eth0 down
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
ifconfig eth0 up |
第二:只要我们保证启动network前修改网卡的MAC地址,确保系统启动后都是使用改指定的MAC地址。修改/etc/rc.d/rc.sysinit,在最后增加:
ifconfig eth0 down
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
ifconfig eth0 up |
第三:通过分析/sbin/ifup脚本,我们可以知道一种最简单的方法,修改/etc/sysconfig/network-scripts/ifcfg-eth0为:
MACADDR=xx:xx:xx:xx:xx:xx |
然后重启network服务即可,也能保证系统重启后依旧使用改MAC地址。
说了这么多修改MAC地址,那么HWADDR和MACADDR有啥区别?
HWADDR=, 其中 以AA:BB:CC:DD:EE:FF形式的以太网设备的硬件地址.在有多个网卡设备的机器上,这个字段是非常有用的,它保证设备接口被分配了正确的设备名,而不考虑每个网卡模块被配置的加载顺序.这个字段不能和MACADDR一起使用.
MACADDR=, 其中 以AA:BB:CC:DD:EE:FF形式的以太网设备的硬件地址.在有多个网卡设备的机器上.这个字段用于给一个接口分配一个MAC地址,覆盖物理分配的MAC地址. 这个字段不能和HWADDR一起使用.
明白HWADDR和MACADDR的不同之处了吧,前者是用来根据HWADDR绑定ethX名称的,后者才是真正用来修改MAC地址的。
一份红帽的参考文档:。还可以看看系统中nameif的man文档。
阅读(1328) | 评论(0) | 转发(0) |