网卡绑定技术有助于保证高可用性特性并提供其它优势以提高网络性能,在这介绍的Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作,这样即使其中的一块物理网卡出现故障,也不会导致连接中断。

    网卡绑定就是多张网卡逻辑上作为一张网卡用。可分为,负载均衡绑定和冗余绑定两种。

1.编辑虚拟网络接口配置文件

[root@test~]# more /etc/sysconfig/network-scripts/ifcfg-bond0 
DEVICE=bond0 
IPADDR=172.16.4.100 
NETMASK=255.255.255.0 
BROADCAST=172.16.4.255 
NETWORK=172.168.4.100

GATEWAY=172.16.4.1

ONBOOT=yes

BOOTPROTO=none

USERCTL=no
TYPE=BOND
BONDING_OPTS="mode=1 miimon=50"

2.编辑各网卡的配置文件,注意编辑之前做好备份工作

[root@test~]# more /etc/sysconfig/network-scripts/ifcfg-eth0 
BOOTPROTO=none 
TYPE=Ethernet 
DEVICE=eth0 
ONBOOT=yes 
MASTER=bond0 
slave=yes

USERCTL=no
[root@test ~]# more /etc/sysconfig/network-scripts/ifcfg-eth1 
BOOTPROTO=none 
TYPE=Ethernet 
DEVICE=eth1 
ONBOOT=yes 
MASTER=bond0 
slave=yes

USERCTL=no

 

 

 

3.修改/etc/modprobe.conf 文件,同样做好备份,最后加入2行 
   alias bond0 bonding 
   options bond0 miimon=100 mode=1 
注: 
(1)、miimon 是链路监测的时间间隔单位是毫秒,miimon=100的意思就是,每100毫秒检测网卡和交换机之间是否连通,如不通则使用另外的链路。 
(2)、mode=0 表示负载均衡方式,两块网卡都工作,需要交换机作支持 
       mode=1 表示冗余方式,网卡只有一个工作,一个出问题启用另外的 
       mode=6 表示负载均衡方式,两块网卡都工作,不需要交换机作支持

[root@test~]# more /etc/modprobe.conf 
alias eth0 b44 
alias eth1 8139too 
alias usb-controller ehci-hcd 
alias usb-controller1 ohci-hcd 
alias bond0 bonding 
options bond0 miimon=100 mode=0

4.在/etc/rc.d/rc.local 加入如下一行 
ifenslave bond0 eth0 eth1

[root@test~]# more /etc/rc.d/rc.local 
#!/bin/sh 

# This script will be executed *after* all the other init scripts. 
# You can put your own initialization stuff in here if you don't 
# want to do the full Sys V style init stuff. 

touch /var/lock/subsys/local 
ifenslave bond0 eth0 eth1

5.重新启动后负载平衡已经能正常工作,service network restart,

6.查看bond0的工作状态

[root@test~]# more /proc/net/bonding/bond0 
Ethernet Channel Bonding Driver: v2.6.1 (October 29, 2004) 

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:1b:b9:58:8b:b2 

Slave Interface: eth1 
MII Status: down 
Link Failure Count: 0 
Permanent HW addr: 00:07:40:6c:ac:c8

7.查看经过绑定后的网卡工作情况

[root@test ~]# ifconfig -a 
bond0     Link encap:Ethernet  HWaddr00:1B:B9:58:8B:B2  
         

inet addr:172.16.4.100 Bcast:172.16.4.255  Mask:255.255.255.0 
          inet6 addr:fe80::200:ff:fe00:0/64 Scope:Link 
          UP BROADCAST RUNNINGMASTER MULTICAST  MTU:1500  Metric:1 
          RX packets:744154errors:0 dropped:0 overruns:0 frame:0 
          TX packets:1866915errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0txqueuelen:0 
          RX bytes:1099876146 (1.0GiB)  TX bytes:121233595 (115.6 MiB) 

eth0      Link encap:Ethernet  HWaddr00:1B:B9:58:8B:B2  
          inet6 addr:fe80::21b:b9ff:fe58:8bb2/64 Scope:Link 
          UP BROADCAST RUNNINGSLAVE MULTICAST  MTU:1500  Metric:1 
          RX packets:744154errors:0 dropped:0 overruns:0 frame:0 
          TX packets:1866905errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0txqueuelen:1000 
          RX bytes:1099876146 (1.0GiB)  TX bytes:121232839 (115.6 MiB) 
          Interrupt:9 

eth1      Link encap:Ethernet  HWaddr00:1B:B9:58:8B:B2  
          inet6 addr:fe80::21b:b9ff:fe58:8bb2/64 Scope:Link 
          UP BROADCAST SLAVEMULTICAST  MTU:1500  Metric:1 
          RX packets:0 errors:0dropped:0 overruns:0 frame:0 
          TX packets:10 errors:0dropped:0 overruns:0 carrier:0 
          collisions:0txqueuelen:1000 
          RX bytes:0 (0.0 b) TX bytes:756 (756.0 b) 
          Interrupt:11 Baseaddress:0x1000 

lo        Link encap:Local Loopback  
          inetaddr:127.0.0.1  Mask:255.0.0.0 
          inet6 addr: ::1/128Scope:Host 
          UP LOOPBACKRUNNING  MTU:16436  Metric:1 
          RX packets:2129 errors:0dropped:0 overruns:0 frame:0 
          TX packets:2129 errors:0dropped:0 overruns:0 carrier:0 
          collisions:0txqueuelen:0 
          RX bytes:1998893 (1.9MiB)  TX bytes:1998893 (1.9 MiB) 

sit0      Link encap:IPv6-in-IPv4  
          NOARP MTU:1480  Metric:1 
          RX packets:0 errors:0dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0dropped:0 overruns:0 carrier:0 
          collisions:0txqueuelen:0 
          RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

附: 
DEVICE=物理设备名 
IPADDR=IP地址 
NETMASK=掩码值 
NETWORK=网络地址 
BROADCAST=广播地址 
GATEWAY=网关地址 
ONBOOT=[yes|no](引导时是否激活设备) 
USERCTL=[yes|no](非root用户是否可以控制该设备) 
BOOTPROTO=[none|static|bootp|dhcp](引导时不使用协议|静态分配|BOOTP协议|DHCP协议) 
HWADDR = 你的MAC地址