bonding
网卡绑定技术,其将多块网卡绑定同一IP地址对外提供服务,可以实现网卡的带宽扩容、高可用或者负载均衡,一般情况下,将多块网卡设置同一IP地址是不可能的,会导致IP地址的冲突,导致网络不可用。但是通过bonding,可以将多个物理网卡的MAC地址修改为相同的MAC地址,虚拟出一块网卡对外提供连接
bonding的优点
-
网络的负载均衡
bonding的网络负载均衡是我们在文件服务器中常会用到的,比如把多块网卡,当做一块来用,解决一个IP地址,流量过大,服务器网络压力过大的问题
-
网络的冗余高可用
把网个网卡绑定到一个IP地址,当一块网卡发生物理性损坏的情况下,另一块网卡也能提供正常的服务
Bonding的常见绑定模式
Mode 0 (balance-rr)
轮转(Round-robin)策略:从头到尾的顺序在每一个从属设备接口上面发送数据包,一条链路故障会自动切换正常链路。
**优点:**流量提高一倍
**缺点:**需要接入交换机做端口聚合,否则可能无法使用
Mode 1 (active-backup)
**活动-备份(主备)策略:**只有一个从属设备处于活动状态,其它从属设备处于备用状态,只有在活动的从属设备接口宕掉时才会激活其他从属设备,所有流量都在活动的链路上处理。因为交换机往两块网卡发包,有一半包是丢弃的。
**优点:**冗余性高
**缺点:**链路利用率低,两块网卡只有1块在工作
Mode 3 (broadcast)
**广播策略:**在所有的从属设备接口上传送所有的报文,提供容错能力。
特点:在每个slave接口上传输每个数据包,此模式提供了容错能力
CentOS6实现Bonding配置
创建bonding设备的配置文件
创建bonding设备的第一步就是要先创建bond设备文件,由于之前系统没有,所以需要自己手工创建,分别是一个bond配置文件和两个从属bond的网卡配置文件。具体的操作步骤和配置文件写法,请看下面:
~]# cd /etc/sysconfig/network-scripts/
]# cat ifcfg-bond0
DEVICE=bond0
BONDING_OPTS="mode=0 miimon=100" # 模式为轮询
IPADDR=192.168.9.31
PREFIX=24
GATEWAY=192.168.9.1
# 先通过 ip a查看对应网卡的名称之后在进行操作, name跟device改成不同名称,其它配置一样
network-scripts]# cat ifcfg-ens160
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
NAME="ens160"
DEVICE="ens160"
ONBOOT="yes"
MASTER=bond0
SLAVE=yes
验证
~]# ip a
2: ens160: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether 00:0c:29:8b:06:8f brd ff:ff:ff:ff:ff:ff
3: ens192: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
link/ether 00:0c:29:8b:06:8f brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:8b:06:8f brd ff:ff:ff:ff:ff:ff
inet 192.168.9.31/24 brd 192.168.9.255 scope global noprefixroute bond0
# 可以看到 ens160, ens192 的状态都成为了 SLAVE,三个设备MAC地址相同,原 ens160, ens192 地址失效,两块网卡共用bond0设备的一个IP地址
~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens160
MII Status: up
Speed: 10000 Mbps # 万兆卡
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:8b:06:8f
Slave queue ID: 0
Slave Interface: ens192
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:8b:06:99
Slave queue ID: 0
# 查看模式
cat /sys/class/net/bond0/bonding/mode
balance-rr 0
#这条命令可以查看bond设备的模式策略,如balance-rr 0则表示是0模式,轮转策略。
关闭其中一块网卡
]# ifconfig ens160 down
]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0
Slave Interface: ens160
MII Status: down # 状态就为down了
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 00:0c:29:8b:06:8f # 物理网卡地址
Slave queue ID: 0
Slave Interface: ens192
MII Status: up
Speed: 10000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:8b:06:99
Slave queue ID: 0
# 在通过 ip a 查看三块网卡地址都相同皆为bord0的虚拟MAC地址
link/ether 00:0c:29:8b:06:8f brd ff:ff:ff:ff:ff:ff
交换机端口汇聚
- 配置聚合口
[test]interface Eth-Trunk 2
[test-Eth-Trunk2]port link-type access 配置为接入模式
[test-Eth-Trunk2]port default vlan ID 放行vlan
配置之后可以 dis this 查看一下配置
- 注意在接口接进来之前需要先删除接口下配置
[xx_Vlan10_SWL3-GigabitEthernet0/0/5]dis th
port link-type access 清空这些配置文件
port default vlan ID
ntdp enable 这些需要用 undo ntdp enable
ndp enable
bpdu enable
- 配置聚合端口信息
[xx_Vlan10_SWL3-GigabitEthernet0/0/6]eth-trunk 2
[xx_Vlan10_SWL3-GigabitEthernet0/0/6]dis th
#
interface GigabitEthernet0/0/6
eth-trunk 2
undo ntdp enable
undo ndp enable
#
其它接口也一样
- 最后查询一下
[software_Vlan10_SWL3]dis interface Eth-Trunk
Eth-Trunk2 current state : UP
Line protocol current state : UP
Description:HUAWEI, Quidway Series, Eth-Trunk2 Interface
IP Sending Frames' Format is PKTFMT_ETHNT_2, Hardware address is 5489-9875-e991
Input bandwidth utilization : 0.00%
Output bandwidth utilization : 0.00%
-----------------------------------------------------
PortName Status Weight
-----------------------------------------------------
GigabitEthernet0/0/5 UP 1 # 正常情况下是多个
GigabitEthernet0/0/6 UP 1 # 正常情况下是多个
-----------------------------------------------------