一、理论
1、链路聚合
网络组队(聚合链路)是一种以逻辑方式将NIC链接到一起,从而实现故障转移或更高吞吐量的方法。组队是一种新的实施方式,提供了更好的性能,并且由于其模块化设计,因此可扩展性更强。 NIC: network interface control 网络接口控制器
roundrobin: 以轮循询的模式传输所有端口的包;简单说就是两个网卡轮流收发信息;
activebakup: 主备模式这是一个故障迁移程序,监控链接更改并选择活动的端口进行传输;简单说就是第一个网卡在工作时,第二个网卡就静默,当第一个网卡出现故障时,第二个网卡就接替第一个网卡的工作;
loadbalance: 监控流量并使用哈希函数以尝试在选择传输端口的时候达到完美均衡;负载均衡
broadcast: 广播容错,设备通过所有端口传输数据包;
例:在web端和DNS端分别对网卡做了链路聚合,在WEB和DNS进行通讯时,WEB端正在工作的网卡出故障了,这时,网络组队中的另一个网卡就会迅速接替上一个网卡的工作继续对外通信
2、网桥
网桥是一个链路层设备,可基于MAC地址在网络中转发流量。网桥通过学习主机的MAC地址,构建MAC地址表,然后根据MAC地址表做出包转发决策。在Linux环境中使用软件网桥来仿真硬件网桥。软件网桥的最常见应用是在虚拟化应用程序中,用于在一个或多个虚拟NIC中共享一个硬件NIC。
MAC学习:学习MAC地址,它会关心每个收到或者发送的数据,关心数据包的来源MAC是从自己的哪个端口来的,然后慢慢的建立地址-端口的对照表(转发表)。
报文转发:每个发送一个数据包,它都会提取其目的MAC地址,从自己的地址-端口对照表(转发表)中查找应该由哪个端口把数据包发送出去,然后转发数据。
二、 链路聚合主备模式
环境:两台Rocky linux虚拟机,分别再添加两个网卡
1、创建组队
先将那两个网卡链接删除
nmcli connection delete Wired\ connection\ 1
2、创建team0逻辑组
nmcli connection add con-name team0 type team ifname team0 config '{"runner":{"name":"activebackup"}}'
3、team0添加网卡
先修改team0的IP信息
nmcli connection modify team0 ipv4.address 192.168.0.1/24 ipv4.method manual connection.autoconnect yes
添加网卡,将ens192和ens224都添加到team0逻辑组中
nmcli connection add con-name team0-ens192 ifname ens192 type team-slave master team0
nmcli connection add con-name team0-ens224 ifname ens224 type team-slave master team0
4、查看工作信息
激活一下team0
nmcli connection up team0
查看team0的IP信息 ip a
查看team0的状态信息
谁第一个添加进来谁就是运行网卡,剩下的就都是热备网卡
5、server2主机配置
先删除两个网卡链接
创建team0逻辑组并配置ipv4
nmcli connection add con-name team0 type team ifname team0 config '{"runner":{"name":"activebackup"}}'
nmcli connection modify team0 ipv4.address 192.168.0.2/24 ipv4.method manual connection.autoconnect yes
添加网卡
将ens192和ens224添加到team0中
nmcli connection add con-name team0-ens192 ifname ens192 type team-slave master team0
nmcli connection add con-name team0-ens224 ifname ens224 type team-slave master team0
激活team0产看ip
6、模拟故障
我们ping一下server2的主机ip看能否ping通
当前server1工作的是ens192网卡,我们把它down掉
查看team0工作状态,现在就变成ens224在工作了
这样一样可以通信
三、网桥实验
再次添加两个网卡
1、创建网桥
先删除两个网卡的链接
nmcli connection delete Wired\ connection\ 1
创建网桥
nmcli connection add con-name bridge0 ifname brigdge0 type bridge
给网桥设置ip
nmcli connection modify bridge0 ipv4.addresses 192.168.1.1/24 ipv4.method manual connection.autoconnect yes
将两个新建的网卡添加到网桥当中并将bridge0激活一下
nmcli connection add con-name bridge0-ens161 ifname ens161 type bridge-slave master brigdge0
nmcli connection add con-name bridge0-ens256 ifname ens256 type bridge-slave master brigdge0
查看bridge0的IP
最后重启一下网卡就能进行测试了
systemctl restart NetworkManager