Linux双网卡绑定

Linux双网卡绑定是通过Bonding技术实现使用两块网卡虚拟成为一块网卡设备,两块网卡使用共同的IP地址,可实现负载均衡,网卡冗余。bonding的实现前提是使用相同型号的网卡芯片。

以下练习在VM的虚拟环境使用redhat5.4并添加双网卡

1.redhat5.X默认已支持bonding,可通过以下命令查看:
[root@server1 ~]# modinfo bonding
filename:       /lib/modules/2.6.18-164.el5/kernel/drivers/net/bonding/bonding.k        o
author:         Thomas Davis, [email protected] and many others
description:    Ethernet Channel Bonding Driver, v3.4.0
version:        3.4.0
license:        GPL
srcversion:     3D3684A1DE11F2E8B0D4E80
depends:        ipv6
vermagic:       2.6.18-164.el5 SMP mod_unload 686 REGPARM 4KSTACKS gcc-4.1
parm:           max_bonds:Max number of bonded devices (int)
parm:           num_grat_arp:Number of gratuitous ARP packets to send on failove        r event (int)
parm:           num_unsol_na:Number of unsolicited IPv6 Neighbor Advertisements         packets to send on failover event (int)
parm:           miimon:Link check interval in milliseconds (int)
parm:           updelay:Delay before considering link up, in milliseconds (int)
parm:           downdelay:Delay before considering link down, in milliseconds (         nt)
parm:           use_carrier:Use netif_carrier_ok (vs MII ioctls) in miimon; 0 f         r off, 1 for on (default) (int)
parm:           mode:Mode of operation : 0 for balance-rr, 1 for active-backup,         2 for balance-xor, 3 for broadcast, 4 for 802.3ad, 5 for balance-tlb, 6 for bal         nce-alb (charp)
parm:           primary:Primary network device to use (charp)
parm:           lacp_rate:LACPDU tx rate to request from 802.3ad partner (slow/         ast) (charp)
parm:           xmit_hash_policy:XOR hashing method: 0 for layer 2 (default), 1         for layer 3+4 (charp)
parm:           arp_interval:arp interval in milliseconds (int)
parm:           arp_ip_target:arp targets in n.n.n.n form (array of charp)
parm:           arp_validate:validate src/dst of ARP probes: none (default), ac         ive, backup or all (charp)
parm:           fail_over_mac:For active-backup, do not set all slaves to the s         me MAC.  none (default), active or follow (charp)
module_sig:     883f3504a8b7aed18758d6145e112aa1909f62632a4a9b30e790b7b31a74bde         31a772fa4909f40969e891a448344afce6ded18dd8e6ddf11a4

2.建立虚拟的网卡接口,配置网卡接口信息等信息

[root@server1 ~]# cd /etc/sysconfig/network-scripts/
[root@server1 network-scripts]# cp ifcfg-lo ifcfg-bond0
[root@server1 network-scripts]# vim ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.0.254
NETMASK=255.255.255.0
NETWORK=192.168.0.0
BROADCAST=192.168.0.255
ONBOOT=yes
BOOTPROTO=none
USERCTL=no
BONDING_OPTS="mode=0 miimon=100"

BONDING_OPTS选项中的mode=0指的是使用指负载均衡模式,如果这个参数为1,表示冗余功能。miimon=100表示系统每100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路。

[root@server1 network-scripts]# vim ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes

[root@server1 network-scripts]# vim ifcfg-eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes

3.修改配置使系统启动时加载bonding模块使用bond0接口。在末尾添加一行:
[root@server1 ~]# vim /etc/modprobe.conf
alias eth0 vmxnet
alias scsi_hostadapter mptbase
alias scsi_hostadapter1 mptspi
alias scsi_hostadapter2 ata_piix
# Added by VMware Tools
install pciehp /sbin/modprobe -q --ignore-install acpiphp; /bin/true
install pcnet32 (/sbin/modprobe -q --ignore-install vmxnet || /sbin/modprobe -q --ignore-install pcnet32 $CMDLINE_OPTS);/bin/true
alias eth1 vmxnet
alias bond0 bonding

4.重启网络服务,查看绑定情况:

[root@server1 ~]# /etc/init.d/network restart

[root@server1 ~]# ifconfig
bond0     Link encap:Ethernet  HWaddr 00:0C:29:41:E1:48
          inet addr:192.168.0.254  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe41:e148/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:2913 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2338 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:274948 (268.5 KiB)  TX bytes:357004 (348.6 KiB)

eth0      Link encap:Ethernet  HWaddr 00:0C:29:41:E1:48
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:2289 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2176 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:209531 (204.6 KiB)  TX bytes:326498 (318.8 KiB)
          Interrupt:59 Base address:0x2024

eth1      Link encap:Ethernet  HWaddr 00:0C:29:41:E1:48
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:629 errors:0 dropped:0 overruns:0 frame:0
          TX packets:175 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:65717 (64.1 KiB)  TX bytes:32508 (31.7 KiB)
          Interrupt:51 Base address:0x20a4

[root@server1 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.4.0 (October 7, 2008)

Bonding Mode: load balancing (round-robin)
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: 1
Permanent HW addr: 00:0c:29:41:e1:48

Slave Interface: eth1
MII Status: up
Link Failure Count: 1
Permanent HW addr: 00:0c:29:41:e1:52

 

通过使用bonding技术实现的网卡负载均衡模式就完成了。

你可能感兴趣的:(linux,集群,负载均衡,双网卡,bonding)