一、bond网络

    1)链路聚合

    2) 作用:主动备份模式 一次只能只能使用一个接口,如果接口故障,另一个会接替它

    3) 定义:bond就是两块网卡可以使用同一个ip工作,不会因为其中一块坏了而导致机器不可用,避免单点故障,增加带宽的同时也可以提高冗余性

bond网卡绑定mode共有七种(0~6) bond0、bond1、bond2、bond3、bond4、bond5、bond6

常用的有三种


mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。


mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。


mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。


需要说明的是如果想做成mode 0的负载均衡,仅仅设置这里options bond0 miimon=100 mode=0是不够的,与网卡相连的交换机必须做特殊配置(这两个端口应该采取聚合方式),因为做bonding的这两块网卡是使用同一个MAC地址.从原理分析一下(bond运行在mode 0下):


mode 0下bond所绑定的网卡的IP都被修改成相同的mac地址,如果这些网卡都被接在同一个交换机,那么交换机的arp表里这个mac地址对应的端口就有多 个,那么交换机接受到发往这个mac地址的包应该往哪个端口转发呢?正常情况下mac地址是全球唯一的,一个mac地址对应多个端口肯定使交换机迷惑了。所以 mode0下的bond如果连接到交换机,交换机这几个端口应该采取聚合方式(cisco称为 ethernetchannel,foundry称为portgroup),因为交换机做了聚合后,聚合下的几个端口也被捆绑成一个mac地址.我们的解 决办法是,两个网卡接入不同的交换机即可。


mode6模式下无需配置交换机,因为做bonding的这两块网卡是使用不同的MAC地址。


七种bond模式说明:


第一种模式:mod=0 ,即:(balance-rr) Round-robin policy(平衡抡循环策略)


特点:传输数据包顺序是依次传输(即:第1个包走eth0,下一个包就走eth1….一直循环下去,直到最后一个传输完毕),此模式提供负载平衡和容错能力;但是我们知道如果一个连接或者会话的数据包从不同的接口发出的话,中途再经过不同的链路,在客户端很有可能会出现数据包无序到达的问题,而无序到达的数据包需要重新要求被发送,这样网络的吞吐量就会下降


第二种模式:mod=1,即: (active-backup) Active-backup policy(主-备份策略)


特点:只有一个设备处于活动状态,当一个宕掉另一个马上由备份转换为主设备。mac地址是外部可见得,从外面看来,bond的MAC地址是唯一的,以避免switch(交换机)发生混乱。此模式只提供了容错能力;由此可见此算法的优点是可以提供高网络连接的可用性,但是它的资源利用率较低,只有一个接口处于工作状态,在有 N 个网络接口的情况下,资源利用率为1/N


第三种模式:mod=2,即:(balance-xor) XOR policy(平衡策略)


特点:基于指定的传输HASH策略传输数据包。缺省的策略是:(源MAC地址 XOR 目标MAC地址) % slave数量。其他的传输策略可以通过xmit_hash_policy选项指定,此模式提供负载平衡和容错能力


第四种模式:mod=3,即:broadcast(广播策略)


特点:在每个slave接口上传输每个数据包,此模式提供了容错能力


第五种模式:mod=4,即:(802.3ad) IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad 动态链接聚合)


特点:创建一个聚合组,它们共享同样的速率和双工设定。根据802.3ad规范将多个slave工作在同一个激活的聚合体下。


外出流量的slave选举是基于传输hash策略,该策略可以通过xmit_hash_policy选项从缺省的XOR策略改变到其他策略。需要注意的 是,并不是所有的传输策略都是802.3ad适应的,尤其考虑到在802.3ad标准43.2.4章节提及的包乱序问题。不同的实现可能会有不同的适应 性。


必要条件:


条件1:ethtool支持获取每个slave的速率和双工设定


条件2:switch(交换机)支持IEEE 802.3ad Dynamic link aggregation


条件3:大多数switch(交换机)需要经过特定配置才能支持802.3ad模式


第六种模式:mod=5,即:(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡)


特点:不需要任何特别的switch(交换机)支持的通道bonding。在每个slave上根据当前的负载(根据速度计算)分配外出流量。如果正在接受数据的slave出故障了,另一个slave接管失败的slave的MAC地址。


该模式的必要条件:ethtool支持获取每个slave的速率


第七种模式:mod=6,即:(balance-alb) Adaptive load balancing(适配器适应性负载均衡)


特点:该模式包含了balance-tlb模式,同时加上针对IPV4流量的接收负载均衡(receive load balance, rlb),而且不需要任何switch(交换机)的支持。接收负载均衡是通过ARP协商实现的。bonding驱动截获本机发送的ARP应答,并把源硬件地址改写为bond中某个slave的唯一硬件地址,从而使得不同的对端使用不同的硬件地址进行通信。

(1)添加网卡NIC

(2)首先应配置网络,再使用 ifconfig 命令查看是否配置好
(3)删除刚才配置的IP :nmcli connection delete  eth0
(4)查看是否已经删除:ifconfig
(5)添加bond网络:nmcli connection add con-name eth0 ifname bond0 type bond mode active-backup ip4 172.25.254.118/24
(6)添加eth0:nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0
(7)查看网络是否通:ping  172.25.254.118
(8)添加eth1:nmcli connection add con-name eth1 ifname eth1 type bond-slave master bond0
(9)ifconfig eth0 down
(10)ifconfig eth0 up
(11)watch -n 1 /proc/net/bonding/bond0

实例:

为主机添加网卡,保证机器有两块闲置的网卡,当第一网卡坏时,ip仍然可以使用,他会自动找寻第二块网卡

首先应该关闭虚拟机,然后点击灯泡,选中NIC:00:3c:0a,点击“添加硬件“选中设备类型virtio

bond口创建vlan子接口_负载均衡

bond口创建vlan子接口_bond口创建vlan子接口_02

bond口创建vlan子接口_加载_03

此时配置网卡成功

[root@dns-server ~]# ifconfig         #查看主机的ip
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 172.25.254.118  netmask 255.255.255.0  broadcast 172.25.254.255
        inet6 fe80::5054:ff:fe00:3c0a  prefixlen 64  scopeid 0x20<link>
        ether 52:54:00:00:3c:0a  txqueuelen 1000  (Ethernet)
        RX packets 89  bytes 8253 (8.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 65  bytes 9285 (9.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 52:54:00:9f:7b:43  txqueuelen 1000  (Ethernet)
        RX packets 86  bytes 7025 (6.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 266  bytes 20723 (20.2 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 266  bytes 20723 (20.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

bond口创建vlan子接口_负载均衡_04

# 删除ip

查看ip是否删除

bond口创建vlan子接口_mac地址_05

2、添加网卡后,进行对bond0建立

(1)建立bond0

bond口创建vlan子接口_负载均衡_06

(2)为bond0网络添加设备eth0

bond口创建vlan子接口_mac地址_07

(3)为bond0网络添加设备eth1

bond口创建vlan子接口_加载_08

3、 通过及监测命令:watch -n 1 cat /proc/net/bonding/bond0 可看到 bond0 的状态(eth0 作为 bond0 活跃的从属设备,而eth1 则在随时备用)

bond口创建vlan子接口_加载_09

4、关闭eth0

bond口创建vlan子接口_负载均衡_10

5、关闭eth0,即模拟eth0网卡出现问题,从而观察bond0从属设备的运行状态,如下图所示,eth0出现问题后,eth1将被替代

bond口创建vlan子接口_bond口创建vlan子接口_11

6、ping 172.25.254.118,当关闭eth0时,网络依然是通的

bond口创建vlan子接口_加载_12

二、team网络


1.team接口
Team和 bond0 功能类似
Team不需要手动加载相应内核模块
Team有更强的拓展性
支持 8块网卡
作者:
链接:https://www.imooc.com/article/30283
来源:慕课网


1.team接口
Team和 bond0 功能类似
Team不需要手动加载相应内核模块
Team有更强的拓展性
支持 8块网卡
2.team的种类
broadcast               广播容错
roundrobin              平衡轮叫
activebackup        主备
loadbalance             负载均衡
作者:
链接:https://www.imooc.com/article/30283
来源:慕课网


team和bond有相似,team不需要手动加载内核模块,team有更强的拓展性

team的种类:(1)broadcast 广播容错

                    (2)roundrobin :平衡轮叫

                    (3)activebackup :主备

                    (4)loadbalance :负载均衡


 1 、 删除bond0网络:nmcli connection  delete bond0

        删除设备eth0:nmcli connection  delete eth0

        删除设备eth1:nmcli connection  delete eth1


1.team接口
Team和 bond0 功能类似
Team不需要手动加载相应内核模块
Team有更强的拓展性
支持 8块网卡
2.team的种类
broadcast               广播容错
roundrobin              平衡轮叫
activebackup        主备
loadbalance             负载均衡
作者:
链接:https://www.imooc.com/article/30283
来源:慕课1、首先应删除bond0网络:nmcli connection  delete bond0   删除设备eth0:nmcli connection  delete et 删除设备eth1nmcli connection  deleate eth1


2、添加team网络:nmcli connection add con-name team0 ifname team0 type team config '{"runner":{"name":"activebackup"}}' ip4 172.25.254.118/24

add:为NetworkManager添加一个链接       con-name:链接名称

ifname :连接到的接口                                type:连接类型

config:为team模式                                    Ip4:IPV4类的地址
3、添加设备eth0:nmcli connection add con-name eth0  ifname eth0 type team-slave master team0
4、添加设备eth1:nmcli connection add con-name eth1  ifname eth1 type team-slave master team0
5、关闭eth0设备:ifconfig eth0 down
6、打开eth0设备:ifcobfig eth0 up

监控:watch -n 1 teamdctl team0 stat

实例:

删除设备eth1和eth0和bond0网络

bond口创建vlan子接口_负载均衡_13

添加team网络

bond口创建vlan子接口_加载_14

查看ip

bond口创建vlan子接口_负载均衡_15

bond口创建vlan子接口_mac地址_16

添加设备eth0

bond口创建vlan子接口_bond口创建vlan子接口_17

添加设备eth1

bond口创建vlan子接口_mac地址_18

监控cat  teamdctl  team0 stat

bond口创建vlan子接口_加载_19

bond口创建vlan子接口_mac地址_20

关闭设备eth0

bond口创建vlan子接口_加载_21

监控cat teamdctl  team0 stat

bond口创建vlan子接口_负载均衡_22

bond口创建vlan子接口_mac地址_23

eth0网卡坏了之后,可以用eth1来替换,这一点跟team0网络是一样的

bond口创建vlan子接口_加载_24

三、临时添加网桥



网桥(Bridge)是早期的两端口二层网络设备,用来连接不同网段。网桥的两个端口分别有一条独立的交换信道,不是共享一条背板总线,可隔离冲突域。网桥比集线器(Hub)性能更好,集线器上各端口都是共享同一条背板总线的。后来,网桥被具有更多端口、同时也可隔离冲突域的交换机(Switch)所取代。


网桥(Bridge)像一个聪明的中继器。中继器从一个网络电缆里接收信号, 放大它们,将其送入下一个电缆。相比较而言,网桥对从关卡上传下来的信息更敏锐一些。网桥是一种对帧进行转发的技术,根据MAC分区块,可隔离碰撞。网桥将网络的多个网段在数据链路层连接起来。


网桥也叫桥接器,是连接两个局域网的一种存储/转发设备,它能将一个大的LAN分割为多个网段,或将两个以上的LAN互联为一个逻辑LAN,使LAN上的所有用户都可访问服务器。



    1、 添加名称为br0的网桥:brctl addbr br0

   2、查看是否已经添加网桥:brctl show
   3、为网桥临时添加ip:ifconfig br0 172.25.254.118/24
   4、查看网桥的的ip:ifconfig br0
   5、查看网络是否通:ping  172.25.254.250 (此时网络不通)
   6、为网桥br0添加设备eth0:brctl addif br0 eth0
   7、查看是否有网桥:brctl  show
   8、查看网络是否通:ping 172.25.254.250  此时网络通
   9、删除网桥上添加的接口:brctl delif  br0  eth0
   10、关闭网桥:brctl br0 down

   11、将网桥删除:brctl delbr br0

实例:

查看是否有网桥

bond口创建vlan子接口_bond口创建vlan子接口_25

添加名称为br0的网桥

bond口创建vlan子接口_mac地址_26

查看是否已经添加网桥

bond口创建vlan子接口_mac地址_27

为网桥临时添加ip

bond口创建vlan子接口_mac地址_28

查看网络是否通

bond口创建vlan子接口_mac地址_29

添加设备eth0

bond口创建vlan子接口_加载_30

查看是否添加接口eth0

bond口创建vlan子接口_bond口创建vlan子接口_31

查看网络是否通

bond口创建vlan子接口_负载均衡_32

删除设备eth0

bond口创建vlan子接口_加载_33

关闭网桥

bond口创建vlan子接口_bond口创建vlan子接口_34

删除网桥

bond口创建vlan子接口_加载_35

四、永久添加网桥

1、编辑网络接口配置文件vim /etc/sysconfig/network-scripts/ifcfg-eth0

1 DEVICE=eth0  #设备名称eth0
  2 ONBOOT=yes
  3 BOOTPROTO=none
  4 BRIDGE=br0  #桥接对象为br0

2、编辑网桥配置文件:vim /etc/sysconfig/network-scripts/ifcfg-br0

1 DEVICE=br0  #设备名称为br0
  2 ONBOOT=yes
  3 BOOTPROTO=none
  4 IPADDR=172.25.254.218  #设置ip为172.25.254.218
  5 PREFIX=24    #网关24
  6 TYPE=Bridge #类型为桥接

3、关闭NetworkManager:systemctl  stop  NetworkManager.service

4、重启网络:systemctl restart network

实例:

编辑网络接口配置文件

bond口创建vlan子接口_bond口创建vlan子接口_36

编辑文件

bond口创建vlan子接口_负载均衡_37

编辑网桥配置文件

bond口创建vlan子接口_mac地址_38

bond口创建vlan子接口_mac地址_39

关闭NetworkManager

bond口创建vlan子接口_负载均衡_40

重启网络

bond口创建vlan子接口_加载_41

打开NetworkManager

bond口创建vlan子接口_mac地址_42

查看网桥是否添加接口eth0

bond口创建vlan子接口_加载_43













j


1.team接口
Team和 bond0 功能类似
Team不需要手动加载相应内核模块
Team有更强的拓展性
支持 8块网卡
2.team的种类
broadcast               广播容错
roundrobin              平衡轮叫
activebackup        主备
loadbalance             负载均衡
作者: