链路聚合

平衡轮循:传输速率块
主动备份:提高网卡稳定性

bond接口

bond最多支持两块网卡
1)进入虚拟机管理。给虚拟机添加网卡,确保虚拟机有两个网卡

2)删除所有网络接口



3)设定bond接口


 

watch -n 1 cat /proc/net/bonding/bond0  ##可用此命令监控以下操作

nmcli connection add con-name bond0 ifname bond0 type bond mode active -backup ip4 172.25.254.123/24

##创建一个bonding,设定bond主设备模式
#也可以写为nmcli connection add type bond con-name bond0 ifname bond0 mode active -backup ip4 172.25.254.123/24  

#表示添加了一个名字叫bond0的bond,其使用的接口名字是bond0(ifname(interface的缩写))

nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0  ##添加网卡eth0到bond0接口

nmcli connection add con-name eth1 ifname eth1 type bond-slave master bond0  ##添加网卡eth1到bond0接口

 


 

nmcli connection show               ##查看网卡接口信息
nmcli connection delete             ##删除网卡接口
ifconfig eth0 down | up             ##关闭|打开网卡


4)当关闭eth0网卡时会发现eth1会继续顶替eth0继续工作



5)当再次打开eth0网卡时eth0并不顶替eth1,而当关闭eth1时会发现eth0又顶替eth1继续工作

删除创建的bond
 

显示所有的网络模式和接口

nmcli con sh
#等效于nmcli connection show

去除bond中绑定的eth0网卡

nmcli con del eth0

nmcli con del eth1


删除bond绑定

nmcli con del bond0

 

team接口

team功能与bond类似,team最多支持八块网卡
1)与bond一样,确保虚拟机有两个网卡,然后删除所有网络接口



2)设定

watch -n 1 teamdctl team0 state      ##监控
nmcli connection add con-name team0 ifname team0 type team config '{"runner":{"name":"activebackup"}}' ip4 172.25.254.114/24              ##建立team接口
nmcli connection add con-name eth0 ifname eth0 type team-slave master team0         ##往team0上添加eth0
nmcli connection add con-name eth1 ifname eth1 type team-slave master team0         ##往team0上添加eth1


此时可以ping通真机

3)与bond相同,关闭一个网卡,另一个顶替继续工作

删除创建的team

显示所有的网络模式和接口

nmcli con sh

去除bond中绑定的eth0网卡(bond和team模式不能同时使用,所以不会出现去掉bond模式上的eth0这种情况(不用指定))

nmcli con del eth0

nmcli con del eth1

team同理:

nmcli con del team0

桥接

2.1   桥接的概念

简单来说,桥接就是把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。

交换机就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。于是,与交换机相连的若干主机就能够通过交换机的报文转发而互相通信。

如:主机A发送的报文被送到交换机S1的eth0口,由于eth0与eth1、eth2桥接在一起,故而报文被复制到eth1和eth2,并且发送出 去,然后被主机B和交换机S2接收到。而S2又会将报文转发给主机C、D。

 

交换机在报文转发的过程中并不会篡改报文数据,只是做原样复制。然而桥接却并不是在物理层实现的,而是在数据链路层。交换机能够理解数据链路层的报文,所 以实际上桥接却又不是单纯的报文转发。

交换机会关心填写在报文的数据链路层头部中的Mac地址信息(包括源地址和目的地址),以便了解每个Mac地址所代表的主机都在什么位置(与本交换 机的哪 个网口相连)。在报文转发时,交换机就只需要向特定的网口转发即可,从而避免不必要的网络交互。这个就是交换机的“地址学习”。但是如果交换机遇到一个自 己未学习到的地址,就不会知道这个报文应该从哪个网口转发,则只好将报文转发给所有网口(接收报文的那个网口除外)。

比如主机C向主机A发送一个报文,报文来到了交换机S1的eth2网口上。假设S1刚刚启动,还没有学习到任何地址,则它会将报文转发给eth0 和 eth1。同时,S1会根据报文的源Mac地址,记录下“主机C是通过eth2网口接入的”。于是当主机A向C发送报文时,S1只需要将报文转发 到 eth2网口即可。而当主机D向C发送报文时,假设交换机S2将报文转发到了S1的eth2网口(实际上S2也多半会因为地址学习而不这么做),则 S1会 直接将报文丢弃而不做转发(因为主机C就是从eth2接入的)。

然而,网络拓扑不可能是永不改变的。假设我们将主机B和主机C换个位置,当主机C发出报文时(不管发给谁),交换机S1的eth1口收到报文,于是交换机 S1会更新其学习到的地址,将原来的“主机C是通过eth2网口接入的”改为“主机C是通过eth1网口接入的”。

但是如果主机C一直不发送报文呢?S1将一直认为“主机C是通过eth2网口接入的”,于是将其他主机发送给C的报文都从eth2转发出去,结果报 文就发 丢了。所以交换机的地址学习需要有超时策略。对于交换机S1来说,如果距离最后一次收到主机C的报文已经过去一定时间了(默认为5分钟),则S1需要忘 记 “主机C是通过eth2网口接入的”这件事情。这样一来,发往主机C的报文又会被转发到所有网口上去,而其中从eth1转发出去的报文将被主机C收 到。

2.2  linux的桥接实现

linux内核支持网口的桥接(目前只支持以太网接口)。但是与单纯的交换机不同,交换机只是一个二层设备,对于接收到的报文,要么转发、要么丢 弃。小型 的交换机里面只需要一块交换芯片即可,并不需要CPU。而运行着linux内核的机器本身就是一台主机,有可能就是网络报文的目的地。其收到的 报文除了转 发和丢弃,还可能被送到网络协议栈的上层(网络层),从而被自己消化。

linux内核是通过一个虚拟的网桥设备来实现桥接的。这个虚拟设备可以绑定若干个以太网接口设备,从而将它们桥接起来。

搭建网桥

在真机中的操作:

1)为了方便恢复原来网卡配置文件,先把/etc/sysconfig/network-scripts/中相关网卡配置文件移到/mnt/中



2)打开网络图形管理删除网络 只留下virbr0和virbr1



3)创建相关配置文件

创建网卡配置文件

 

 

systemctl restart  network            ##重启网络

 

 

3)可以看到br0和enp3s0生成

临时桥接搭建

1)删除虚拟机所有网络接口



2)搭建临时网桥


 

brctl addbr br0      ##建立br0
ifconfig br0 172.25.254.123/24
brctl addif br0 eth0
brctl show

删除临时网桥

 

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐