一、基本概念
说明:碰到一个新名词时,如何不甚理解,就去找度娘,如下摘自度娘:
链路聚合(英语:Link Aggregation)是一个计算机网络术语,指将多个物理端口汇聚在一起,形成一个逻辑端口,以实现出/入流量吞吐量在各成员端口的负荷分担,交换机根据用户配置的端口负荷分担策略决定网络封包从哪个成员端口发送到对端的交换机。当交换机检测到其中一个成员端口的链路发生故障时,就停止在此端口上发送封包,并根据负荷分担策略在剩下的链路中重新计算报文的发送端口,故障端口恢复后再次担任收发端口。链路聚合在增加链路带宽、实现链路传输弹性和工程冗余等方面是一项很重要的技术。
进一步用来描述该方法的总括术语还包括port trunking,link bundling,以太网/网络/ NIC绑定(Ethernet/network/NIC bonding)或网卡绑定(NIC teaming)。这些总括术语不仅包括与供应商无关的标准,如定义于IEEE 802.1ax和IEEE 802.3ad用于以太网的链路聚合控制协议(LACP),或以前的IEEE 802.3ad定义,也包括各种有专利的解决方案。
具体到操作系统中,通过如下的方式来进行:
原理:就是多个物理的端口绑定在一起当成一个逻辑端口来使用,以便提高带宽,实现负载平衡或高可用的功能!
应用场景:网卡的链路聚合就是将多块网卡连接起来,当一块网卡损坏,网络依旧可以正常运行,可以有效的防止因为网卡损坏带来的损失,同时也可以提高网络访问速度,说白了就是替补,防患于未然!
配置的模式:网卡的链路聚合常用的有"bond"和"team"两种模式,"bond"模式最多可以添加两块网卡,"team"模式最多可以添加八块网卡。
配置逻辑:配置一个逻辑端口的连接,视作 master;然后把需要的物理端口配置成 slave 连接,绑定到组。然后把这个逻辑端口分配 IP就可以用了
二、实验过程
2.1)配置bond网络接口
说明1:实验环境中需要两块真实的网卡(网卡上不能有任何连接)
说明2:配置虚拟bond网卡,同时在此网卡上给虚拟的bond端口配置ip和网关(与外界通信)!
说明3:模式0(平衡轮播-->active-rr)、模式1(主动备份)、模式2(广播),这里采用的模式是模式1(比较稳定)
说明:监控命令
说明:将虚拟出来的端口team0绑定两个真实的物理网卡(核心:type、master)
Master:主盘、Slave:从
注意:这两个实际的物理网卡是不要配置IP地址的!
验证
方式:ifconfig eth0|1 down|up #观察watch的结果以及ping的结果(连接是否中断)
2.2)配置team网络接口(rhel7新增的)
(1)首先必须具备两块网卡-->实验环境的搭建
(2)nmcli命令建立team接口
nmcli connection add con-name team0 ifname team0 type team config '{"runner":{"name":"activebackup"}}' ip4 172.25.254.100/24
注意:type和config的配置(JSON格式)
(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
核心:type和master
(4)监控命令
watch -n 1 teamdctl team0 state
(4)测试
ifconfig eth0|eth1 down -->观察ping x.x.x.x的效果
需求:修改聚合链路模式
nmcli connection modify team0 team.config '{"runner":{"name":"loadbalance"}}
其它验证方式
(1)查看端口组中存在的接口
teamnl team0 port
(2)查看目前正在工作的接口
teamnl team0 getoption activeport
(3)显示所有的端口组属性
teamnl team0 options
三、网络桥接
了解:默认主机是没有网桥的(内核不开放的),虚拟机内核和系统和真机的内核和系统是相互独立的!
原理:在网卡上开一个接口,而该接口绑定一个IP,同一网段的虚拟机直接通过此接口绑定的IP与外界通信,相当于在虚拟机和真机上面架了一个桥,不需要受内核路由的控制,直接可以与外界通信!
NAT和网桥的对比
1)相对于NAT,网桥不需要地址转换,也不需要路由转发,也不需要配置网关,就可以与外界通信(配置的繁琐性)!
2) 网桥是工作在数据链路层(不需要IP,通过MAC通信),而NAT是在网络层(需要IP),所以前者的速度比后者快!
说明: NAT每次都需要NAT然后内核路由转发!
测试前的提醒:为了保证实验环境,以及可以还原到最初的设置
1)保留两个配置,其它的通过nmcli或者图形的nm-con*来删除
(1)mv ifcfg-eno1 ifcfg-br0 /opt
(2)删除除了ifcfg-lo(回环地址)之外的/etc/sysconfig/network-scipts/ifcfg-*的所有文件
方式2:nmcli 命令删除
方式3:nm-con*图形的方式来删除
(3)systemctl restart network #重启网络
(4)测试:nmcli device status查看(只剩下三个即可)
说明:有三个是删除不了的!
2)核心配置(两个配置文件)
###########核心################
说明:vim ifcfg-enpo1
DEVICE=enpo1
ONBOOT=yes
BOOTPROTO=none
BRIDGE=br0 #核心表示要创建一个网桥接口
###############网桥是软件模拟的,单也必须硬件来支持#################
vim ifcfg-br0 #注意:名字必须和上述相同
DEVICE=br0
ONBOOT=yes
BOOTPROTO=static
IPADDR=172.25.254.10
PREFIX=24
TYPE=Bridge #核心配置(注意大小写)
3)测试
systemctl restart network
ifocnfig #查看(两个网卡,一个是软件虚拟出来的网络接口)
brctl show #(重启前后)对比
通过选择虚拟机的安装速度(桥接和NAT)来对比二者的速度!
配置IP的注意事项
1)图形配置如果不遵循,ifcfg-网卡,也能生效的原因是自动帮我们添加了网卡的MAC地址!
导致的问题:一个网卡多个IP,但是多个两个配置文件(其中一个是图形方式配置,文件不是网卡的后缀),此IP不生效!
2)如果手动配置,是"ifcfg-非网卡"的形式,则IP不生效,系统不会自动帮我们添加网卡的MAC地址,不生效!
一个原则:配置ip时,ifcfg-*必须网卡的名字一致,一个网卡绑定多个IP的时候最好写在同一个配置文件中!
4)临时管理桥接
#(1)实验环境的还原
rm -fr ifcfg-eno1 ifcfg-br0 /opt
cp ifcfg-eno1 ifcfg-br0 /etc/sysconfig/network-scripts/
#(2)虚拟机做测试,命令行临时管理桥接
brctl show #没有网桥
brctl addbr br0 #增加一个网桥(理解上为一块网卡)
brctl show #有网桥,但是没有IP
ifconfig br0 172.25.254.110/24 #网桥上增加一个IP
ifconfig #查看此网桥的信息
brctl addif br0 eth0 #在那个真实的网卡上开一个网桥,此时之前的设置才能生效
ping 172.25.254.250 #测试:是否能通信!
#################删除网桥的完整步骤#####################
brctl delif br0 eth0 #删除eth0的网桥br0
brctl show #此网桥就没有接口了
ifconfig br0 dowm #关闭网桥(软件模拟的)
brctl delbr br0 #删除网桥
说明:临时测试往往是不想破坏原有的系统环境,一旦重启服务一切就恢复了!
5)通过网桥的方式来上网