1、Linux 双网卡绑定 绑定(bond)是由多个网卡组合成的一个单一的、由软件定义的网络设备。因为一个绑定是由多个网卡组成的,因此它可以提供比单一网卡更高的网络传输速度,并提供了更好的网络容错功能(绑定只有在所有的网卡都出现问题时才会停止工作)。但是,绑定设备有一个限制:绑定必须由相同型号的网卡组成。绑定设备的数据包传输算法是由绑定的模式所决定的。注意:模式 1、2、3 和 4 支持虚拟机网络(使用网桥)和非虚拟机网络(无网桥);模式 0、5 和 6 只支持非虚拟机网络(无网桥)。绑定模式 Red Hat Virtualization 使用 Mode 4 作为默认的模式,它同时也支持以下绑定模
2、式:模式 0(round-robin policy)传输的数据包会顺序使用网卡。它会首先使用绑定中的第一个有效的网卡,最后使用最后一个网卡。模式 0 提供了网络容错和网络负载均衡的功能,但它不能和网桥一起使用,因此与虚拟机逻辑网络不兼容。模式 1(active-backup policy)绑定中的一个网络接口被设置为活跃接口来处理网络数据,其它网络接口都为备份接口。如果活跃接口出现了问题,备份接口中的一个网络接口会成为活跃接口来继续处理网络数据。使用模式 1 的绑定设备的 MAC 地址只在一个端口上可见,这可以避免因为切换活跃接口所造成的 MAC 地址改变所带来的混淆。模式 1 提供了网络容错
3、的功能。模式 2(XOR policy)模式 2(XOR policy)会对源和目标 MAC 地址进行 XOR 操作,所获得的结果再对“次要网卡”的数量进行取模。系统会根据最后所获得的结果来选择用来传输数据包的接口。它保证了对于每个目标 MAC 地址,相同的接口都会被选择。模式 2 提供了容错和负载均衡的功能。模式 3(broadcast policy)使用绑定中的所有网卡来传输数据包。它提供了网络容错的功能。模式 4(IEEE 802.3ad policy)模式 4(IEEE 802.3ad policy)会创建一个整合的组,这个组会共享网速和网络双工(duplex)设置。模式 4 会根据
4、IEEE 802.3ad 标准使用活动组中的所有网络接口。模式 5(adaptive transmit load balancing policy)模式 5 保证所有出站的网络流量会根据每个接口的负载进行分配,而所有入站的网络流量都被当前的接口所接收。如果用来接收网络流量的接口出现故障,另外一个网络接口会被指定来接收网络流量。因为模式 5 不能和网桥一起使用,所以它与虚拟机网络不兼容。模式 6(adaptive load balancing policy)Mode 5 的功能再加上不需要特殊的网络交换要求的 IPv4 网络数据接收负载均衡功能。它在处理接收负载时使用 ARP。因为模式 6 不能
5、与网桥一起使用,所以它与虚拟机逻辑网络不兼容。1.搭建测试环境搭建测试环境 环境:redhat6.4 Kernels 2.4.12 及以后的版本均供 bonding 模块,以前的版本可以通过 patch 实现。可以通过以下命令确定内核是否支持 bonding:rootnode5#cat/boot/config-2.6.32-358.el6.x86_64|grep-i bonding CONFIG_BONDING=m#CONFIG_BONDING=m 表示支持 bonding 相关参数详解:HOTPLUG=no 代表该设备不允许热插拔 USERCTL=no 代表不允许非 root 用户进行更改设
6、置 SLAVE=yes 表示将两块网卡附属于 bond0 MASTER=bond0 将两块网卡绑定在 bond0 这块逻辑网卡上 2.配置网卡配置网卡 rootnode5 network-scripts#cat ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none ONBOOT=yes MASTER=bond0 HOTLUG=no SLAVE=yes rootnode5 network-scripts#cat ifcfg-eth1 DEVICE=eth1 BOOTPROTO=none ONBOOT=yes MASTER=bond0 HOTLUG=no SLAVE=yes
7、rootnode5 network-scripts#cat ifcfg-bond0 DEVICE=bond0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.2.200 NETMASK=255.255.255.0 HOTPLUG=no USERCTL=no 3.加载加载 bonding 模块模块 rootnode5#vim/etc/modprobe.d/dist.conf#default modutils aliases alias binfmt-204 binfmt_aout alias binfmt-263 binfmt_aout alias binf
8、mt-264 binfmt_aout alias irda-dongle-5 litelink alias irda-dongle-6 airport install snd-emu10k1/sbin/modprobe-ignore-install snd-emu10k1&/sbin/modprobe snd-emu10k1-synth alias gre0 ip_gre alias char-major-89-*i2c-dev alias bond0 bonding options bond0 mode=1 miimon=100 在该配置文件末尾添加标红字体 释义 miimon 是用来进行链
9、路监测的。比如:miimon=100,那么系统每 100ms 监测一次链路连接状态,如果有一条线路不通就转入另一条线路。4.将将 bond0 设置为开机自动加载设置为开机自动加载#vim/etc/rc.local ifenslave bond0 eth0 eth1 文件末尾添加此。加载 bond module 5.结果验证结果验证 网卡重新启动:#/etc/init.d/network restart 此时发现设置的绑定已经生效,但可能会出现 mode 模式不对的情况。此时需要将设备重启,即可正确显示绑定模式。方法一:查看 bond0 与 eth0/1 的 mac 地址是否一致:rootnod
10、e5#ifconfig eth0|grep eth0 eth0 Link encap:Ethernet HWaddr 00:0C:29:B5:A1:F6 rootnode5#ifconfig eth1|grep eth1 eth1 Link encap:Ethernet HWaddr 00:0C:29:B5:A1:F6 rootnode5#ifconfig bond0|grep bond0 bond0 Link encap:Ethernet HWaddr 00:0C:29:B5:A1:F6 方法二:rootnode5#cat/proc/net/bonding/bond0 Ethernet Ch
11、annel Bonding Driver:v3.6.0(September 26,2009)Bonding Mode:fault-tolerance(active-backup)Primary Slave:None Currently Active Slave:eth0 当前正在使用的网卡 MII Status:up MII Polling Interval(ms):100 Up Delay(ms):0 Down Delay(ms):0 Slave Interface:eth0 MII Status:up Speed:1000 Mbps Duplex:full Link Failure Cou
12、nt:0 Permanent HW addr:00:0c:29:b5:a1:f6 Slave queue ID:0 Slave Interface:eth1 MII Status:up Speed:1000 Mbps Duplex:full Link Failure Count:0 Permanent HW addr:00:0c:29:b5:a1:00 Slave queue ID:0 将 eth0 网卡 down 后:rootnode5#cat/proc/net/bonding/bond0 Ethernet Channel Bonding Driver:v3.6.0(September 26
13、,2009)Bonding Mode:fault-tolerance(active-backup)(fail_over_mac active)Primary Slave:None Currently Active Slave:eth1 当前正在使用的网卡 MII Status:up MII Polling Interval(ms):100 Up Delay(ms):0 Down Delay(ms):0 Slave Interface:eth0 MII Status:down Speed:1000 Mbps Duplex:full Link Failure Count:1 Permanent H
14、W addr:00:0c:29:b5:a1:f6 Slave queue ID:0 Slave Interface:eth1 MII Status:up Speed:1000 Mbps Duplex:full Link Failure Count:0 Permanent HW addr:00:0c:29:b5:a1:00 Slave queue ID:0 注意:该实验在 vmware workstation 下操作时候,会出现如下的提示:bond0 也能正常使用,但 ifconfig eth0 down 后就会出现网络不通的现象。通过下面的更改会解决这个问题。内核文档中有说明:bond0获取m
15、ac地址有两种方式,一种是从第一个活跃网卡中获取mac地址,然后其余的SLAVE网卡的mac地址都使用该mac地址;另一种是使用fail_over_mac参数,是bond0使用当前活跃网卡的mac地址,mac地址或者活跃网卡的转换而变。既然vmware workstation不支持第一种获取mac地址的方式,那么可以使用fail_over_mac=1参数,所以这里我们添加fail_over_mac=1参数 -摘自网络#vim/etc/modprobe.d/dist.conf alias bond0 bonding options bond0 miimon=100 mode=1 fail_over_mac=1#更改配置后,active-backup 的效果就实现了。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1