vrrp/bfd原理

vrrp

vrrp基本概念

VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)能够实现网关的冗余备份,并且不会引起多网关的冲突。

通过把几台路由设备联合组成一台虚拟的“路由设备”,使用一定的机制保证当主机的下一跳路由设备出现故障时,及时将业务切换到备份路由设备,从而保持通讯的连续性和可靠性。

vrrp路由器:指运行vrrp协议的路由器,如图中R1,R2,vrrp配置在接口上,也是基于接口运行的。

VRID:一个VRRP组(VRRP Group)由多台协同工作的路由器(的接口)组成,使用相同的VRID(Virtual Router Identifier,虚拟路由器标识符)进行标识。属于同一个VRRP组的路由器之间交互VRRP协议报文并产生一台虚拟“路由器”。

虚拟路由器:由多个vrrp组的路由器虚拟成的路由器(只有一台)

虚拟IP和虚拟MAC地址:虚拟路由器的IP和MAC地址,其中IP地址由网络管理员在配置VRRP时指定,一台虚拟路由器可以有一个或多个IP地址(可以配置多个vrrp组实现负载分担分流),通常情况下用户使用该地址作为网关地址。

Master路由器:每个vrrp组只有一个,承担报文转发任务,响应虚拟IP和MAC地址的arp request。并且会周期性发送vrrp报文,给同一个组的路由器告知存活情况。

Backup路由器:备份路由器,当Master路由器故障会接替任务,在接替任务之前不会处理关于虚拟IP和MAC地址的报文,同时实时监听Master路由器的vrrp报文。

Priority:是竞选Master路由器的主要依据,范围0-255(0表示不参与选举),优先级越大越优先,再比较IP地址大小,越大越优先。前提是本身IP地址不是虚拟IP地址,否则会直接成为Master路由器(无需比较优先级)。

vrrp报文

VRRP只有一种报文,即Advertisement报文,基于组播方式发送,因此只能在同一个广播域(即同组vrrp)传递。 Advertisement报文的目的组播地址为224.0.0.18

VRRP报文字段含义如下:

Ver:VRRP目前有两个版本,其中VRRPv2仅适用于IPv4网络,VRRPv3适用于IPv4和IPv6两种网络。 Virtual Rtr ID:该报文所关联的虚拟路由器的标识。 Priority:发送该报文的VRRP路由器的优先级。 Count IP Addrs:该VRRP报文中所包含的虚拟IP地址的数量。 Auth Type:VRRP支持三种认证类型:不认证、纯文本密码认证、MD5方式认证,对应值分别为0、1、2。 Adver Int:发送VRRP通告消息的间隔。默认为1秒  IP Address:所关联的虚拟路由器的虚拟IP地址,可以为多个。 Authentication Data:验证所需要的密码信息。

VRRP定时器:

在VRRP协议工作过程中,VRRP定义了两个定时器:

ADVER_INTERVAL定时器:Master发送VRRP通告报文时间周期,缺省值为1秒。

MASTER_DOWN定时器:Backup设备监听该定时器超时后,会变为Master状态。

MASTER_DOWN定时器计算公式如下: MASTER_DOWN =(3* ADVER_INTERVAL)+ Skew_time(偏移时间) 其中,Skew_Time=(256–Priority)/256

状态机

VRRP协议状态机有三种状态:Initialize(初始状态)、Master(活动状态)、Backup(备份状态)。

主备选举:

R1的接口VRRP优先级为200,R2的接口VRRP优先级为100,两台设备完成初始化后首先切换至Backup状态。 R1与R2根据各自MASTER_DOWN定时器超时时间由Backup切换到Master状态,所以R1比R2更快切换至Master状态(暂时的)。 R1和R2通过相互发送VRRP报文进行Master选举,优先级高的被选举为Master设备,因此R1被选为Master路由器 。 R1被选举为Master路由器后,立即发送免费ARP报文将虚拟MAC地址通告给与它连接的设备和主机。

无法手动将VRRP接口优先级配置为255,当接口IP地址为IP地址拥有者时,优先级自动成为255。

主备回切:

VRRP抢占模式(Preempt Mode) :

抢占模式(默认激活):如果Backup路由器激活了抢占功能,那么当它发现Master路由器的优先级比自己更低时,它将立即切换至Master状态,成为新的Master路由器

非抢占模式:如果Backup路由器没有激活抢占功能,那么即使它发现Master路由器的优先级比自己更低,也只能依然保持Backup状态,直到Master路由器失效。

开启抢占模式的VRRP备份组,当主备进行切换时,总共时长为:3xAdver_Interval+Skew_time+Delay_time 在抢占模式下,当Master的设备状态不稳定或者网络质量差时,会导致VRRP备份组频繁切换,从而引发终端ARP表项频繁刷新,为缓解此问题,通常设置抢占延时定时器,通过MASTER_INTERVAL定时器超时时间加上延时时间,确定状态稳定后,再进行主备回切。

典型应用:

基础配置:

(都在接口视图下)

创建VRRP备份组并给备份组配置虚拟IP地址:vrrp vrid x virtual-ip xxxx

 配置路由器在备份组中的优先级:vrrp vrid  priority x

配置备份组中设备的抢占延迟时间:vrrp vrid x preempt-mode timer delay x

配置VRRP备份组中设备采用非抢占模式: vrrp vrid x preempt-mode disable

配置VRRP备份组监视接口: vrrp vrid x track int g 0/0/x increased/reduced x

(改变优先级,可配置设备当检测到上行接口或链路出现故障时,增加或者减少自身优先级,IP地址拥有者和Eth-trunk成员口不允许配置VRRP监视功能。)

配置VRRP备份组联动普通BFD会话:vrrp vrid x track bfd-session x session-name x increased/reduced x

(改变优先级,如果选择参数session-name bfd-configure-name,可以绑定静态BFD会话或者标识符自协商的静态BFD会话。 如果选择参数bfd-session-id,只能绑定静态BFD会话。)

BFD

基本概念

BFD(Bidirectional Forwarding Detection,双向转发检测)提供了一个通用的、标准化的、介质无关和协议无关的快速故障检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状态。(类似于更精确的hello报文)

hello报文的限制:在无法通过硬件信号检测故障的系统中,应用通常采用上层协议本身的Hello报文机制检测网络故障。 常用路由协议的Hello报文机制检测时间较长,检测时间超过1秒钟。当应用在网络中传输的数据超过GB/s时,秒级的检测时间将会导致应用传输的数据大量丢失。

在三层网络中,静态路由本身没有故障检查机制。

比如在ospf中的情况如下:

BFD提供了一个通用的、标准化的、介质无关的、协议无关的快速故障检测机制,有以下两大优点:

相邻转发引擎之间的通道提供轻负荷、快速故障检测。 用单一的机制对任何介质、任何协议层进行实时检测

BFD是一个简单的“Hello”协议。两个系统之间建立BFD会话通道,并周期性发送BFD检测报文,如果某个系统在规定的时间内没有收到对端的检测报文,则认为该通道的某个部分发生了故障。

工作原理

BFD检测是通过维护在两个系统之间建立的BFD会话来实现的,系统通过发送BFD报文建立会话。 BFD控制报文根据场景不同封装不同,报文结构由强制部分和可选的认证字段组成。

BFD会话的建立有两种方式,即静态建立BFD会话和动态建立BFD会话。

BFD通过控制报文中的本地标识符和远端标识符区分不同的会话。静态和动态创建BFD会话的主要区别在于Local Discriminator和Remote Discriminator的配置方式不同。

       BFD会话有四种状态:Down、Init、Up和AdminDown。会话状态变化通过BFD报文的State字段传递,系统根据自己本地的会话状态和接收到的对端BFD报文驱动状态改变,如左下图所示。BFD状态机的建立和拆除都采用三次握手机制,如右下图所示,以确保两端系统都能知道状态的变化。

BFD检测模式:两个系统建立BFD会话,并沿它们之间的路径周期性发送BFD控制报文,如果一方在既定的时间内没有收到BFD控制报文,则认为路径上发生了故障。分为异步模式和查询模式。 

BFD检测时间

BFD会话检测时长由TX(Desired Min TX Interval),RX(Required Min RX Interval),DM(Detect Multi)三个参数决定。BFD报文的实际发送时间间隔,实际接受时间间隔由BFD会话协商决定。

本地BFD报文实际发送时间间隔=MAX { 本地配置的发送时间间隔,对端配置的接收时间间隔 }

本地BFD报文实际接收时间间隔=MAX { 对端配置的发送时间间隔,本地配置的接收时间间隔 }

本地BFD报文实际检测时间:

异步模式:本地BFD报文实际检测时间=本地BFD报文实际接收时间间隔×对端配置的BFD检测倍数(双方都发送)

查询模式:本地BFD报文实际检测时间 = 本地BFD报文实际接收时间间隔×本端配置的BFD检测倍数(受限于对方的回复)

BFD缺省时间参数 BFD报文发送间隔默认1000毫秒,接受间隔默认1000毫秒,本地检测倍数3次。

BFD会话等待恢复时间0秒,会话延迟Up时间0秒。 检测超时倍数,用于检测方计算检测超时时间。 查询模式:采用本地检测倍数。 异步模式:采用对端检测倍数。

BFD Echo功能

用于检测对方不支持bfd功能的设备,只支持基本的网络层转发。为了能够快速的检测这两台设备之间的故障,可以在支持BFD功能的设备上创建单臂回声功能的BFD会话。支持BFD功能的设备主动发起回声请求功能,不支持BFD功能的设备接收到该报文后直接将其环回,从而实现转发链路的连通性检测功能。

联动功能简介

联动功能由检测模块、Track和应用模块三部分组成。

监测模块负责对链路状态、网络性能等进行监测,并将探测结果通知给Track模块 。

Track模块收到监测模块的探测结果后,及时改变Track项的状态,并通知应用模块。

应用模块根据Track项的状态,进行相应的处理,从而实现联动。

静态路由与BFD联动:

静态路由自身没有检测机制,如果静态路由存在冗余路径,通过静态路由与BFD联动,当主用路径故障时,实现静态路由的快速切换 。

OSPF与BFD联动

OSPF在未绑定BFD的情况下,链路故障检测时间由协议Hello机制决定,通常是秒级(40s)。通过绑定BFD,可以实现毫秒级故障检测。

BFD与OSPF联动就是将BFD和OSPF协议关联起来, BFD将链路故障的快速检测结果告知OSPF协议。

BFD会话建立后会周期性地快速发送BFD报文,如果在检测时间内没有收到BFD报文则认为该双向转发路径发生了故障,通知被服务的上层应用进行相应的处理。

写一下基于lsa和路由建立关系的区别:

  • 链路状态协议(OSPF):通过 “全局拓扑共识”(LSDB 同步)实现路由计算,强调 “先了解全网地图,再规划路径”。
  • 距离矢量协议(RIP):通过 “局部信息传递”(路由条目交换)推断网络可达性,强调 “只告诉邻居我知道的路由,不关心拓扑细节”。

基本配置

创建BFD会话绑定信息,并进入BFD会话视图:bfd x bind peer-ip ip-address interface g 0/0/x source-ip ip-address

(在第一次创建单跳BFD会话时,必须绑定对端IP地址和本端相应接口,且创建后不可修改。如果需要修改,则只能删除后重新创建)

 创建使用组播地址作为对端地址的BFD会话,并进入BFD会话视图:bfd x bind peer-id default-ip interface g 0/0/x source-ip ip-address

创建BFD for IPv6的绑定信息,并进入BFD会话视图:bfd x bind peer-ipv6 ip-address interface g 0/0/x source-ipv6 ip-address

(在第一次创建单跳BFD6会话时,必须绑定对端IPv6地址和本端相应接口,且创建后不可修改)

创建静态标识符自协商BFD会话:bfd x bind peer-ip ip-address int g 0/0/x source-ip ip-address auto  (动态bfd,静态不加auto参数)

配置BFD会话的本地标识符:(bfd视图下)discriminator local x

配置BFD会话的远端标识符:(bfd视图下)discriminator remote x

配置标识符时,本端的本地标识符与对端的远端标识符必需相同,否则BFD会话无法正确建立。并且,本地标识符和远端标识符配置成功后不可修改。

vrrp与bfd联动可以看这个:配置VRRP与BFD联动实现快速切换实验详解_router a、router b 通过二层交换机 switch 互连,在设备上配置 vrrp,同时-CSDN博客

### VRRPBFD联动的工作原理 虚拟路由器冗余协议(VRRP)用于提高网络可靠性,通过多个物理路由器形成一个虚拟路由器来提供默认网关服务。边界网关发现(BFD)则是一种轻量级的链路状态检测机制,能够快速感知路径故障并通知上层应用采取措施。 在VRRPBFD联动场景下,当BFD会话发生故障时,VRRP实例可以迅速降低其优先级,从而触发更快的角色转换过程[^1]。这种设计使得一旦主用设备(R1)至备用交换机(LSW1)之间的连接出现问题,系统能够在极短时间内完成从Master到Backup的身份转变,确保业务连续性不受影响[^3]。 具体来说,在正常情况下,R1作为VRRP Master处理所有流量转发请求;而当监测到由BFD上报的状态变化——比如通往特定目的地(如172.17.116.245)的最佳下一跳不可达时,则立即将该信息反馈给关联的VRRP模块,促使后者调整自身的优先权值以便及时让位于更优的选择[R2成为新的Master节点][^2]。 ### 配置示例 以下是基于上述描述的一个简化版配置案例: #### R1 (Master) ```shell interface GigabitEthernet0/0/1 ip address 192.168.1.1 255.255.255.0 vrrp vrid 1 virtual-ip 192.168.1.254 vrrp vrid 1 priority 150 bfd bind peer-ip 172.22.159.238 interface GigabitEthernet0/0/1 track bfd-session 1 reduced-priority 150 ``` 这段命令序列定义了一个具有较高初始优先级(150)的VRRP VRID 1,并绑定了一个指向远端IP地址`172.22.159.238` 的BFD会话。如果此会话失败,则本地VRRP实例的优先级会被减去指定数值(这里是150),这通常意味着它将失去Master身份。 #### R2 (Backup) ```shell interface GigabitEthernet0/0/1 ip address 192.168.1.2 255.255.255.0 vrrp vrid 1 virtual-ip 192.168.1.254 vrrp vrid 1 priority 100 ``` 这里设置了较低的基础优先级(100),因此除非收到来自当前Master的通知表明对方已降级,否则不会主动接管角色。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值