网卡绑定简介
Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,Linux双网卡绑定实现就是使用两块网卡虚拟成为一块网卡,这个聚合起来的设备看起来是一个单独的以太网接口设备,
通俗点讲就是两块网卡具有相同的IP地址而并行链接聚合成一个逻辑链路工作。其实这项 技术在Sun和Cisco中早已存在,被称为Trunking和Etherchannel技术,在Linux的2.4.x的内核中也采用这这种技术,被称为bonding。
现在一般的企业都会使用双网卡接入,这样既能添加网络带宽,同时又能做相应的冗余,可以说是好处多多。
linux有七种网卡绑定模式:
0. round robin,
1.active-backup,
2.load balancing (xor),
3.fault-tolerance (broadcast),
4.lacp,
5.transmit load balancing,
6.adaptive load balancing。
第一种:bond0:round robin
特点:(1)所有链路处于负载均衡状态,轮询方式往每条链路发送报文,基于per packet方式发送。服务上ping 一个相同地址:1.1.1.1 双网卡的两个网卡都有流量发出。负载到两条链路上,说明是基于per packet方式 ,进行轮询发送。
(2)这模式的特点增加了带宽,同时支持容错能力,当有链路出问题,会把流量切换到正常的链路上。
注意:应用拓扑:交换机端需要配置聚合口,cisco叫port channel
实验步骤
1、编辑文件
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
BOOTPROTO=dhcp ##网卡没有地址
ONBOOT=yes ##开机启动激活
2、产生额外的一块网卡
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-eth0 ifcfg-bond0
3、配置产生的网卡
[root@localhost network-scripts]# vim ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.10.10
NETMASK=255.255.255.0
加载bonding模块
modprobe bonding
查看模块信息
modinfo bonding
编辑模块的配置文件
vim /etc/modprobe.conf
alias bond0 bonding ##别名bond0使用的模块是bonding
options bond0 miimon=100 mode=0 ##对别名bond0 模式0
4、在开机脚本中声明bond0绑定的网卡
touch /var/lock/subsys/local
ifenslave bond0 eth0 eth1 ##把多个辅助网卡绑定成一个网卡
重启系统查看
cat /proc/net/bonding/bond0
[root@localhost ~]# cat /proc/net/bonding/bond0
Bonding Mode: load balancing (round-robin) ##轮循模式
MII Status: up
MII Polling Interval (ms): 100 eth0.eth1
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: eth0
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:0c:29:5f:b3:a1
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:0c:29:5f:b3:ab
当期中一条链路不正常时,链路会迅速把数据信息转到另一条链路
第二种:bond1:active-backup
特点:一个端口处于主状态 ,一个处于从状态,所有流量都在主链路上处理,从不会有任何流量。当主端口down掉时,从端口接手主状态。
内核中网卡绑定的情况
cat /proc/net/bonding/bond0
[root@localhost ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.2.5 (March 21, 2008)
Bonding Mode: fault-tolerance (active-backup) ##主备模式
Primary Slave: None
Currently Active Slave: eth0 ##激活的物理网卡eth0
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: 00:0c:29:5f:b3:a1
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:0c:29:5f:b3:ab
假设eth0的网卡的线路断掉了,是什么情况呢
再看网卡绑定信息
cat /proc/net/bonding/bond0
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
Link Failure Count: 1 ##eth0关闭了,eth1被激活
Permanent HW addr: 00:0c:29:5f:b3:a1
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:0c:29:5f:b3:ab
当eth0线路正常时,eth1,仍然处于被激活状态
第三种:bond2:load balancing (xor)
特点:该模式将限定流量,以保证到达特定对端的流量总是从同一个接口上发出。既然目的地是通过MAC地址来决定的,因此该模式在“本地”网络配置下可以工作得很好。如果所有流量是通过单个路由器(比如 “网关”型网络配置,只有一个网关时,源和目标mac都固定了,那么这个算法算出的线路就一直是同一条,那么这种模式就没有多少意义了。),那该模式就不是最好的选择。和balance-rr一样,交换机端口需要能配置为“port channel”。这模式是通过源和目标mac做hash因子来做xor算法来选路的。
[root@localhost ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.2.5 (March 21, 2008)
Bonding Mode: load balancing (xor)
Transmit Hash Policy: layer2 (0)
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:5f:b3:a1
Slave Interface: eth1
MII Status: up
Link Failure Count: 1
Permanent HW addr: 00:0c:29:5f:b3:ab
第四种:bond3:fault-tolerance (broadcast)
特点:这种模式的特点是一个报文会复制两份往bond下的两个接口分别发送出去,当有对端交换机失效,我们感觉不到任何downtime,但此法过于浪费资源;不过这种模式有很好的容错机制。此模式适用于金融行业,因为他们需要高可靠性的网络,不允许出现任何问题。
[root@localhost ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.2.5 (March 21, 2008)
Bonding Mode: fault-tolerance (broadcast)
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: 00:0c:29:5f:b3:a1
Slave Interface: eth1
MII Status: up
Link Failure Count: 0
Permanent HW addr: 00:0c:29:5f:b3:ab
注:其他几种方式可以按照上述方法自己配置,不一一列举!