linux下链路聚合和网络桥接[bond、team]

it2025-02-13  9

文章目录

一、链路聚合1.1 配置bond网络接口1.2 team聚合 二、网络桥接2.1 配置文件配置网桥2.2 命令设定网桥 (临时)2.3 删除网桥 三、网络报错分析

一、链路聚合

链路聚合(英语:Link Aggregation) 是一个计算机网络术语,指将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入流量吞吐量在各成员端口的负荷分担,交换机根据用户配置的端口负荷分担策略决定网络封包从哪个成员端口发送到对端的交换机。当交换机检测到其中一个成员端口的链路发生故障时,就停止在此端口上发送封包,并根据负荷分担策略在剩下的链路中重新计算报文的发送端口,故障端口恢复后再次担任收发端口。链路聚合在增加链路带宽、实现链路传输弹性和工程冗余等方面是一项很重要的技术。原理 : 多个物理的端口绑定在一起当成一个逻辑端口来使用,以便提高带宽,实现负载平衡或高可用的功能应用场景: 网卡的链路聚合就是将多块网卡连接起来,当一块网卡损坏时,其余网卡仍工作,网络依旧可以正常运行,可以有效的防止因为网卡损坏带来的损失,同时也可以提高网络访问速度,说白了就是替补,防患于未然配置的模式:网卡的链路聚合常用的有 bond 和 team 两种模式,bond模式最多可以添加两块网卡,team模式最多可以添加八块网卡

1.1 配置bond网络接口

bond聚合有两种方式:轮询聚合,提高效率(两块网卡同时工作);主备聚合,提高安全性(一个网卡工作,另一个网卡看,工作的那个网卡坏了就顶替上去)

条件: 删除虚拟机server所有的网卡

(1)nmcli connection add con-name bond0 ifname bond0 type bond mode active-backup ip4 172.25.254.225/24 添加bond聚合的接口

使用nmcli命令删除时应 开启网络管理者NetworkManager

(2)nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0 nmcli connection add con-name eth1 ifname eth1 type bond-slave master bond0 将虚拟出来的端口绑定两个真实的物理网卡 (3)nmcli connection show 查看聚和网卡是否添加成功

(4)监控网卡工作状态 watch -n 1 “cat /proc/net/bonding/bond0” (5)查看bond网络下的主备聚合的工作方式

1.2 team聚合

team的种类 team的种类名称broadcast广播容错roundrobin平衡轮叫activebackup主备loadbalance负载均衡,和bond聚合的不同之处,好处

(1)nmcli connection add con-name team0 ifname team0 type team config ‘{“runner”:{“name”:“activebackup”}}’ ip4 172.25.254.125/24 添加team聚合接口 (2)nmcli connection add con-name eth0 ifname eth0 type team-slave master team0 nmcli connection add con-name eth1 ifname eth1 type team-slave master team0 分别将两块网卡绑定到此team接口

(3)监控 == watch -n 1 teamdctl team0 stat== (4)查看正在工作的接口

二、网络桥接

默认主机是没有网桥的(内核不开放的),虚拟机内核和系统和真机的内核和系统是相互独立的!真机上网是通过内核调用网卡与外界进行联系的,而虚拟机的网卡是虚拟化的,不能直接上网。所以在真机的内核上面开一个网络桥接的口,将虚拟机的内核和真机的网卡连接在一起,从而虚拟机可以通过真机的网卡上网。 即在网卡上开一个接口,而该接口绑定一个IP,同一网段的虚拟机直接通过此接口绑定的IP与外界通信,相当于在虚拟机和真机上面架了一个桥,不需要受内核路由的控制,直接可以与外界通信!NAT和网桥的对比 : 1、相对于NAT,网桥不需要地址转换,也不需要路由转发,也不需要配置网关,就可以与外界通信(配置的繁琐性)2、 网桥是工作在数据链路层(不需要IP,通过MAC通信),而NAT是在网络层(需要IP),所以前者的速度比后者快!3、 NAT每次都需要NAT然后内核路由转发!

2.1 配置文件配置网桥

(1) vim ifcfg-eth1 创建一个网桥接口

DEVICE=eth1 ONBOOT=yes BOOTPROTO=none BRIDGE=br0 ‘

(2) vim ifcfg-br0 名字必须和上述相同

DEVICE=br0 ONBOOT=yes BOOTPROTO=static IPADDR=172.25.70.225 PREFIX=24 TYPE=Bridge

(3)测试 systemctl restart network

(4)ifocnfig 查看(两个网卡,一个是软件虚拟出来的网络接口)

2.2 命令设定网桥 (临时)

(1)brtcl addbr br0 添加网桥br0 (2)ifconfig br0 172.25.70.225/24 给网桥添加ip (3)brctl addif br0 eth0 给网桥br0添加一个真实存在的网卡 (4)测试: ping 一下真机

2.3 删除网桥

(1)brctl delif br0 eth0 删除eth0的网桥br0 (2)ifconfig br0 down 关闭网桥 (3)brctl delbr br0 删除网桥

三、网络报错分析

(1) 看网络配置的目录下以ifcfg-开头的文件除了网卡配置文件和网桥配置文件有没有其它多余文件,cd /etc/sysconfig/network-scripts/ , ls , 因为启动真机的时候系统会自动读取所有以ifcfg-开头的文件,因此将多余的删除 (2)检查网卡和网桥配置文件是否正确 ,重启网络 (3)查看网络管理者NetworkManager的状态是否为开启 systemctl status NetworkManager (4)若以上这些都好了,那很有可能就是桥接的问题 使用 brctl addif br0 网卡名字 ,给网桥添加真实的网卡设备连接,这样才可以

最新回复(0)