liujia.biz

 找回密码
 立即注册
搜索
查看: 171|回复: 0

双网卡绑定MAC地址变化测试

[复制链接]

32

主题

35

帖子

173

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
173
发表于 2018-5-6 12:03:44 | 显示全部楼层 |阅读模式
虽然linux的双网卡绑定大家都会做,但是其中一些细小的地方,如:MAC地址的变化,主备网卡是否真的为一主一备?主备网卡都OK的时候会是那块网卡工作?等一些细小切之前很少有人关注的问题进行了一些测试。
为做测试,在VM上建立了一台redhat6的主机,并分配给它双网卡,双网卡绑定又为网卡聚合,操作如下(适用于redhat 6
1.确保系统中可以看到两块要做绑定的网卡(ifconfig -a),此时两块网卡ip、掩码、网关是什么都不重要,下面都会清空,只要能看到就好。
2./etc/sysconfig/network-scripts/目录下建立ifcfg-bond0文件,文件内容如下:
DEVICE=bond0
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
IPADDR=10.6.11.25              //你所设置的聚合后的IP
NETMASK=255.255.254.0      //子网掩码
GATEWAY=10.6.10.192         //网关
TYPE=UnKnown
BONDING_OPTS="miimon=1000mode=1"          //1模式为主备模式active-backup0模式为负载模式rond-robin
3.然后分别修改ifcfg-eth0ifcfg-eth1文件,如下:
DEVICE="eth0"
ONBOOT="yes"
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
在把ifcfg-eth1文件修改如下
DEVICE="eth1"
ONBOOT="yes"
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
USERCTL=no
4./etc/modprobe.d/目录下建立bonding.conf文件文件内容如下
alias bond0 bonding
options bond0 miimon=1000 mode=1
5.执行modprobe bonding            //加载bond模块此时可能会和主机ssh断开连接需要使用KVM再次连接执行步骤6
6.然后重启网络service network restart    //至此双网卡聚合绑定已经全部做完注意开机自启也要做。
加入到开机自启,如果不添加到开机自启,系统重新启动后双网卡会失效               
/etc/rc.d/rc.local文件中加入如下语句,使得系统启动自动运行                          
ifenslave bond0 eth0 eth1                                                      
route add -net 10.6.10.192 netmask 255.255.254.0  bond0  //如有需要才加该路由        
网卡绑定解除:                                                
删除ifcfg-bond0,和删除/etc/modprobe.d/bonding.conf              
修改ifcfg-eth0ifcfg-eth0为绑定之前的样子                        
rmmod bonding很重要                                 
service network restart                                      
一些关于双网卡的常识
假设两块网卡的MAC地址分别为可以使用命令看到 cat /proc/net/bonding/bond0
eth0 00:50:56:b0:64:18
eth1 00:50:56:b0:7f:a9
但在ifconfig -a命令下看到的bond0eth0eth1三块网卡的MAC地址均应该为00:50:56:b0:64:18
此时无论我们将哪块网卡down掉,bondMAC地址都不会变,永远为00:50:56:b0:64:18,这是双网卡聚合特性,如果MAC改变了会对连接到此主机的其它设备带来未知的风险。
另外,测试发现eth0eth1其实应该并不分主次,也就是说谁现在是UP状态,并使用谁就是主。如果现在eth0在工作,我将eth0网卡down掉后毫无疑问eth1会顶替工作,但是我再将eth0网卡up起来后,发现依然还是eth1再继续工作,除非eth1down掉才会切回eth0
命令
# ifconfig eth0 down                                                //down掉网卡0              
# ifconfig eth0 up                                             //启动网卡0            
# cat /proc/net/bonding/bond0                                        //查看bond信息如下     
Ethernet Channel Bonding Driver:v3.6.0 (September 26, 2009)
Bonding Mode: fault-tolerance(active-backup)
Primary Slave: None
Currently Active Slave: eth1    //这里说明此时eth1网卡正在工作
MII Status: up
MII Polling Interval (ms): 1000      //这里说明bond1000毫秒检测一下链路如果eth1出现故障了立即切换到eth0
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up               //这里说明eth0网卡此时处于up状态
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 2
Permanent HW addr: 00:50:56:b0:64:18              //eth0网卡的物理MAC地址
Slave queue ID: 0
Slave Interface: eth1
MII Status: up               //这里说明eth1网卡此时处于up状态
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 00:50:56:b0:7f:a9        //eth1网卡的物理MAC地址
Slave queue ID: 0
# ifconfig -a                                //查看IP信息我们会看到bond0eth0eth1三块网卡MAC相同
bond0     Link encap:Ethernet  HWaddr 00:50:56:B0:64:18
          inet addr:10.6.11.25  Bcast:10.6.11.255  Mask:255.255.254.0
          inet6 addr:fe80::250:56ff:feb0:6418/64 Scope: Link
          UP BROADCAST RUNNING MASTERMULTICAST  MTU:1500  Metric:1
          RX packets:19072 errors:0 dropped:0overruns:0 frame:0
          TX packets:973 errors:0 dropped:0overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:1196122 (1.1 MiB)  TX bytes:73430 (71.7 KiB)
eth0      Link encap:Ethernet  HWaddr 00:50:56:B0:64:18
          UP BROADCAST RUNNING SLAVEMULTICAST  MTU:1500  Metric:1
          RX packets:9345 errors:0 dropped:0 overruns:0frame:0
          TX packets:0 errors:0 dropped:0overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:585332 (571.6 KiB)  TX bytes:0 (0.0 b)
eth1      Link encap:Ethernet  HWaddr 00:50:56:B0:64:18
          UP BROADCAST RUNNING SLAVEMULTICAST  MTU:1500  Metric:1
          RX packets:9729 errors:0 dropped:0overruns:0 frame:0
          TX packets:973 errors:0 dropped:0overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:610922 (596.6 KiB)  TX bytes:73430 (71.7 KiB)
lo        Link encap: Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536 Metric:1
          RX packets:0 errors:0 dropped:0overruns:0 frame:0
          TX packets:0 errors:0 dropped:0overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
# modprobe bonding            //装载bonding模块               
# service network restart              //重启网络服务,并确认bond0正确启动   

海量数据工程师 liujia1@vastdata.com.cn

个人日志论坛,没有对外开放注册,如果错误或求助请联系微信hxylj_14461
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|liujia.biz

GMT+8, 2018-11-16 18:31 , Processed in 0.103815 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表