网卡的链路聚合是什么
网卡的链路聚合就是将多块网卡连接起来,当一块网卡损坏,网络依旧可以正常运行,可以有效的防止因为网卡损坏带来的损失,同时也可以提高网络访问速度。
网卡的链路聚合一般常用的有"bond"和"team"两种模式,"bond"模式最多可以添加两块网卡,"team"模式最多可以添加八块网卡。
bond(绑定)网络接口是什么
网卡bond的定义:
网卡bond(绑定),也称作网卡捆绑。就是将两个或者更多的物理网卡 绑定成一个虚拟网卡。
bonding是通过把多张网卡绑定为一个逻辑网卡,实现本地 网卡的冗余,带宽扩容和负载均衡,在应用部署中是一种常用的技术。
多网卡绑定实际上需要提供一个额外的软件的bond驱动程序实现。通过 驱动程序可以将多块网卡屏蔽。对TCP/IP协议层只存在一个Bond网卡,在 Bond程序中实现网络流量的负载均衡,即将一个网络请求重定位到不同的网 卡上,来提高总体网络的可用性。
网卡绑定的目的:
1.提高网卡的吞吐量。
2.增加带宽,提供冗余。
网卡bond的实现步骤
实验环境:server虚拟机
实验背景:server主机应该拥有至少两块网卡,没有的话手动添加。
实验步骤:
1.添加网卡
2.nmcli connection show 查看已经存在的ip链接
3.nmcli connection delete xxxx1 xxx2 xx3 删除所有链接
4.nmcli connection add con-name bond0 ifname bond0 type bond mode active-backup ip4 172.25.254.110/24 添加主备模式bond接口
5.打开一个shell watch -n 1 cat /proc/net/bonding/bond0 此完整目录只有在添加bond0之后才会出现
6.打开一个shell ping 172.25.254.2
7.ifconfig 查看
8.nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0 添加网卡eth0
9.nmcli connection add eth1 ifname eth1 type bond-slave master bond0 添加网卡eth1
10.ifconfig eth0 down 关闭eth0
11.ifconfig eth0 up
12.ifconfig eth1 down 关闭eth1
补充:bond模式
bond模式:
(1)Mode=0(balance-rr) 表示负载分担round-robin,平衡轮询策略,具有负载平衡和容错功能 bond的网卡MAC为当前活动的网卡的MAC地址,需要交换机设置聚合模式,将多个网卡绑定为一条 链路。
(2)Mode=1(active-backup) 表示主备模式,具有容错功能,只有一块网卡是active,另外一块是 备的standby,这时如果交换机配的是捆绑,将不能正常工作,因为交换机往两块网卡发包,有一半包 是丢弃的。 (3)Mode=2(balance-xor) 表示XOR Hash负载分担(异或平衡策略),具有负载平衡和容错功能 每个slave接口传输每个数据包和交换机的聚合强制不协商方式配合。(需要xmit_hash_policy)。
(4)Mode=3(broadcast) 表示所有包从所有interface发出,广播策略,具有容错能力,这个不均 衡,只有冗余机制…和交换机的聚合强制不协商方式配合。
(5)Mode=4(802.3ad) 表示支持802.3ad协议(IEEE802.3ad 动态链接聚合) 和交换机的聚合 LACP方式配合(需要xmit_hash_policy)。
(6)Mode=5(balance-tlb) 适配器传输负载均衡,并行发送,无法并行接收,解决了数据发送的瓶 颈。 是根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave。
(7)Mode=6(balance-alb) 在5的tlb基础上增加了rlb。适配器负载均衡模式并行发送,并行接收 数据包
常用的有三种
mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。
mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。
mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。
team聚合
team,聚合连接(链路聚合),由多块网卡(team-slave)一起组建而成的虚拟网卡,即“组队”。
作用1:轮询式(roundrobin)的流量负载均衡 这是它和bond的不同之处,哪一块负载小,让哪块去工作.
作用2:热备份(activebackup)连接冗余
热备份配置 : {“runner”:{“name”:“activebackup”}}
网卡team的实现步骤
实验环境:server虚拟机
实验背景:server主机应该拥有至少两块网卡,没有的话手动添加。
实验步骤:
将上一个实验所建立的链接删除
nmcli connection show
nmcli connection delete xxx1 xxx2
1.nmcli connection add con-name team0 ifname team0 type team config '{"runner":{"name":"activebackup"}}' ip4 172.25.254.210/24
#添加team0
2.ifconfig 查看
设置监控和测试
3.watch -n teamd ctl team0 state
4.ping 172.25.254.2
5.nmcli connection add con-name eth0 ifname eth0 type team-slave master team0 添加网卡
6.nmcli connection add con-name eth1 ifname eth1 type team-slave master team0
测试:
ifconfig eth0 down 关闭eth0
ifconfig eth0 up
ifconfig eth1 down
当把某个网卡down掉之后,另一块自动up 另一块顶替工作 实现无缝对接
1.2.3.4.5.
注意:
在做实验时 nmcli connection show 这里面的链接必须都是可用的,如果有错误的,则网络不会通畅
team实验本来应该设置轮循(轮到谁就是谁)但是实验效果不明显,在这里做了主备。
网络的桥接是什么
网络桥接用网络桥实现共享上网主机和客户机除了利用软件之外,还可以用系统自带的网络桥建立连接 用双网卡的机器做主机
例如在一台主机上制作一台虚拟机,虚拟机是没有物理网卡的,这时虚拟机数据的发送和接收就需要通过主机上的物理网卡,需要主机的内核来处理这些问题,这无疑增加了主机内核的负担,也延长了虚拟机的反应速度,如果搭建网络桥,使得虚拟机的内核可以在一定程度上使用主机的物理网卡,就可以解决这个问题。
NAT和桥接的走向图
1.NAT走向图
2.桥接 Bridge走向图
br0模式enp0s25 物理网卡上没有ip ip都在br0上
网络桥接的实现步骤
实验环境:真机
1.删掉真机的除了lo之外的ip配置文件
2.编辑配置文件ifg-enp0s25,使得自己的主机拥有一个ip 可以上网
接口名称取决于硬件的物理位置。 en 仅仅就是 “ethernet” 的意思,就像 “eth” 用于对应 eth0,一样。 p 是以太网卡的总线编号,s 是插槽编号
3.在真机设置桥接
3.当没有添加br0 桥接时,新建一个虚拟机与添加了桥接的做比对。
发现:
没有桥接的使用nat模式:
虚拟机和真机是寄生关系 虚拟机ssh某个主机时 ,那个真机显示的是真机ip在ssh它
br0模式:
br0 虚拟机和真机是平行关系 桥接 更稳定 速度快 因为直接连接,不需要经过地址转换
注意:
为了恢复真机的ip,用文件形式设置br0,这种效果是永久的。
网卡桥接的相关配置
实验环境:虚拟机server
添加网卡桥接
1.删除原有的ip链接
nmcli connection show
nmcli connection delete xxx
2.添加br0
brctl addbr br0
brctl show #显示桥接
ifconfig
ifconfig br0 172.25.254.110/24
ifconfig
3.添加接口 真实网卡
brctl addif br0 eth0
brctl show
测试:
ping 172.25.254.2
删除桥接网卡:
1.停止 br0
ifconfig br0 down
2.删除br0
brctl delif br0 eth0 从eth0上把br0卸载下来
brctl show
brctl delbr br0 删除它br0
brctl show
注意:
命令方式管理桥接 临时的 在虚拟机里
添加的接口 也就是真实的物理设备 是真实存在的 虚拟机是eth0 而不是enp0s25
对于桥接的理解
1.桥接主要用于虚拟化虚拟机
2.nat:装机后 获得的ip 不和真机处在同一个网段 192.168…
bridge:装虚拟机速度快 ping (数据交换)时速度快
3.虚拟机的网卡是软件模拟出来的,它是通过真机的网卡与外界进行数据交换的,真机的网卡受到真机内核的控制。
4.虚拟机也有内核。
5.虚拟机向外界发送数据时,先把自己的数据包给真机内核,在真机内核做了NAT地址转换 ,(不做的话分不清是虚拟机还是真机器的数据包)再从真机网卡出去。每一个数据包都要做NAT,会影响数据传输。
6.网桥是什么?
通俗的说就是让真机内核开个口,在虚拟机网卡和真机网卡之间架起一座桥梁,让它两直接通信。此桥梁就是桥接,br0。
因此,虚拟机传输出来的数据,并且它的ip,可以和真机对外开放的ip 在同一个网段。
7.桥接也是真机物理网卡上开放的接口。接口可以让虚拟机使用。