转载自:https://mp.weixin.qq.com/s/vP-OMlOnuEu1i0DTX-tvWw

前言

大家好,我是ICT大龙。今天给朋友们介绍一下新做的一个实验。在本次实验中为了保障网络的可靠性,使用了防火墙的双机热备、BFD、VRRP、ETH-TRUNK与MSTP五种技术。路由使用了OSPF协议。

和往常一样,获取本次实验文件在文章末尾。本次实验中为了保障网络的可靠性,使用了防火墙的双机热备、BFD、VRRP、ETH-TRUNK与MSTP五种技术。下面开始介绍本次实验。

拓扑介绍

本次实验拓扑如下图,采用了三层网络架构,分别是接入、汇聚与核心层。由核心交换机充当终端设备的网关,同时为了保障终端网关的可靠性,采用两台核心交换机进行配置VRRP协议来实现。

使用两台防火墙来充当整个园区网络的网关出口,防火墙之间通过心跳线实现双机热备功能。为了保证两台防火墙都能充分利用,所以将双机热备功能模式设置为负载均衡模式。

拓扑使用了双出口架构来实现园区网络的可靠性。两个出口分别通过联通、电信两个运营商接入互联网,在互联网中设置了一台公网服务器用来测试。

tuopu.jpg

什么是可靠性?

华为官网对于可靠性的解释是:“可靠性是降低网络中断时间,提升用户体验的一种技术。可靠性技术是实现高可靠性的一系列技术。它主要涉及到系统及硬件可靠性设计方法、软件可靠性设计方法、可靠性测试验证方法和IP网络可靠性设计。”

简单说就是网络中如果有设备宕机或者链路中断,需要有备用的设备和链路继续转发数据,从而保证网络业务不会中断。这样的一个网络就可以属于可靠性高的网络。

实现一个可靠性高的网络需要用到很多技术的结合,本次实验使用到的技术在前言中已经有所介绍,下面就开始讲一下每个技术的原理,应用场景以及如何进行配置。

VRRP

VRRP,虚拟路由冗余协议。就是将两台及两台以上的路由器组合成一台虚拟的路由器,然后给这个虚拟的路由器配置一个虚拟的IP地址。这样,终端设备的网关地址填写的就是虚拟路由器的虚拟地址。即使虚拟路由器中的一个路由器成员宕机,还有另一台路由器进行转发,从而保证网络不会中断。

本次实验中,核心设备作为终端的网关。核心A的IP为.2,核心B的IP为.3。由核心A与核心B组合的虚拟路由器地址为.1,这样我们就可以把终端的网关地址设置为.1。此时我们将核心A设置成Master角色,核心B设置为Standby角色,虽然终端地址写的是虚拟路由器的地址,但是数据包会转发到身份角色为Master设备。

tuopu1.jpg

核心A
interface Vlanif10
 ip address 192.168.10.2 255.255.255.0
 vrrp vrid 10 virtual-ip 192.168.10.1
 vrrp vrid 10 priority 130
 vrrp vrid 10 preempt-mode timer delay 20
 vrrp vrid 10 track interface GigabitEthernet0/0/3 reduced 40
 vrrp vrid 10 track interface GigabitEthernet0/0/1 reduced 40

interface Vlanif20
 ip address 192.168.20.2 255.255.255.0
 vrrp vrid 20 virtual-ip 192.168.20.1
 vrrp vrid 20 priority 130
 vrrp vrid 20 preempt-mode timer delay 20
 vrrp vrid 20 track interface GigabitEthernet0/0/3 reduced 40
 vrrp vrid 20 track interface GigabitEthernet0/0/1 reduced 40

interface Vlanif30
 ip address 192.168.30.2 255.255.255.0
 vrrp vrid 30 virtual-ip 192.168.30.1

interface Vlanif40
 ip address 192.168.40.2 255.255.255.0
 vrrp vrid 40 virtual-ip 192.168.40.1
核心B
interface Vlanif10
 ip address 192.168.10.3 255.255.255.0
 vrrp vrid 10 virtual-ip 192.168.10.1

interface Vlanif20
 ip address 192.168.20.3 255.255.255.0
 vrrp vrid 20 virtual-ip 192.168.20.1

interface Vlanif30
 ip address 192.168.30.3 255.255.255.0
 vrrp vrid 30 virtual-ip 192.168.30.1
 vrrp vrid 30 priority 130
 vrrp vrid 30 preempt-mode timer delay 20
 vrrp vrid 30 track interface GigabitEthernet0/0/3 reduced 40
 vrrp vrid 30 track interface GigabitEthernet0/0/2 reduced 40

interface Vlanif40
 ip address 192.168.40.3 255.255.255.0
 vrrp vrid 40 virtual-ip 192.168.40.1
 vrrp vrid 40 priority 130
 vrrp vrid 40 preempt-mode timer delay 20
 vrrp vrid 40 track interface GigabitEthernet0/0/3 reduced 40
 vrrp vrid 40 track interface GigabitEthernet0/0/2 reduced 40

配置完以上命令之后,就已经使用VRRP协议虚拟出了一台路由器。其中核心A作为VLAN10和VLAN20的Master设备,所以这两个VLAN的PC会通过核心A这个网关进行转发数据。同时核心A作为VLAN30和VLAN40的Standby设备。如果核心B宕机后,数据包还可以继续通过核心A这个网关转发数据。

核心B作为VLAN30和VLAN40的Master设备,所以这两个VLAN的PC会通过核心B这个网关进行转发数据。同时核心B作为VLAN10和VLAN20的Standby设备。如果核心A宕机后,数据包还可以继续通过核心B这个网关转发数据。

可以看到在上面配置的时候用到了track这个参数。因为VRRP成员设备是有优先级的,优先级最高者就可以成为Master设备。使用track这个参数是用来检测上下行的链路。如果有一条链路中断,就把优先级减掉相应的数值,以达到小于之前Standby设备的优先级。从而使Standby设备变为Master设备,这样数据就可以通过新的Master设备进行转发。

现在我们可以使用dis vrrp这条命令查看VRRP的状态(可以看到身份、虚拟IP、运行的优先级以及配置的优先级等信息),使用核心A举例。

tuopu2.jpg

MSTP

MSTP,多生成树协议。顾名思义,这个协议就是可以使当前拓扑生成多个树。如果使用RSTP或者STP协议,那么网络中的所有VALN都只能共享一棵树,被阻塞的链路就不会传递任何的数据,这样就严重地造成了浪费,无法实现负载均衡,导致资源的利用率降低。

而我们当前网络中是有存在多个VLAN的,为了避免以上的问题,所以我们采用了MSTP协议,这样可以做到不同VLAN阻塞的链路不同,不仅避免了广播风暴,还可以提高资源的利用率。

核心A
stp region-configuration
 region-name dalong
 revision-level 7
 instance 1 vlan 10 20
 instance 2 vlan 30 40
 active region-configuration

stp instance 1 root primary
stp instance 2 root secondary
核心B
stp region-configuration
 region-name dalong
 revision-level 7
 instance 1 vlan 10 20
 instance 2 vlan 30 40
 active region-configuration

stp instance 1 root secondary
stp instance 2 root primary
汇聚层及接入层设备配置
stp region-configuration
 region-name dalong
 revision-level 7
 instance 1 vlan 10 20
 instance 2 vlan 30 40
 active region-configuration

通过以上命令我们创建了两个树,分别是实例1包含VLAN10和VLAN20,实例2包含VLAN30和VLAN40。核心A作为实例1的主根和实例2的备用根。核心B同样作为实例2的主根和实例1的备用根。

大家可以把实例想象成一棵树,上面相当于生成了两棵树。这样我们就可以合理的将所有资源利用起来,提高了链路的利用率并实现了负载均衡。
对于实例1来看是以下接口被阻塞
tuopu3.jpg
对于实例2来看是以下接口被阻塞
tuopu4.jpg

Eth-trunk

ETH-trunk,链路聚合技术。通过将多条物理链路虚拟的捆绑在一起成为一条逻辑链路。这样可以增加链路的带宽,在增加带宽目的的同时,Eth-trunk采用备份链路的机制,可以有效地提高设备之间链路的可靠性。

在下图中标注的链路使用了ETH-trunk技术。
tuopu5.jpg

核心A与核心B之间的链路进行链路聚合配置
核心A
interface Eth-Trunk1
 port link-type trunk
 port trunk allow-pass vlan 2 to 4094
 mode lacp-static

interface GigabitEthernet0/0/23
 eth-trunk 1
interface GigabitEthernet0/0/24
 eth-trunk 1

核心B
interface Eth-Trunk1
 port link-type trunk
 port trunk allow-pass vlan 2 to 4094
 mode lacp-static
interface GigabitEthernet0/0/23
 eth-trunk 1
interface GigabitEthernet0/0/24
 eth-trunk 1
汇聚A与汇聚B之间的链路进行链路聚合配置
汇聚A
interface Eth-Trunk1
 port link-type trunk
 port trunk allow-pass vlan 2 to 4094
 mode lacp-static

interface GigabitEthernet0/0/1
 eth-trunk 1
interface GigabitEthernet0/0/2
 eth-trunk 1

汇聚B
interface Eth-Trunk1
 port link-type trunk
 port trunk allow-pass vlan 2 to 4094
 mode lacp-static
interface GigabitEthernet0/0/1
 eth-trunk 1
interface GigabitEthernet0/0/2
 eth-trunk 1

查看Eth-trunk的状态,以核心A举例
tuopu6.jpg

BFD

BFD,双向转发检测。是一种基于RFC 5880标准的告诉故障检测机制,两台设备或者两个系统建立BFD会话之后,在它们之间的通道上周期性地发送BFD报文,如果一方在协商的检测时间内没有接收到BFD报文,则认为这条双向通道上发生了故障。上层协议通过BFD感知到链路故障后可以及时采取措施,进行故障恢复。

在现实网络中,园区内出口网关与处于运营商的对端IP设备可能不是直连的,中间可能会有中继器等传输设备。这样如果运营商中的对端IP设备宕机,园区内出口网关也无法检测到链路失效。

在这个场景中就可以使用BFD建立会话,与对端设备周期性交互报文,如果在协商时间内没有收到对面回复的报文,那我们就判定此条链路失效可以采取其他措施保障网络不会中断,如切换到另一个出口继续进行转发数据。

在现实中,运营商是不会在他们的设备上与我们的设备建立双向BFD会话的,所以我们只能采取单臂回声功能来检测链路的状态。但是在本次实验中,因为防火墙不支持单壁回声命令,所以我们使用双向BFD会话进行检测。
tuopu7.jpg

FW1
bfd
bfd Master bind peer-ip 222.1.1.2 interface GigabitEthernet1/0/3 source-ip 222.1
.1.1

联通ISP
bfd
bfd dalong bind peer-ip 222.1.1.1 interface GigabitEthernet0/0/1 source-ip 222.1
.1.2
FW2
bfd
bfd standby bind peer-ip 222.1.1.6 interface GigabitEthernet1/0/3 source-ip 222.
1.1.5
电信ISP
bfd
bfd dalong bind peer-ip 222.1.1.5 interface GigabitEthernet0/0/1 source-ip 222.1
.1.6

​ 通过以上配置就可以实现FW1与联通ISP,FW2与电信ISP分别建立了BFD双向会话。在后面的配置中可以直接通过检测BFD的会话状态来做出相应的措施。

防火墙双机热备

将防火墙部署在网络出口位置时,如果该设备发生故障宕机后可能会影响到全网的业务。为了提高网络可靠性,可以部署两台防火墙充当网络出口并配置双机热备功能使得两台防火墙之间可以互相检测,如果有一台防火墙宕机,将立即启用另一台设备继续转发数据。

双机热备分为两种模式,分别是主备模式与负载均衡模式。主备模式只有主设备可以进行转发数据,主设备发生故障之后,备用设备自动升级为主设备并继续转发数据。采用负载均衡模式,两台设备都可以进行数据的转发,可以有效提高资源利用率。本次实验中我们将防火墙配置为负载均衡模式。
FW1
tuopu8.jpg
tuopu9.jpg
FW2
tuopu10.jpg
tuopu11.jpg

验证

  1. 打开一台终端设备对公网服务器进行ping测试,增加-t参数使终端设备能一直ping。命令:ping 8.8.8.8 -t。
    tuopu12.jpg
  2. 现在手动关闭核心A设备查看状态,可以看到在短暂的丢包后又可以正常的转发数据。这就是使用的备用网关核心B进行转发,网关的切换就是由之前配置的VRRP协议进行实现。
    tuopu13.jpg
    3.设备恢复后,我们再将一台出口防火墙手动关闭可以看到在短暂的丢包之后也恢复了数据转发。现在就是由FW2进行转发的数据,这就是配置防火墙双机热备的目的。
    tuopu14.jpg
    4.假设联通运营商设备故障,测试路径切换。手动关闭联通ISP设备查看状态,可以看到在短暂的丢包之后数据也能恢复正常转发。
    tuopu15.jpg
    5.以上就是对于网络可靠性与冗余性的测试,可以看到有的时候丢包还是挺多的,对于现在的业务来说能做到0丢包才是最好的。在后期还会给大家出一期几乎0丢包的技术文章。