Chinaunix首页 | 论坛 | 博客
  • 博客访问: 545408
  • 博文数量: 105
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 1132
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-15 09:57
文章分类

全部博文(105)

文章存档

2011年(1)

2009年(41)

2008年(63)

我的朋友

分类: LINUX

2008-11-10 09:30:23

  在一次实践过程中,发现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) |
给主人留下些什么吧!~~