####bond(链路聚合)####
一、链路聚合:
以太网链路聚合简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的。同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效地提高链路的可靠性。
链路聚合的功能:
1、增加了带宽---将多个链路的容量组合到一个逻辑链路中。
2、自动故障转移/故障恢复---将来自故障链路的通信转移到聚合中的工作链路。
3、负载均衡---传入和外发通信都是根据用户选择的负载均衡策略(如源和目标 MAC 或 IP 地址)进行分配的。
二、工作模式:
1、roundrobin平衡轮询模式:
两块网卡轮流接收数据包。由于两块网卡都正常工作,它能提供两倍的带宽,在这种情况下出现一块网卡失效,仅仅会是服务器出口带宽下降,也不会影响网络使用
2、ctivebackup主动备份模式:
只有主网卡 eth0 工作,eth1 作为备份网卡是不工作的,只有当一个网络接口失效时 ( 例如主交换机掉电等 ),为了不会出现网络中断,系统会按照配置指定的网卡 顺序启动工作,保证机器仍能对外服务,起到了失效保护的功能。
3、broadcast广播容错模式:
所有数据包都通过接口广播
三、实验操作
!!!注意:前提必须有两块网卡
为了保证实验纯净,需要删除以前设备。
nmcli connection show #查看
nmcli connection delete “System eth0” # 你的设备名称叫什么你就删什么
1、创建bond0
[root@station ~]# nmcli connection add con-name bond0 ifname bond0 type bond mode active-backup ip4 172.25.254.227/24
con-name bond0 # 配置文件链接名
ifname bond0 # 指定接口
type bond # bond类型
mode active-backup #选定bond工作模式为active-backup
active-backup # 使接口更加稳定
ip4 172.25.254.227/24 #设定ip
查看ifconfig已成功,bond0已存在。
cat /proc/net/bonding/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接口中
nmcli connection show #查看
cat /proc/net/bonding/bond0 # 查看接口信息
2、ifconfig eth0 down # 模拟工作的网卡损坏
cat /proc/net/bonding/bond0 # 查看到eth1接替工作
ifconfig eth0 up
cat /proc/net/bonding/bond0 #查看到eth0变成备用
nmcli connection delete bond0 # 删除接口
nmcli connection delete eth0 # 删除接在bond0接口网卡eth0
nmcli connection delete eth1 # 删除接在bond0接口网卡eth1
nmcli connection show #查看
3、用文件的方式添加
打开 vim /etc/sysconfig/network-scripts/ifcfg-bond0
添加:
DEVICE=bond0
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.254.227
NETMASK=255.255.255.0
TYPE=Bond # 设备类型
BONDING_OPTS=mode=active-backup # 设备的模块
打开 vim /etc/sysconfig/network-scripts/ifcfg-eth0
添加:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
打开 vim /etc/sysconfig/network-scripts/ifcfg-eth1
添加:
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=none
MASTER=bond0
systemctl restart network#重启网络
查看:
nmcli connection show
bond只支持数量轮询(轮到谁谁工作),不支持负载均衡(谁闲着,谁工作),对ipv6的支持比较差,不能进行hash加密
!!!注:以文件的方式添加接口时,就必须以文件的方式删除
[root@station Desktop]# rm -fr /etc/sysconfig/network-scripts/ifcfg-bond0
[root@station Desktop]# rm -fr /etc/sysconfig/network-scripts/ifcfg-eth0
[root@station Desktop]# rm -fr /etc/sysconfig/network-scripts/ifcfg-eth1
[root@station Desktop]# systemctl restart network
####team(负载均衡)####
bond 的管理方式比较单一,选择更高级的管理方式team
1、team:
网卡绑定bond可以提高网络的冗余,保证网络可靠性,提高网络速度。为了提高网络容错或吞吐量,一般服务器都会采取多网卡绑定的策略,在RHEL5/RHEL6中使用的是Bond。而RHEL7提供了一项新的实现技术Team,用来实现链路聚合的功能,但是在RHEL7中,不会使用team替换bond,它们是并存的,我们可以选择Team,也可以选择Bond。
该接口与bond接口功能类似,但该接口可以支持八块网卡,不需要手动加载相应内核模块该接口比bond接口多一个
模式。
2、team的种类
broadcast # 广播容错
roundrobin # 平衡轮叫
activebackup # 主备
loadbalance # 负载均衡模式,判断不同网卡的负载,给负载最少的网卡发送数据包
3、实验操作
nmcli connection add con-name team0 ifname team0 type team config '{"runner":{"name":"activebackup"}}' ip4 172.25.254.142/24 # runner 是指定工作类型
nmcli connection add con-name eth0 ifname eth0 type team-slave master team0 #将eth0网卡添加到team接口中
nmcli connection add con-name eth1 ifname eth1 type team-slave master team0 #将eth1网卡添加到team接口中
nmcli connection show ##查看
ifconfig
teamdctl team0 stat # 查看team0的接口详细信息
ifconfig eth0 down # 模拟工作网卡损坏
ifconfig eth0 up # 恢复网卡
teamdctl team0 stat
还原环境
[root@station Desktop]# nmcli connection delete team0 # 删除team0接口
[root@station Desktop]# nmcli connection delete eth0 # 删除接在team0接口网卡eth0
[root@station Desktop]# nmcli connection delete eth1 # 删除接在team0接口网卡eth1
文件方式
打开vim /etc/sysconfig/network-scripts/ifcfg-team0
添加:
DEVICE=team0
TEAM_CONFIG="{\"runner\":{\"name\":\"activebackup\"}}"
DEVICETYPE=Team
BOOTPROTO=none
IPADDR=172.25.254.227
PREFIX=24
NAME=team0
ONBOOT=yes
打开vim /etc/sysconfig/network-scripts/ifcfg-eth0
添加;
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=yes
TEAM_MASTER=team0
DEVICETYPE=TeamPort
打开vim /etc/sysconfig/network-scripts/ifcfg-eth1
添加:
BOOTPROTO=none
NAME=eth1
DEVICE=eth1
ONBOOT=yes
TEAM_MASTER=team0
DEVICETYPE=TeamPort
systemctl restart network #重启网络服务
nmcli connection show #查看
teamdctl team0 stat #查看接口信息
恢复环境
[root@station Desktop]# nmcli connection delete team0
[root@station Desktop]# nmcli connection delete eth0
[root@station Desktop]# nmcli connection delete eth1
####bond 和team的区别####
red hat 官方给出的team和bond特性对比
A Comparison of Features in Bonding and Team
Feature Bonding Team
broadcast Tx policy Yes Yes
round-robin Tx policy Yes Yes
active-backup Tx policy Yes Yes
LACP (802.3ad) support Yes (active only) Yes
Hash-based Tx policy Yes Yes
User can set hash function (哈希加密) No Yes
Tx load-balancing support (TLB) Yes Yes
LACP hash port select Yes Yes
load-balancing for LACP support(负载均衡) No Yes
Ethtool link monitoring Yes Yes
ARP link monitoring Yes Yes
NS/NA (IPv6) link monitoring(Ipv6) No Yes
ports up/down delays Yes Yes
port priorities and stickiness (“primary”option enhancement) No Yes
separate per-port link monitoring setup No Yes
multiple link monitoring setup Limited Yes
lockless Tx/Rx path No (rwlock) Yes (RCU)
VLAN support Yes Yes
user-space runtime control Limited Full
Logic in user-space No Yes
Extensibility Hard Easy
Modular design No Yes
Performance overhead Low Very Low
D-Bus interface No Yes
multiple device stacking Yes Yes
zero config using LLDP No (in planning)
NetworkManager support Yes Yes