Bond
一、简介
链路聚合主动备份网卡,当一个网卡接口故障时,另一个会接替他的工作,不中断。bond是将多块网卡虚拟链接成一块网卡的技术,通过bond技术让多块网卡看起来是一个单独的以太网接口设备并具有相同的ip地址。bond默认情况下支持两块网卡工作。
二、特点
在linux下配置bond,通过网卡绑定技术既能增加服务器的可靠性,又增加了可用网络宽带,为用户提供不间断的网络服务,实现主备功能。
三、相关配置与检验
1:为虚拟机添加第二块网卡
在虚拟机管理界面为虚拟机添加第二块网卡
2:删除虚拟机原有的网络配置 ##nmcli connection delete eth0
3:添加bond接口,必须添加过bond接口后,/proc/net/中才会出现bonding目录
nmcli connection add con-name bond0 ifname bond0 type bond mode active-backup ip4 172.25.66.11/24
此时查看bond0接口会有一个IP,但是ping不通其他网络,是因为没有给bond
0接口添加网卡设备
4:为bond添加第一块网卡设备eth0 ###添加网卡设备之后才可以ping通网络
nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0
5:添加第二块网卡设备eth1
nmcli connection add con-name eth1 ifname eth1 type bond-slave master bond0
6:监控bond0
watch -n 1 cat /proc/net/bonding/bond0 #####bonding目录下的文件全部是bond0的信息
7:添加的两块网卡设备一块使用一块备用,当第一块损坏后第二块直接顶替
在监控命令下打开另外一个shell 关闭使用中的网卡设备,可以看到备用网卡直接顶替关掉的网卡
ifconfig eth0 down ###关掉正在启用的网卡设备eth0
ifconfig eth0 up ###启用网卡设备,启用后eth0不会立即接替eth1,将会处于备用状态,等eth1禁用之后eth0会接替
四.删除建立的bond的步骤
1.nmcli connection delete bond0 删除bond0
2.nmcli connection delete eth0 删除bond0上的eth0
3.nmcli connection delete eth1 删除bond0上的eth1
Team
一、简介
team和bond类似,也是链路聚合,最多支持8块网卡,Team 不需要手动加载相应内核模块
二、工作方式
broadcast 广播容错
roundrobin 轮询
activebackup 主备
loadbalance 负载均衡
三、相关配置
1:删除bond相关配置,上面的最后一步我们已经删过了,直接下一步就行
2:添加team接口
nmcli connection add con-name team0 ifname team0 type team config ‘{“runner”:{“name”:“activebackup”}}’ ip4 172.25.66.11/24
3:为team添加网卡设备
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
4:监控team0
watch -n 1 teamdctl team0 stat
5:在监控命令下打开另外一个shell 关闭使用中的网卡设备,可以看到备用网卡直接顶替关掉的网卡
ifconfig eth0 down ###关掉网卡设备
四:删除team0配置
方法和bond0删除方法相同
搭建网桥
一、桥接的概念
简单来说,桥接就是把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以使得网口之间的报文能够互相转发。
交换机就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。于是,与交换机相连的若干主机就能够通过交换机的报文转发而互相通信。
如下图:主机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转发出去,结果报文就发 丢了。所以交换机的地址学习需要有超时策略(FDB的老化)。对于交换机S1来说,如果距离最后一次收到主机C的报文已经过去一定时间了(默认为5分钟),则S1需要忘记 “主机C是通过eth2网口接入的”这件事情。这样一来,发往主机C的报文又会被转发到所有网口上去,而其中从eth1转发出去的报文将被主机C收到。
二、网桥的功能
概括来说,网桥实现最重要的两点:
1、MAC学习
学习MAC地址,起初,网桥是没有任何地址与端口的对应关系的,它发送数据,还是得想HUB一样,但是每发送一个数据,它都会关心数据包的来源MAC是从自己的哪个端口来的,由于学习,建立地址-端口的对照表(CAM表)。
2、报文转发
每发送一个数据包,网桥都会提取其目的MAC地址,从自己的地址-端口对照表(CAM表)中查找由哪个端口把数据包发送出去。
三、网桥的配置(真机中做)
1、进入 /etc/sysconfig/network-scripts
将两个网络配置文件移动到/opt中,用作备份,网络配置文件可进入文件中查看
mv ifcfg-br0 ifcfg-p4p2 /opt
2:nm-connectin-editor
删掉除了virbr0以外其他的所有东西
3:重新设定一个网络然后重启
4:vim ifcfg-p4p2
写入:
DEVICE=p4p2
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br0
5:vim ifcfg-br0
写入:
DEVICE=br0
ONBOOT=yes
BOOTPROTO=none
IPADDR=172.25.66.250
PREFIX=24
TYPE=Bridge
6:systemctl stop NetworkManager.service
systemctl restart network
7:brctl show
验证网桥是否搭建成功
virt-manager
安装虚拟机看可不可以选择br0一行
四:########虚拟机中#####
1:brctl addbr br0 添加
brctl show
ifconfig
ifconfig br0 172.25.66.11/24
ifconfig br0
ping 172.25.66.250 ping不通
brctl addif br0 eth0 将br0桥接在eth0上
ping 172.25.66.250 可以ping通
ifconfig br0 down
brctl delbr br0###########删除桥接