linux 多网卡绑定[优质文档]
12.3 网卡绑定
12.3.1 配置前的准备
以下是服务器中的网卡配置,当中有两个网卡,都是通过DHCP来自动获取IP地址:
1. [root@localhost ~]# ifconfig
2.
3. [root@localhost ~]# cat /etc/sysconfig/network-script/ifcfg-eth0
4. Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
5. DEVICE=eth0
6. BOOTPROTO=dhcp
7. HWADDR=54:52:00:35:f9:a0
8. ONBOOT=yes
9. TYPE=Ethernet
10.
11. [root@localhost ~]# cat /etc/sysconfig/network-script/ifcfg-eth1
12. Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
13. DEVICE=eth1
14. BOOTPROTO=dhcp
15. HWADDR=54:52:00:7a:37:ce
16. ONBOOT=yes
17. TYPE=Ethernet
注意:
当系统中有多个网卡需要进行设置时,建议将网卡的MAC地址与ethX文件中的HWADDR一一对应,否则系统重启后网卡的eth号很可能会发生改变,在设置了网卡绑定的生产系统中,这是非常危险的。
确认系统中已经安装了sysstat包,以便进行bonding测试:
1. [root@localhost ~]# rpm -ivh /mnt/cdrom/
Server/sysstat-7.0.2- 1.el5.x86_64.rpm
2. [root@localhost ~]# rpm -q sysstat
3. sysstat-7.0.2-1.el5
12.3.2 网卡绑定配置
配置驱动模块
修改文件/etc/modprobe.conf,找到:
1. alias eth0 8139cp
2. alias eth1 8139cp
注意:
8139cp为网卡型号。
在此内容后加入:
1. ######## Bonding ##########
2. alias bond0 bonding
3. options bonding max_bonds=1 建立bonding网卡配置
新建文件/etc/sysconfig/network-scripts/ifcfg-bond0,输入以下内容:
1. DEVICE=bond0
2. ONBOOT=yes
3. BOOTPROTO=static
4. IPADDR=192.168.100.21
5. NETMASK=255.255.255.0
6. USERCTL=no
7. BONDING_OPTS="mode=1 miimon=100 primary=eth0"
8. BONDING_OPTS参数解释
此参数用于指定网卡绑定时的属性,以下是对常用参数进行的解释: miimon参数:指定网卡故障时的切换时间间隔以ms为单位。
primary参数:指定默认的主网卡设备。
mode参数:
0 , 轮询模式,所绑定的网卡会针对访问以轮询算法进行平分。 1 , 高可用模式,运行时只使用一个网卡,其余网卡作为备份,在负载不超过单块网卡带宽或压力时建议使用。
2 , 基于HASH算法的负载均衡模式,网卡的分流按照xmit_hash_policy的TCP协议层设置来进行HASH计算分流,使各种不同处理来源的访问都尽量在同一个网卡上进行处理。 3 , 广播模式,所有被绑定的网卡都将得到相同的数据,一般用于十分特殊的网络需求,如需要对两个互相没有连接的交换机发送相同的数据。
4 , 802.3ab负载均衡模式,要求交换机也支持802.3ab模式,理论上服务器及交换机都支持此模式时,
如从1Gbps翻到2Gbps) 网卡带宽最高可以翻倍(
5 , 适配器输出负载均衡模式,输出的数据会通过所有被绑定的网卡输出,接收数据时则只选定其中一块网卡。如果正在用于接收数据的网卡发生故障,则由其他网卡接管,要求所用的网卡及网卡驱动可通过ethtool命令得到speed信息。
6 , 适配器输入/输出负载均衡模式,在"模式5"的基础上,在接收数据的同时实现负载均衡,除要求ethtool命令可得到speed信息外,还要求支持对网卡MAC地址的动态修改功能。 xmit_hash_policy参数(此参数对mode参数中的2、4模式有影响): layer1 , 通过MAC地址进行HASH计算。
计算公式:(MACsrc?MACdest)% Nslave
layer3+4 , 通过TCP及UDP端口及其IP地址进行HASH计算。 计算公式:((portsrc?portdest) ? (IPsrc?IPdest)) % Nslave 注意:
mode参数中的0、2、3、4模式要求交换机支持"ports group"功能并能进行相应的设置,例如在Cisco中要将所连接的端口设为"trunk group"。
选择绑定模式的建议
如果系统流量不超过单个网卡的带宽,请不要选择使用mode 1之外的模式,因为负载均衡需要对流量进行计算,这对系统性能会有所损耗。
建议mode 5、mode 6只在交换机不支持"ports group"的情况下选用。 如果交换机及网卡都确认支持802.3ab,则实现负载均衡时尽量使用mode 4以提高系统性能。
修改被绑定网卡的配置
修改/etc/sysconfig/network-scripts/ifcfg-eth0为:
1. # Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
2. DEVICE=eth0
3. MASTER=bond0
4. SLAVE=yes
5. HWADDR=54:52:00:35:f9:a0
6. ONBOOT=yes
修改/etc/sysconfig/network-scripts/ifcfg-eth1为:
1. # Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+
2. DEVICE=eth1
3. MASTER=bond0
4. SLAVE=yes
5. HWADDR=54:52:00:7a:37:ce
6. ONBOOT=yes
启动网卡绑定设备
导入bonding驱动:
1. [root@localhost ~]# modprobe -i bonding max_bonds=1
2. bonding: Warning: either miimon or arp_interval
and arp_ip_target module parameters must be
specified, otherwise bonding will not detect
link failures! see bonding.txt for details.
此时系统会发出一个警告,意思是bonding驱动要求提供miimon参数或arp_inerval参数与arp_ip_target参数的组合,否则系统将无法检测出网卡设备连接是否失效。由于miimon已经在
/etc/sysconfig/network-scripts/ifcfg-bond0中设定,所以可以不用理会此警告。
重启网络
1. [root@localhost ~]# /etc/init.d/network restart
2. bonding: Warning: either miimon or arp_interval
and arp_ip_target module parameters must b
e specified, otherwise bonding will not detect
link failures! see bonding.txt for details.
3. [root@localhost ~]# cat network
4. Shutting down interface eth0
[ OK ]
5. Shutting down interface eth1
[ OK ]
6. Shutting down loopback interface:
[ OK ]
7. Bringing up loopback interface:
[ OK ]
8. Bringing up interface bond0:
[ OK ]
网络重启完毕,此时由于/etc/sysconfig/network-scripts/ifcfg-bond0中的设置,miimon参数已经生效。
"重启网络"的操作也可以通过重新启动操作系统来实现,但对于一些正在生产以上"导入bonding驱动"及
环境中运行的系统,一般要求进行系统维护时不影响系统的正常运作。通过以上两个操作可以将系统的"总失效时间"降到最低。
如何配置多级网卡绑定设备
在实际环境中,常常需要在多个网卡中进行两两绑定。例如,服务器共有4个网卡,分另为eth0、eth1、eth2、eth3,要求对它们两两绑定成bond0和bond1设备,此时需要对以上设定进行一些修改。
(1) 参考"12.2.2 网卡绑定配置"中的"配置驱动模块"部分内容,将/etc/modprobe.conf修改为:
1. ######## Bonding ##########
2. alias bond0 bonding
3. alias bond1 bonding
4. options bonding max_bonds=2
(2) 参考"12.2.2 网卡绑定配置"中的"建立bonding网卡配置"部分内容,建立bond1的设备配置文件,并相应地修改eth2和eth3的配置,重启网络即可。