liujia.biz

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

一份自己测试的详细双网卡绑定MAC地址变化

[复制链接]

32

主题

35

帖子

173

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
173
发表于 2018-8-14 19:10:53 | 显示全部楼层 |阅读模式
虽然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-backup,0模式为负载模式rond-robin


3.然后分别修改ifcfg-eth0和ifcfg-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=1000mode=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-eth0和ifcfg-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命令下看到的bond0、eth0、eth1三块网卡的MAC地址均应该为00:50:56:b0:64:18

此时无论我们将哪块网卡down掉,bond的MAC地址都不会变,永远为00:50:56:b0:64:18,这是双网卡聚合特性,如果MAC改变了会对连接到此主机的其它设备带来未知的风险。

另外,测试发现eth0、eth1其实应该并不分主次,也就是说谁现在是UP状态,并使用谁就是主。如果现在eth0在工作,我将eth0网卡down掉后毫无疑问eth1会顶替工作,但是我再将eth0网卡up起来后,发现依然还是eth1再继续工作,除非eth1又down掉才会切回eth0。


命令

# ifconfig eth0 down                                          //down掉网卡0      

# ifconfig eth0 up                                              //启动网卡0            

# cat /proc/net/bonding/bond0                                   //查看bond信息,如下     

Ethernet Channel BondingDriver: 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 //这里说明bond每1000毫秒检测一下链路,如果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信息,我们会看到bond0、eth0、eth1三块网卡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 Scopeink

          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 encapocal 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 17:17 , Processed in 0.109943 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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