linux系统之高级网络控制

一.虚拟网络接口bond

 
 
Bond 的原理是网卡在混杂 (promisc) 模式下运行;
在这种模式下,网卡不像在通常情况下,只接收目的硬件地址是自身 Mac 的以太网帧,对于别的数据帧都滤掉,以减轻驱动程序的负担;
而是接收网络上所有的数据帧,而且修改了驱动程序中的 mac 地址,将两块网卡的 Mac 地址改成相同,
可以接收特定 mac 的数据帧,然后把相应的数据帧传送给 bond 驱动程序处理。
Bond 网卡的工作模式
bond有7种工作模式。
网卡 bond 后的工作模式有两种:主备的工作方式和负载均衡方式。



在主备模式下 , 只有主网卡 eth0 工作,eth1 作为备份网卡是不工作的,只有当一个网络接口失效时 ( 例如主交换机掉电等 ),
为了不会出现网络中断,系统会按照配置指定的网卡顺序启动工作,保证机器仍能对外服务,起到了失效保护的功能。
在负载均衡工作模式下,由于两块网卡都正常工作,它能提供两倍的带宽,在这种情况下出现一块网卡失效,
仅仅会是服务器出口带宽下降,也不会影响网络使用。

实验:主备模式下bond的工作方式

1.首先准备两块网卡(先不要设置)

2.添加一个bond模块






虽然bond有ip但是不能ping通,因为里面没有添加网卡

3.给bond添加网卡





将eth1网卡填入,现在bond0两块网卡,如果将eth0破坏掉,eth1会顶替,还能正常ping通



查看bond中有几块网卡:



二.team

team相对于bond,功能大致相同,但是性能team更强
1.介绍
team也是链路聚合的一种方式
最多支持8块网卡(bond最多支持两块)
支持模式:广播 轮循 主备 负载均衡
2.配置(提示:如果安装命令配置会出错,可以选择窗口化进行配置)
nmcli connection add con-name team0 ifname team0 type team config ‘{“runner”:{“name”:”activebackup”}}’ ip4 172.25.254.100/24 
                                                                            ##创建team模块 
nmcli connection add con-name eth0 ifname eth0 type team-slave master team0   ##给team模块上添加网卡eth0
nmcli connection add con-name eth1 ifname eth1 type team-slave master team0   ##给team模块上添加网卡eth1 
3.测试
teamdctl team0 stat    ##查询team的状态

ifconfig eth0 down   ##让eth0奔溃,观察网络是否瘫痪
ifconfig eth0 up

team上有两个网卡一个工作一个待命!



三.网桥

 
 

1.介绍

网桥它工作于数据链路层,不但能扩展网络的距离或范围,而且可提高网络的性能、可靠性和安

全性。网桥将两个相似的网络连接起来,并对网络数据的流通进行管理。(主要用于连接不同的端口)

2.配置

vim /etc/sysconfig/network-scripts/ifcfg-enp0s25

DEVICE=enp0s25 ##设备名称

ONBOOT=yes ##开启服务设备自动激活

BOOTPROTO=none ##网卡工作状态

BRIDGE=br0 ##网卡开启的网桥接口


vim /etc/sysconfig/network-scripts/ifcfg-br0

DEVICE=br0

ONBOOT=yes

BOOTPROTO=none

IPADDR=172.25.254.20

NETMASK=255.255.255.0

TYPE=Bridge ##网络接口类型是桥接

systemctl stop NetworkManager.service ##这个服务是记录网络状态,如果不关闭这个服务,会记录前面的网络状态,导致误差。

systemctl restart network

systemctl start NetworkManager.service

3.临时配置一个临时网桥

添加

systemctl stop NetworkManager

brctl show ##显示状态

brctl addbr br1 ##添加br1

brctl addif br1 eth0 ##在br1上添加网卡eth0

ifconfig eth0 up

ifconfig br1 172.25.254.x netmask 255.255.255.0 ##配置ip地址

brctl show

删除

ifconfig br1 down

brctl delif br1 eth2

brctl delbr br1

brctl show