Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作
mode=0 表示负载均衡方式,两块网卡都工作
mode=1:自动备援模式,提供冗余,其中一条线若断线,其他线路将会自动备援。
mode=2:(balance-xor) XOR policy(平衡策略),基于指定的传输HASH策略传输数据包
mode=3广播容错,一个报文会复制两份往bond下的两个接口分别发送出去
mode=0 负载均衡:
特点:(1)所有链路处于负载均衡状态,轮询方式往每条链路发送报文,基于per packet方式发送。服务上ping 一个相同地址:1.1.1.1 双网卡的两个网卡都有流量发出。负载到两条链路上,说明是基于per packet方式 ,进行轮询发送。(2)这模式的特点增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上。
1.使用命令”modinfo bonding “查看系统内核是否支持bonding
2.网卡的配置文件位置:/etc/sysconfig/network-scripts/,每个文件对应一个网卡
3.eth0 和eth1 绑定后,成为一个新的网卡,名字为ifcfg-bond0,所以在该目录下新建文件ifcfg-bond0,最好复制现有的网卡文件。
4.编辑ifcfg-bond0文件
5.编辑ifcfg-eth0网卡,由于要实现负载均衡,eth0和eth1要同时工作,所以要指明主网卡为bond0,eth0和eth1都为slave。(HDADDR可写,可不写)
6 编辑ifcfg-eth1网卡。(HDADDR可写,可不写)
7.修改/etc/modprobe.conf 文件加入如下两行
8.将绑定加入开机脚本。即,将ifenslave bond0 eth0 eth1加入/etc/rc.d/rc.local
9.重启系统后 ,查看bond0的工作状态:cat /proc/net/bonding/bond0
10.测试负载均衡模式bond0的工作情况。在mode=0的模式下,两块物理网卡要同时工作,且流量在两网卡之间切换。如果此时一块网卡网线被拔出,则bond0将不能工作。
拔出eth0的网线
此时将不能ping通bond0
再次接通eth0,又能重新裂连接成功
mode=1 冗余:
模式的特点:一个端口处于主状态 ,一个处于从状态,所有流量都在主链路上处理,从不会有任何流量。当主端口down掉时,从端口接手主状态。
1.使用命令”modinfo bonding “查看系统内核是否支持bonding
2.网卡的配置文件位置:/etc/sysconfig/network-scripts/,每个文件对应一个网卡
3.eth0 和eth1 绑定后,成为一个新的网卡,名字为ifcfg-bond0,所以在该目录下新建文件ifcfg-bond0,最好复制现有的网卡文件。
4.编辑ifcfg-bond0文件
5.编辑ifcfg-eth0网卡
6 编辑ifcfg-eth1网卡。(HDADDR可写,可不写)
7.修改/etc/modprobe.conf 文件加入如下两行
8.将绑定加入开机脚本。即,将ifenslave bond0 eth0 eth1加入/etc/rc.d/rc.local
9.重启系统后 ,查看bond0的工作状态:cat /proc/net/bonding/bond0
10.拔掉eth0接口网线,将自动切换到eth1接口上。
mode=2 负载均衡(xor):
特点:该模式将限定流量,以保证到达特定对端的流量总是从同一个接口上发出。既然目的地是通过MAC地址来决定的,因此该模式在“本地”网络配置下可以工作得很好。如果所有流量是通过单个路由器(比如 “网关”型网络配置,只有一个网关时,源和目标mac都固定了,那么这个算法算出的线路就一直是同一条,那么这种模式就没有多少意义了。),那该模式就不是最好的选择。和balance-rr一样,交换机端口需要能配置为“port channel”。这模式是通过源和目标mac做hash因子来做xor算法来选路的。
[root@localhost ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.0.3 (March 23, 2006)
Bonding Mode: load balancing (xor) ――配置为xor模式
Transmit Hash Policy: layer2 (0)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:d0:f8:40:f1:a0
Slave Interface: eth2
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:d0:f8:00:0c:0c
mode=3广播容错:
特点:这种模式的特点是一个报文会复制两份往bond下的两个接口分别发送出去,当有对端交换机失效,我们感觉不到任何downtime,但此法过于浪费资源;不过这种模式有很好的容错机制。此模式适用于金融行业,因为他们需要高可靠性的网络,不允许出现任何问题。
root@ubuntu12:~/ram# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)
Bonding Mode: fault-tolerance (broadcast) ――- fault-tolerance 模式
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 74:ea:3a:6a:54:e3
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: d8:5d:4c:71:f9:94