1.1 产生背景
局域网中的用户终端通常采用配置一个默认网关的形式访问外部网络,如果此时默认网关设备发生故障,将中断所有用户终端的网络访问,这很可能会给用户带来不可预计的损失,所以可以通过部署多个网关的方式来解决单点故障问题,那么如何让多个网关能够协同工作但又不会互相冲突就成了最迫切需要解决的问题。所以VRRP 就产生了,它既可以实现网关的备份,又能解决多个网关之间互相冲突的问题。那么VRRP的工作原理是如何实现的呢?在网络中又该如何配置呢?
1.2 基本概述
1.2.1 VRRP基本概述
- VRRP能够在不改变组网的情况下,将多台路由器虚拟成一个虚拟路由器,通过配置虚拟路由器的IP地址为默认网关,实现网关的备份
- 协议版本: VRRPv2(常用) 和 VRRPv3 注:VRRPv2仅适用于IPv4网络,VRRPv适用于IPv4和IPv6两种网络
- VRRP洗衣报文: 只有一种报文 ----Advertisement报文:其目的IP地址是224.0.0.18,目的MAC地址是01-00-5e-00-00-12,协议号是112.
1.2.2 VRRP报文简介
VRRP(Virtual Router Redundancy Protocol):虚拟路由冗余协议
VRRP报文通告是通过组播来通告的,组播地址:224.0.0.18,组播MAC:01-00-5e-00-00-12,VRRP是三层协议,通过IP协议承载,协议号112
VRRP需要通过VRRP报文来选举Master和backup,只有Master才能转发数据,而backup不转发数据,收到数据帧后丢弃。
如何选举Master和backup?
1.比较优先级,默认情况下优先级为100,范围为1-254,最大可以配置的优先级为254,优先级最大最优。 255 (VIP=Interface IP)优先级如果为0说明退出Master(Master离组,例如在MASTER的接口下删除VRRP配置)
2. 如果优先级一样,IP地址大的一端成为Master。
VRRP报文是通过IP来承载的,VRRP协议标识为112,同时IP包头中的TTL值为255.
注:在一个网段中Master只能有一台,而backup可以有多台
TTL值不是255,则丢掉
1.2.3 VRRP报文格式分析
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+-
Version Type Virtual Rtr ID Priority Count IP Addrss
+-+-+-+-+-+-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+-
Auth Type Adver Int Checksum
+-+-+-+-+-+-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+-
IP Address (1)
+-+-+-+-+-+-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+-
*
*
*
+-+-+-+-+-+-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+-
IP Address (n)
+-+-+-+-+-+-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+-
Authentication Data(1)
+-+-+-+-+-+-+-+-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+- +-+-+-+-+-+-+-
Authentication Data(2)
1、Version: 2=IPV4 3=IPV6
2、Type = advertisement(通告报文)
3、Virtual Rtr ID = VRID(虚拟组ID)
4、PRI = 优先级,通过优先级选举Master和Backup,优先级越大越优,默认值是100
6、Count IP Address = 虚拟IP地址统计
7、adver int = 通告报文发送间隔,默认是1s
8、checksum
9、ip address = 虚拟IP地址,同一个组可以配置多个,华为最大只支持16个
10、authentication data = 认证内容
2、选举过程
2.1 Master选举过程
1、Master选举
(1)如果VIP等于接口IP地址,那么这台优先级为255,成为MASTER
(2)通过比较优先级和IP地址,进程选举
注意:
(1)master
1、可以转发报文
2、应答ARP请求
3、通过基于VIP的免费ARP
4、master定时通告VRRP报文
(2)backup
1、如果backup接收到目标MAC为虚拟MAC地址的数据帧,丢弃不转发
2、backup被动接收VRRP报文,不通告
3、通告基于VIP的免费ARP
4、master定时通告VRRP报文(默认通告间隔是1s,holdtimer是3倍的通告间隔)
2.2 影响VRRP协商的条件
1、IP包头中的TTL值必须为255
2、版本必须一致
3、VRRP报文中的字段必须一致(authen data)
4、checksum必须一致
5、VRID必须一致
6、认证类型和认证必须一致
7、VIP(Count ip address)列表必须一致
8、VRRP报文通告间隔必须一致(华为BACKUP会使用MASTER端的通告间隔)
负载分担是指多个VRRP备份组同时承担业务转发 ,VRRP负载分担与VRRP主备备份的基本原理和报文协商过程都是相同的。对于每一个VRRP备份组,都包含一个Master设备和若干BAckup设备。
2.3 eNSP实验
拓扑图:
实验目的:配置两个路由器,一个作为master来正常工作,一个 作为backup来在master路由器宕掉时替代master进行正常工作。
AR1配置:
[AR1]int g0/0/1
[AR1-GigabitEthernet0/0/1]ip add 192.168.1.1 24 //配置内网接口IP
Nov 4 2020 23:50:28-08:00 AR2 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP
on the interface GigabitEthernet0/0/1 has entered the UP state.
[AR1-GigabitEthernet0/0/1]int g0/0/0
[AR1-GigabitEthernet0/0/0]ip add 11.1.1.1 24 //配置外网接口IP
Nov 4 2020 23:52:46-08:00 AR2 %%01IFNET/4/LINK_STATE(l)[1]:The line protocol IP
on the interface GigabitEthernet0/0/0 has entered the UP state.
[AR1-GigabitEthernet0/0/0]q
[AR1]int g0/0/1
[AR1-GigabitEthernet0/0/1]vrrp vrid 1 virtual-ip 192.168.1.254 //配置VRRP组,VRID和虚拟IP
[AR1-GigabitEthernet0/0/1]
Nov 5 2020 00:16:39-08:00 AR1 VRRP/2/VRRPCHANGETOMASTER:OID 16777216.50331648.1
00663296.16777216.33554432.16777216.1140850688.0.16777216 The status of VRRP cha
nged to master. (VrrpIfIndex=67108864, VrId=16777216, IfIndex=67108864, IPAddres
s=1.1.168.192, NodeName=AR1, IfName=GigabitEthernet0/0/1, ChangeReason=protocol
timer expired(GigabitEthernet0/0/1 up))
[AR1-GigabitEthernet0/0/1]
Nov 5 2020 00:16:39-08:00 AR1 %%01VRRP/4/STATEWARNINGEXTEND(l)[0]:Virtual Route
r state BACKUP changed to MASTER, because of protocol timer expired. (Interface=
GigabitEthernet0/0/1, VrId=16777216, InetType=IPv4)
[AR1-GigabitEthernet0/0/1]vrrp vrid 1 priority 120 //设置VRRP组优先级
[AR1]ip route-static 0.0.0.0 0 11.1.1.3 //配置默认路由
[AR1]acl 2000 //配置ACL
[AR1-acl-basic-2000]rule 1 permit source 192.168.1.0 0.0.0.255 //允许来自192.168.1.0网段的报文通过
[AR1-acl-basic-2000]int g0/0/0
[AR1-GigabitEthernet0/0/0]nat outbound 2000 //在连接互联网的接口上转换为公网IP
[AR1]dis vrrp 1
GigabitEthernet0/0/1 | Virtual Router 1
State : Master
Virtual IP : 192.168.1.254
Master IP : 192.168.1.1
PriorityRun : 120
PriorityConfig : 120
MasterPriority : 120
Preempt : YES Delay Time : 0 s
TimerRun : 1 s
TimerConfig : 1 s
Auth type : NONE
Virtual MAC : 0000-5e00-0101
Check TTL : YES
Config type : normal-vrrp
Backup-forward : disabled
Create time : 2020-11-05 00:16:35 UTC-08:00
Last change time : 2020-11-05 00:16:39 UTC-08:00
AR2配置:
[AR2]int g0/0/1
[AR2-GigabitEthernet0/0/1]ip add 192.168.1.2 24
Nov 4 2020 23:50:47-08:00 AR3 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP
on the interface GigabitEthernet0/0/1 has entered the UP state.
[AR2-GigabitEthernet0/0/1]int g0/0/0
[AR2GigabitEthernet0/0/0]ip add 12.1.1.2 24
[AR2-GigabitEthernet0/0/0]
Nov 4 2020 23:53:16-08:00 AR3 %%01IFNET/4/LINK_STATE(l)[1]:The line protocol IP
on the interface GigabitEthernet0/0/0 has entered the UP state.
[AR3-GigabitEthernet0/0/0]q
[AR2]ip pool HCNA //配置地址池
Info: It's successful to create an IP address pool.
[AR2-ip-pool-HCNA]network 192.168.1.0 mask 24 //配置地址池网段
[AR2-ip-pool-HCNA]gateway-list 192.168.1.254 //配置网关
[AR2-ip-pool-HCNA]dns-list 2.2.2.2 3.3.3.3 //配置DNS
[AR2-ip-pool-HCNA]excluded-ip-address 192.168.1.128 192.168.1.250 //排除的地址范围
[AR2-ip-pool-HCNA]q
[AR2]dhcp enable //开启DHCP来分配地址
Info: The operation may take a few seconds. Please wait for a moment.done.
[AR2]int g0/0/1
[AR2-GigabitEthernet0/0/1]dhcp select global //在接口下开启全局地址分配
[AR2]int g0/0/1
[AR2-GigabitEthernet0/0/1]vrrp vrid 1 virtual-ip 192.168.1.254 //配置相同的虚拟IP
[AR2-GigabitEthernet0/0/1]q
[AR2]dis vrrp 1
GigabitEthernet0/0/1 | Virtual Router 1
State : Backup
Virtual IP : 192.168.1.254
Master IP : 192.168.1.1
PriorityRun : 100
PriorityConfig : 100
MasterPriority : 120
Preempt : YES Delay Time : 0 s
TimerRun : 1 s
TimerConfig : 1 s
Auth type : NONE
Virtual MAC : 0000-5e00-0101
Check TTL : YES
Config type : normal-vrrp
Backup-forward : disabled
Create time : 2020-11-05 00:21:10 UTC-08:00
Last change time : 2020-11-05 00:21:10 UTC-08:00
[AR2]ip route-static 0.0.0.0 0 12.1.1.3
[AR2]acl 2000
[AR2-acl-basic-2000]rule 1 permit source 192.168.1.0 0.0.0.255
[AR2-acl-basic-2000]q
[AR2]int g0/0/0
[AR2-GigabitEthernet0/0/0]nat outbound 2000
AR3配置:
[AR3]int g0/0/0
[AR3-GigabitEthernet0/0/0]ip add 11.1.1.3 24
[AR3-GigabitEthernet0/0/0]
Nov 4 2020 23:55:08-08:00 AR1 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP
on the interface GigabitEthernet0/0/0 has entered the UP state.
[AR3-GigabitEthernet0/0/0]int g0/0/1
[AR3-GigabitEthernet0/0/1]ip add 12.1.1.3 24
Nov 4 2020 23:55:28-08:00 AR1 %%01IFNET/4/LINK_STATE(l)[1]:The line protocol IP
on the interface GigabitEthernet0/0/1 has entered the UP state.
[AR3-GigabitEthernet0/0/1]q
[AR3]int lo 0
[AR3-LoopBack0]ip add 1.1.1.1 32 //配置逻辑回环口
测试图:
vrrp vrid 1 preempt-mode timer delay 18 //设置master接口down掉被抢占以后,该接口恢复正常重新抢占所用的时间
vrrp vrid 1 timer advertise 15 //backup接口维护master的时间为该值的3倍,即在master接口down掉以后等待三倍通告时间
[AR1]vrrp version v3 //开启版本为v3
[AR1-GigabitEthernet0/0/1]vrrp vrid 1 version-3 send-packet-mode v3-only //在接口下开启发送报文的模式为v3
[AR1]vrrp version v2 //开启版本为v2
[AR1-GigabitEthernet0/0/1]vrrp vrid 1 virtual-ip 192.168.1.253
在AR2的VRRP组上添加虚拟IP地址配置
[AR1-GigabitEthernet0/0/1]vrrp vrid 1 authentication-mode simple cipher HCNP //密码在本地以密文保存
修改AR2认证模式
[AR2-GigabitEthernet0/0/1]vrrp vrid 1 authentication-mode simple plain HCNP //密码在本地以明文保存
[AR1-GigabitEthernet0/0/1]vrrp un-check ttl //设置为忽略检测ttl值,有助于多个产商的互通
[AR1]vrrp recover-delay ?
INTEGER<0-60> Recover-delay, in seconds(default is 0)
2.4 使用指南
应用场景
VRRP备份组中,接口状态或联动的BFD会话状态不稳定时,容易造成VRRP状态频繁震荡,导致用户流量丢失。配置VRRP备份组的状态恢复延迟时间可以有效解决这个问题。配置后,VRRP备份组在接收到接口、BFD会话的Up事件时不会立刻响应,而是等配置的状态恢复延迟时间超时后,再进行相应的处理。
注意事项
- VRRP备份组中设备重启时,可能会出现VRRP状态震荡,因此建议用户根据组网情况配置一定的状态恢复延迟时间
- 接口、BFD会话震荡后,在配置的状态恢复延迟时间内,相应的日志及告警信息不会全部记录,只是记录一次,从而避免频繁的打印出相同的警告信息
-
[AR1-GigabitEthernet0/0/1]vrrp vrid 1 track interface GigabitEthernet 0/0/0 redu
ced 21
3. BFD
随着网络应用的广泛部署,网络发生中断可能影响业务正常运行并造成重大损失。为了减小链路、设备故障对业务的影响,提高网络的可靠性,网络设备需要尽快检测到与相邻设备间的通行故障,以便及时采取措施,保证业务正常进行。
双向转发检测BFD(Bidirectional Forwarding Detection)提供了一个通用的标准化的介质无关和协议无关的快速故障检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。那么BFD机制具体是如何实现快速检测的呢?它的收敛时间到底是多少呢?
3.1 BFD技术简介
一种全网统一、检测迅速、监控网络中链路或者IP路由的双向转发连通状况,并为上层应用提供服务的技术。
3.1.1 BFD的标识符
BFD建立会话存在标识符的概念,类似于OSPF建立邻居需要一个路由器的Router ID。
标识符分为本地标识符和远端标识符,本地标识符用于表示本端设备,远端标识符用于表示对端设备。
静态建立BFD会话是指通过命令行手工配置BFD会话参数,包括配置本地标识符和远端标识符等,然后手工下发BFD会话建立请求。
动态建立BFD会话是指由应用程序触发创建BFD会话,当应用程序动态触发创建BFD会话时,系统分配属于动态会话标识符区域的值作为BFD会话的本地标识符,然后向对端发送Remote Discriminator的值为0的BFD的控制报文,进行会话协商。当BFD会话的一端收到Remote Discriminator的值为0的BFD的控制报文时,判断该报文是否与本地BFD会话匹配。如果匹配,则学习接收到的BFD报文中Local Discriminator的值,获取远端标识符。
BFD的检测机制:BFD的检测机制是两个系统建立BFD会话,并延它们之间的路径周期性发送BFD控制报文。如果一方在既定的时间内没有收到BFD控制报文,则认为路径上发生了故障。BFD控制报文是UDP报文,端口号为3784、
BFD提供异步检测模式。在这种模式下,系统之间相互周期性地发送BFD控制报文。如果某个系统连续3个报文都没有接收到,就认为此BFD会话的状态是Down。
BFD的检测机制
·
BFD默认参数及调整方法
参数 | 缺省值 | 备注 |
全局BFD功能 | 未使能 | 需使能 |
发送间隔 | 1000毫秒 | 结合实际调整 |
接收间隔 | 1000毫秒 | 结合实际调整 |
本地检测倍数 | 3 | 建议保持默认 |
等待恢复时间 | 0分钟 | 结合实际调整 |
会话延迟Up时间 | 0秒钟 | 结合实际调整 |
BFD报文优先级 | 7(*) | 建议保持 |
3.2 配置BFD
拓扑图:
AR1配置:
[AR1]bfd //开启BFD
[AR1-bfd]q
[AR1]bfd HCNP bind peer-ip 11.1.1.3 source-ip 11.1.1.1 auto //配置bfd的对端
[AR1-bfd-session-hcnp]qpAR1]dis bfd session all
--------------------------------------------------------------------------------
Local Remote PeerIpAddr State Type InterfaceName
--------------------------------------------------------------------------------
8192 0 11.1.1.3 Down S_AUTO_PEER -
--------------------------------------------------------------------------------
Total UP/DOWN Session Number : 0/1
[AR1-GigabitEthernet0/0/1]vrrp vrid 1 track bfd-session session-name HCNP reduce
d 21
AR2配置:
[AR3]bfd
[AR3-
[AR3]bfd HCNP bind peer-ip 11.1.1.1 source-ip 11.1.1.3 auto
[AR3-bfd-session-hcnp]q
[AR3]dis bfd se all
--------------------------------------------------------------------------------
Local Remote PeerIpAddr State Type InterfaceName
--------------------------------------------------------------------------------
8193 0 11.1.1.1 Down S_AUTO_PEER -
--------------------------------------------------------------------------------
Total UP/DOWN Session Number : 0/1
测试:
[AR3]int g0/0/0
[AR3-GigabitEthernet0/0/0]shut
Nov 11 2020 22:46:56-08:00 AR3 %%01IFPDT/4/IF_STATE(l)[0]:Interface GigabitEther
net0/0/0 has turned into DOWN state.
结果:
配置单臂bfd
AR1配置:
[AR1]bfd arm bind peer-ip 11.1.1.3 interface GigabitEthernet 0/0/0 one-arm-echo
[AR1-bfd-session-arm]discriminator local 10
[AR1-bfd-session-arm]commit
[AR3]int g0/0/0
[AR3-GigabitEthernet0/0/0]undo shut
[AR1]dis bfd session all
--------------------------------------------------------------------------------
Local Remote PeerIpAddr State Type InterfaceName
--------------------------------------------------------------------------------
8192 8193 11.1.1.3 Up S_AUTO_PEER -
10 - 11.1.1.3 Up S_IP_IF GigabitEthernet0/0/0
--------------------------------------------------------------------------------
Total UP/DOWN Session Number : 2/0
3.3 NQA简介
定义
网咯质量分析NQA(Network Quality Analysis)是一种实时的网络性能探测和统计技术,可以对响应时间、网络抖动、丢包率等网络信息进行统计。NQA能够实时监控网络QoS,在网络发生故障时进行有效的故障诊断和定位。
目的
为了使网络质量可见,使用户能够自行检查网络服务质量是否达到要求,需要采取以下措施:
- 在设备上提供能够说明网络服务质量的数据
- 在网络中部署探针设备能对网络服务质量进行监控
配置NQA
AR1配置:
[AR1]nqa test-instance monitor ICMP
[AR1-nqa-monitor-ICMP]test-type icmp
[AR1-nqa-monitor-ICMP]destination-address ipv4 1.1.1.1
[AR1-nqa-monitor-ICMP]frequency 2
[AR1-nqa-monitor-ICMP]timeout 1
[AR1-nqa-monitor-ICMP]start now
[AR1-nqa-monitor-ICMP]start now
[AR1-GigabitEthernet0/0/1]vrrp vrid 1 track nqa monitor ICMP reduced 21