#链路聚合基础概念

链路聚合:

指将多个物理端口汇聚在一起,形成一个逻辑端口,用于分担端口的负载压力。

链路聚合模式:

1)balance-rr:轮循模式(传输速率变快)

2)active-back一块网卡损坏,另一块才会开始工作(使传输变得稳定)

一.配置链路聚合的两种方式

1.bonding方式

实验一:命令方式完成链路聚合配置(一块网卡损坏,备用网卡自动开始工作,网络不会断开)

环境:

server,添加至两块网卡,nm-connetcion-editor删除所有网络配置

centos7聚合链路 linux链路聚合配置命令_桥接

监控命令:

watch -n 1 cat /proc/net/bonding/bond0    ---接口状态信息文件

检测一:真机ping虚拟机server
检测二:查看监控窗口
步骤:

1)nmcli connecion add con-name bond0 ifname bond0 type bond mode active-backup ip4 172.25.254.162/24     ---bonding方式添加链路聚合接口,这是一个虚拟接口,此时没有真实设备,所以无法ping通
                          网络名称       设备名称  网络工作模式bond   聚合接口工作模式

centos7聚合链路 linux链路聚合配置命令_centos7聚合链路_02

查看监控窗口,链路聚合接口状态信息中,当前的设备为None

centos7聚合链路 linux链路聚合配置命令_centos7聚合链路_03

此时没有真实设备,所以无法ping通

centos7聚合链路 linux链路聚合配置命令_学习笔记_04


2)nmcli connection add con-name eth0 ifname eth0 type bond-slave master bond0  ---将eth0添加到链路聚合接口的物理设备,此时真机可以ping通server

                           网络名称       设备名称      网络工作模式  从属于bond0

centos7聚合链路 linux链路聚合配置命令_vim_05

查看监控窗口,正在工作的设备是eth0

centos7聚合链路 linux链路聚合配置命令_链路_06

此时可以ping通服务器server

centos7聚合链路 linux链路聚合配置命令_链路_07


3)nmcli connection add con-name eth1 ifname eth1 type bond-slave master bond0  ---将eth1添加到链路聚合接口的物理设备,查看监控窗口

centos7聚合链路 linux链路聚合配置命令_学习笔记_08

查看监控窗口,eth1为备用网卡,eth0为正在工作的网卡

centos7聚合链路 linux链路聚合配置命令_vim_09

4)ifconfig eth0 down ---此时server工作的网卡是eth0,模拟eth0损坏,将eth0停掉,此时监控窗口中看到eth1成为工作的网卡,而真机也可以ping通,证明链路聚合可以保证在一块网卡损坏时,网络可以正常服务。

centos7聚合链路 linux链路聚合配置命令_centos7聚合链路_10

查看监控窗口,eth0状态为down,eth1成为工作的网卡

centos7聚合链路 linux链路聚合配置命令_vim_11

此时eth0模拟损坏,但是网络依然正常工作,证明链路聚合方式可以提高网络稳定性

centos7聚合链路 linux链路聚合配置命令_桥接_12


5)ifconfig eth0 up   ---此时eth0修理后重启,查看监控窗口,工作的网卡是eth1,eth0变为备用的网卡。

也有可能会出现两块网卡通时损坏的情况,但是一般是人为的,比较少见

centos7聚合链路 linux链路聚合配置命令_centos7聚合链路_13

此时eth0为up状态,eth1为正在工作的网卡,当eth1损坏时,eth0又会开始工作

centos7聚合链路 linux链路聚合配置命令_centos7聚合链路_14

实验二:

文件编辑方式来完成链路聚合配置
环境:

将之前所设网络配置清空
     nmcli connection delete bond0
     nmcli connection delete eth0
     nmcli connection delete eth1

centos7聚合链路 linux链路聚合配置命令_centos7聚合链路_15

监控命令:

watch -n 1 cat /proc/net/bonding/bond0

centos7聚合链路 linux链路聚合配置命令_链路_16

检测:

查看监控窗口

步骤:

1)cd /etc/sysconfig/network-scripts

centos7聚合链路 linux链路聚合配置命令_vim_17


2)vim ifcfg-bond

centos7聚合链路 linux链路聚合配置命令_vim_18

DEVICE=bond0
  ONBOOT=yes
  BOOTPROTO=none
  IPADDR=172.25.254.162
  NETMASK=255.255.255.0
  TYPE=Bond         ---类型为Bond
  BONDING_OPTS=mode=active-backup    ---指定工作模式
 systemctl restart network

centos7聚合链路 linux链路聚合配置命令_链路_19

接口bond配置信息

centos7聚合链路 linux链路聚合配置命令_桥接_20


查看监控窗口,链路聚合接口添加成功

centos7聚合链路 linux链路聚合配置命令_链路_21


3)vim ifcfg-eth0
  DEVICE=eth0
  ONBOOT=yes
  NETMASK=255.255.255.0
  MASTER=bond0         ---eth0为bond0服务

centos7聚合链路 linux链路聚合配置命令_桥接_22


systemctl restart network

查看监控窗口,添加eth0到链路聚合的物理接口,eth0正在工作

centos7聚合链路 linux链路聚合配置命令_centos7聚合链路_23

此时可以server可以ping通

centos7聚合链路 linux链路聚合配置命令_学习笔记_24


4)vim ifcfg-eth1
  DEVICE=eth1
  ONBOOT=yes
  NETMASK=255.255.255.0
  MASTER=bond0            ---eth1为bond服务

centos7聚合链路 linux链路聚合配置命令_链路_25


systemctl restart network

查看监控窗口,添加eth1到链路聚合的物理接口,eth1成为备用的物理接口

centos7聚合链路 linux链路聚合配置命令_学习笔记_26

2.team方式

team方式支持hash加密,负载均衡,支持ipv6
负载均衡是轮循方式中的一种,哪块物理设备没有工作,哪块干活
而bonding的轮循方式是简单轮循,物理接口轮流干活,不分工作量的大小,可以
是eth0干活1,eth1干活2,eth1做完,但是eth0还没有做完工作,此时系统需要等待eth0做完工作,再继续进行分配

实验三:

命令完成team方式的链路聚合接口配置设定

环境:

cd /etc/sysconfig/network-scripts
rm -fr ifcfg-bond0 ifcfg-eth0 ifcfg-eth1

centos7聚合链路 linux链路聚合配置命令_链路_27


nm-connection-editor  ---进入图形界面删除所有网络配置

centos7聚合链路 linux链路聚合配置命令_桥接_28

监控命令:

watch -n 1 teamdctl team0 stat   ---查看team0接口状态命令

centos7聚合链路 linux链路聚合配置命令_centos7聚合链路_29

步骤:

1)nmcli connetcion add con-name team0 ifname team0 type team config '{"runner":{"name":"activebackup"}}' ip4 172.25.254.162/24
ifconfig         ---team方式添加链路聚合接口,这是一个虚拟接口,此时没有真实设备,所以无法ping通(大括号有特殊含义,所以用单引号,工作类型用双引号)

centos7聚合链路 linux链路聚合配置命令_centos7聚合链路_30

查看监控窗口,team方式添加成功,但是没有真实设备

centos7聚合链路 linux链路聚合配置命令_vim_31

所以不能ping通server

centos7聚合链路 linux链路聚合配置命令_学习笔记_32


2)nmcli connection add con-name eth0 ifname eth0 type team-slave master team0 ---将eth0添加到链路聚合接口的物理设备,此时真机可以ping通server

centos7聚合链路 linux链路聚合配置命令_centos7聚合链路_33

查看监控窗口,eth0成为正在使用的物理网卡

centos7聚合链路 linux链路聚合配置命令_学习笔记_34

此时server可以ping通

centos7聚合链路 linux链路聚合配置命令_centos7聚合链路_35


3)nmcli connection add con-name eth1 ifname eth1 type team-slave master team0 ---将eth1添加到链路聚合接口的物理设备,此时真机可以ping通server

centos7聚合链路 linux链路聚合配置命令_学习笔记_36

查看监控窗口,此时eth0为正在使用的网卡,eth1为备用的网卡

centos7聚合链路 linux链路聚合配置命令_vim_37


4)ifconfig eth0 down  ---模拟工作的接口损坏,将eth0停掉

centos7聚合链路 linux链路聚合配置命令_学习笔记_38

当eth0损坏,备用的eth1开始工作

centos7聚合链路 linux链路聚合配置命令_vim_39

检测:

查看监控窗口,此时备用的eth1自动开始工作,真机可以ping通server,说明team方式添加的链路聚合接口能够提高网络的稳定性

centos7聚合链路 linux链路聚合配置命令_centos7聚合链路_40


5)ifconfig eth0 up    ---将eth0重新开启工作,此时eth0成为备用的物理接口

查看监控窗口,eth1是正在时用的网卡,eth0为备用的网卡,当eth1损坏时,eth0又开始工作

centos7聚合链路 linux链路聚合配置命令_桥接_41

实验四:

文件编辑完成team方式的链路聚合接口某配置设定

环境:将网络配置清空

nmcli connection delete team0          
nmcli connection delete eth0
nmcli connection delete eth1

监控:watch -n 1 teamdctl team0 stat ---查看team方式链路聚合接口接口状态信息
检测:

1.查看监控窗口

2.真机ping虚拟i机server

步骤:

1)vim /etc/sysconfig/network-scripts/ifcfg-team0         ---编辑team方式链路聚合接口信息文件

centos7聚合链路 linux链路聚合配置命令_vim_42


 DEVICE=team0

 TEAM_CONFIG="{\"runner\":{\"name\":\"activebackup\"}}"  ---指定工作模式为activebackup

 DEVICETYPE=Team              ---设备类型为team

 BOOTPROTO=none

 IPADDR=172.25.254.162

 PREFIX=24

 NAME=team0

 ONBOOT=yes

centos7聚合链路 linux链路聚合配置命令_centos7聚合链路_43

systemctl restart network

centos7聚合链路 linux链路聚合配置命令_学习笔记_44

查看监控窗口,链路聚合接口添加成功,但是没有真实设备

centos7聚合链路 linux链路聚合配置命令_vim_45

此时不能ping通,没有真实设备

centos7聚合链路 linux链路聚合配置命令_vim_46


2)vim /etc/sysconfig/network-scripts/ifcfg-eth0         ---配置网卡eth0

centos7聚合链路 linux链路聚合配置命令_桥接_47


 BOOTPROTO=none

 ONBOOT=yes

 TEAM_MASTER=team0           ---eth0为team0服务

 DEVICE=eth0

 DEVICETYPE=TeamPort         ---设备类型为teamport

systemctl restart network

centos7聚合链路 linux链路聚合配置命令_学习笔记_44


此时可以ping通,查看监控窗口,此时链路聚合接口有了真实设备eth0工作

centos7聚合链路 linux链路聚合配置命令_桥接_49

3)vim /etc/sysconfig/network-scripts/ifcfg-eth1       ---配置网卡eth1

 BOOTPROTO=none
 ONBOOT=yes
 TEAM_MASTER=team0
 DEVICE=eth1
 DEVICETYPE=TeamPort     

centos7聚合链路 linux链路聚合配置命令_centos7聚合链路_50

systemctl restart network

centos7聚合链路 linux链路聚合配置命令_centos7聚合链路_51


查看监控窗口,此时eth1为备用的网卡

centos7聚合链路 linux链路聚合配置命令_vim_52

4)ifconfig eth0 down

centos7聚合链路 linux链路聚合配置命令_学习笔记_53


设备eth0损坏,网络依然正常,备用设备eth1正在工作

centos7聚合链路 linux链路聚合配置命令_链路_54

centos7聚合链路 linux链路聚合配置命令_vim_55


5)ifconfig eth0 up

centos7聚合链路 linux链路聚合配置命令_centos7聚合链路_56


eth0成为备用网卡

centos7聚合链路 linux链路聚合配置命令_学习笔记_57

二.桥接

桥接是对真实主机的配置,当主机中的虚拟机需要传输数据到其他主机时,如果没有开启桥接,那么每一个数据包都需要经过nat地址转换(数据传到真实内核,再传输到真实网卡)。

网桥的作用就是将虚拟机的网卡与真实主机的网卡连接起来,不经过地址转换

 

 

1.文件编辑方式配置网桥

环境:

真机切换到超级用户
1)nm-connection-editor
将所有的网卡都删掉,删不掉的就保留

centos7聚合链路 linux链路聚合配置命令_学习笔记_58


2)ifconfig查看真级的网卡名称是什么,上课时的网卡名称为enp0s25,下面用的是enp9s0

centos7聚合链路 linux链路聚合配置命令_vim_59


3)cd /etc/sysconfig/network-scripts         ---此时网络配置都被删除

centos7聚合链路 linux链路聚合配置命令_vim_60

centos7聚合链路 linux链路聚合配置命令_链路_61


4)vim ifcfg-enp9s0                      ---给物理网卡配置ip172.25.254.62

   DEVICE=enp9s0

   ONBOOT=yes

   BOOTPROTO=none

   IPADDR=172.25.254.62

   PREFIX=24

5)systemctl restart network
6)ifconfig

 

桥接步骤:

1)vim /etc/sysconfig/network-scripts/ifcfg-enp9s0              ---指定物理网卡的桥接端口是br0
   DEVICE=enp9s0
   ONBOOT=yes
   BOOTPROTO=none
   BRIDGE=br0

centos7聚合链路 linux链路聚合配置命令_桥接_62


2)vim /etc/sysconfig/network-scripts/ifcfg-br0       ---配置br0的网络

    DEVICE=br0

    ONBOOT=yes

    BOOTPROTO=none

    IPADDR=172.25.254.62

    NETMASK=255.255.255.0

    TYPE=Bridge                              ----网卡类型是Bridge

centos7聚合链路 linux链路聚合配置命令_学习笔记_63


3)systemctl restart network

检测:

1)ifconfig

centos7聚合链路 linux链路聚合配置命令_桥接_64


2)brctl show

centos7聚合链路 linux链路聚合配置命令_桥接_65


3)再http新建虚拟机,查看虚拟机网卡有多少选项,多出br0选项,虚拟机安装速度也会大大提升

centos7聚合链路 linux链路聚合配置命令_centos7聚合链路_66

centos7聚合链路 linux链路聚合配置命令_学习笔记_67

2.命令方式建立桥接

环境:

server,nm-connection-editor将所有网络配置删除

centos7聚合链路 linux链路聚合配置命令_学习笔记_68

步骤:

1)brctl addbr br0         ---添加桥接网卡br0
ifconfig                   ---查看到多出br0的网卡信息

centos7聚合链路 linux链路聚合配置命令_链路_69


2)ifconfig br0 172.25.254.162/24    ---给br0配置ip

ifconfig                             ---查看br0的ip

centos7聚合链路 linux链路聚合配置命令_vim_70


3)ping 172.25.254.62                ---此时不能ping通真机

centos7聚合链路 linux链路聚合配置命令_学习笔记_71


brctl show                                  ---因为此时桥接网卡还没有物理设备使用

4)brctl addif br0 eth0               ---把桥接网卡br0插在eth0

brctl show                                  ---查看桥接网卡控制信息

centos7聚合链路 linux链路聚合配置命令_学习笔记_72

检测:

ping 172.25.254.62      ---真机ip地址

centos7聚合链路 linux链路聚合配置命令_桥接_73

3.命令方式删除桥接

1)ifconfig br0 down          ---关闭桥接网卡
ifconfig                              ---此时没有br0的信息

centos7聚合链路 linux链路聚合配置命令_centos7聚合链路_74


brctl show                         ---查看桥接网卡的控制信息

2)brctl delif br0 eth0        ---将桥接网卡从eth0上取下来

brctl show                        ---查看桥接网卡控制信息

centos7聚合链路 linux链路聚合配置命令_链路_75


3)brctl delbr br0           

centos7聚合链路 linux链路聚合配置命令_桥接_76

检测:

brctl show                        ---查看桥接网卡控制信息

centos7聚合链路 linux链路聚合配置命令_vim_77