一.链路聚合介绍
以太网链路聚合简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效的提高链路的可靠性。
链路聚合的功能:
- 1.增加了带宽–将多个链路的容量组合到一个逻辑链路中。
- 2.自动故障转移/故障修复–将来自故障链路的通信转移到聚合中的工作链路。
- 3.负载均衡–传入和外发通信都是根据用户选择的负载均衡策略(如源和目标)
链路聚合指将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入流量吞吐量在各成员端口的负荷分担,交换机根据用户配置的端口负荷分担策略决定网络封包从哪个成员端口发送到对端的交换机。
在linux中,链路聚合有bind和team两种方式。
bind
要实现分担访问压力需要至少两块网卡,一个用来备用,当主网卡损坏时,备用网卡开始工作,也就是选择active-backup模式。
使用cat /proc/net/bonding/bond0 查看接口状态信息
ifconfig eth0 down 模拟工作的网卡损坏
二 .工作模式
1.roundrobin平衡轮询模式
两块网卡轮流接收数据包。由于两块网卡都是正常工作,它能提供两倍的带宽,在这种情况下,出现一块网卡失效,仅仅会是服务器出口带宽下降,不会影响网络使用。
2.activebackup主动备份模式
只有主网卡eth0工作,eth1作为备份网卡是不工作的,只有当一个网络接口失效时,为了不会出现网络中断,系统会按照配置指定的网卡顺序启动工作,保证机器仍能对外服务,起到了失效保护的功能。
3.broadcast广播容错模式
所有数据包都通过接口广播。
bond 网络
Red Hat Enterprise Linux 允许管理员使用 bonding 内核模块和称为通道绑定接口的特殊网络接口将多个网络接口绑定到一个通道。根据选择的绑定模式 , 通道绑定使两个或更多个网络接口作为一个网络接口 , 从而增加带宽和 / 提供冗余性
bond最少添加2块网卡。
选择 Linux 以太网绑定模式
模式 0 ( 平衡轮循(轮叫机制) ) - 轮循策略 , 所有接口都使用采用轮循方式,在所有 Slave 中传输封包 ; 任何 Slave 都可以接收
模式 1 ( 主动备份 ) - 容错。一次只能使用一个 Slave 接口, 但是如果该接口出现故障 , 另一个 Slave 将 接替它
模式3 ( 广播 ) - 容错。所有封包都通过所有 Slave 接口广播
链路聚合作用:主动备份模式 一次只能只能使用一个接口,如果接口故障,另一个会接替它
利用 nmcli 命令管理 bond
双网卡的网络配置
watch -n 1 cat /proc/net/bonding/bond0 ##监控网络bond0
ping 172.25.254.61
nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup ip4 172.25.254.140/24
添加一个bond,工作方式为主备,还可以设置轮循,balance-rr。名称为bond0。
这是因为没有网卡,所以连接不上
nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0
将eth0网卡添加到这个bond中。
nmcli connection add con-name eth1 ifname eth1 type bond-slave master bond0
将eth1网卡添加到这个bond中。
可以连接了
ifconfig eth0 down
取消一个网卡eth0。 模拟网卡损坏
使eth1关闭,eth0开启
即使中途更换网卡,也不会影响网络的连接。
Team 网络
Team也是链路聚合的一种方式
最多支持 8块网卡
和 bond0 功能类似,不需要手动加载相应内核模块有更强的拓展性
与bond都是更改完永久生效的
Team :
- broadcast 广播容错
- roundrobin 平衡轮询
- activebackup 主备
- loadbalance 负载均衡
通过 nmcli 设定 team,以主备方式设定
watch -n 1 teamdctl team0 stat 监控team状态
同时 ping 172.25.254.61
nmcli connection add type team con-name team0 ifname team0 config ‘{“runner”: {“name”:“loadbalance”}}’
建立一个team,模式为activebackup。
注意: 最后 '{“runner”:{“name”:“activebackup”}'的写法,单双引号的区别
nmcli connection add type team-slave ifname eth0 con-name eth0 master team0
在team中添加网卡eth0连接。
teamdctl state team0 查看team0的状态
nmcli connection add type team-slave ifname eth1 con-name eth1 master team0
ifconfig eth0 down 将eth0暂时关闭
网络连接没有受到任何影响