VRRP+BFD
VRRP
VRRP:虚拟路由冗余协议
VRRP协议是一个 冗余 备份 的协议
之前学的 冗余 备份的协议有:
浮动路由
STP 生成树
OSPF
Eth-Trunk 聚合链路
用于备份和扩大带宽
以上协议解决不了网关备份的需求 主机的网关
VRRP的需求/作用:主机需要对网关做冗余备份
VRRP基本概述
- VRRP能够在不改变组网的情况下,将多台路由器虚拟成一个虚拟路由器,通过配置虚拟路由器的IP地址为默认网关,实现网关的备份。
- 协议版本:VRRPv2(常用)和VRRPv3:
- VRRPv2仅适用于IPv4网络,VRRPv3适用于IPv4和IPv6两种网络。
- VRRP协议报文:
-
- 只有一种报文:Advertisement报文;其目的IP地址是224.0.0.18,目的MAC地址是01-00-5e-00-00-12,协议号是112。
VRRP基本结构
- VRRP路由器(VRRP Router):运行VRRP协议的设备,如RouterA和RouterB。
- 虚拟路由器(Virtual Router):又称VRRP备份组,由一个Master设备和多个Backup设备组成,被当作一个共享局域网内主机的缺省网关。如RouterA和RouterB共同组成了一个虚拟路由器。
- Master路由器(Virtual Router Master):承担转发报文任务的VRRP设备,如RouterA。
- Backup路由器(Virtual Router Backup):一组没有承担转发任务的VRRP设备,当Master设备出现故障时,它们将通过竞选成为新的Master设备,如RouterB。
- Priority:设备在备份组中的优先级,取值范围是0~255。0表示设备停止参与VRRP备份组,用来使备份设备尽快成为Master设备,而不必等到计时器超时;255则保留给IP地址拥有者,无法手工配置;设备缺省优先级值是100。这里的优先级是越大越优
- vrid:虚拟路由器的标识,如图中RouterA和RouterB组成的虚拟路由器的vrid为1,需手工指定,范围1-255。
状态机
- VRRP协议状态机有三种状态:Initialize(初始状态)、Master(活动状态)、Backup(备状态)。
VRRP主备份工作过程
主会向备份周期性的发送Advertisement报文 每秒一次而备份的则是一直在监听,如果3秒没有接收到主发来的报文,则会自己自动变为主
- VRRP备份组中的设备根据优先级选举出Master。Master设备通过发送免费ARP报文,将虚拟MAC地址通知给与它连接的设备或者主机,从而承担报文转发任务。
- 选举规则:比较优先级的大小,优先级高者当选为Master设备。当两台设备优先级相同时,如果已经存在Master,则其保持Master身份,无需继续选举;如果不存在Master,则继续比较接口IP地址大小,接口IP地址较大的设备当选为Master设备。
VRRP故障场景
- 图中RouterA的上行链路故障不会引起VRRP主备切换,这样会造成HostA访问Internet的流量在RouterA处被丢弃,所以需要使VRRP设备能够感知到上行链路故障,并且及时做主备切换。
- 若RouterA或连接RouterB的接口发生故障时都会引起VRRP主备切换,因为Backup设备无法在Master_Down_Interval时间内收到Master设备发送的协议报文了。
由于vrrp故障点如果在右边 则不会触发vrrp的切换
Vrrp追踪这个接口 如果g0/0/1端口down了 就会降低g0/0/0这个端口的优先级
降低100点
[R1-GigabitEthernet0/0/0]vrrp vrid 1 track interface g0/0/1 reduced 100
VRRP配置实现
//负载分担方式与主备备份方式配置思路一致,以单个VRRP备份组为例,Master设备配置:
vrrp vrid 1 virtual-ip 10.0.0.10 //配置vrid1中的虚拟IP地址。
vrrp vrid 1 priority 120 //配置在vrid1中的优先级为120,其他设备优先级未手动指定,缺省为100,则本设备为Master。
vrrp vrid 1 preempt-mode timer delay 20 //配置Master设备的抢占时延为20秒。
vrrp vrid 1 track interface GigabitEthernet0/0/0 reduce 30 //跟踪上行接口G0/0/0的状态,如果端口出现故障,则Master设备VRRP优先级降低30。
//Backup设备配置:
vrrp vrid 1 virtual-ip 10.0.0.10 //配置vrid1中的虚拟IP地址。
配置命令、实验
//Vrid:是组的意思 虚拟组
[R1-GigabitEthernet0/0/0]vrrp vrid 1 virtual-ip 192.168.1.254
//配置这个组的优先级,越大越优 默认为100
[R1-GigabitEthernet0/0/0]vrrp vrid 1 priority 150
//查看VRRP 主备等
[R1]dis vrrp brief
//查看vrrp详细信息
[R1]dis vrrp
BFD
- 随着网络应用的广泛部署,网络发生中断可能影响业务正常运行并造成重大损失。为了减小链路、设备故障对业务的影响,提高网络的可靠性,网络设备需要尽快检测到与相邻设备间的通信故障,以便及时采取措施,保证业务正常进行。
- 双向转发检测BFD(Bidirectional Forwarding Detection)提供了一个通用的标准化的介质无关和协议无关的快速故障检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。
BFD技术简介
- 五层通用的协议
- BFD会话建立后会周期性地快速发送BFD报文,如果在检测时间内没有收到对端BFD报文则认为该双向转发路径发生了故障,通知被服务的相关层应用进行相应的处理。
- 本身并没有邻居发现机制,而是靠被服务的上层应用通知其邻居信息以建立会话。
- 不管是物理接口状态、二层链路状态、网络层地址可达性、还是传输层连接状态、应用层协议运行状态,都可以被BFD感知到。
BFD会话建立方式和检测机制
- 加入A向B发送会话, 也是周期性发送 1秒一次 3秒超时
- 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会话建立过程
- RTA和RTB各自启动BFD状态机,初始状态为Down,发送状态为Down的BFD报文。对于静态配置BFD会话,报文中的Remote Discriminator的值是用户指定的;对于动态创建BFD会话,Remote Discriminator的值是0。
- RTB收到状态为Down的BFD报文后,状态切换至Init,并发送状态为Init的BFD报文。
- RTB本地BFD状态为Init后,不再处理接收到的状态为Down的报文。
- RTB收到状态为Init的BFD报文后,本地状态切换至Up。
- RTA的BFD状态变化同RTB。
- 邻居会话建立成功后,RTA和RTB周期性的向对方发送状态为Up的控制报文。
BFD工作流程
- OSPF的BFD检测故障发现处理流程。
- OSPF通过自己的Hello机制发现邻居并建立连接。
- OSPF在建立了邻居关系后,将邻居信息(包括目的地址和源地址等)通告给BFD。
- BFD根据收到的邻居信息建立会话。
- 被检测链路出现故障。
- BFD快速发送BFD探测报文检测到链路故障,如果在规定时间内无响应,BFD会话状态变为Down。
- BFD通知本地OSPF进程BFD邻居不可达。
- 本地OSPF进程中断OSPF邻居关系。
联动功能简介
- 监测模块负责对链路状态、网络性能等进行监测,并将探测结果通知给Track模块 。
- Track模块收到监测模块的探测结果后,及时改变Track项的状态,并通知应用模块。
- 应用模块根据Track项的状态,进行相应的处理,从而实现联动。
单臂回声
//使用单臂回声的方式配置 bfd
[R1]bfd 1to3 bind peer-ip 13.1.1.3 interface g0/0/1 one-arm-echo
//设置一个本地标识符
[R1-bfd-session-1to3]discriminator local 1
//激活一下 开启单臂回声 提交
[R1-bfd-session-1to3]commit
//Vrrp上追踪这个bfd 这个就使用标识符来选中bfd
[R1-GigabitEthernet0/0/0]vrrp vrid 1 track bfd-session 1 reduced 100
- 是指通过BFD报文的环回操作检测转发链路的连通性。
- 两台直接相连的设备中RTA和RTB,其中一台设备RTA支持BFD功能,另一台设备RTB不支持BFD功能,只支持基本的网络层转发。为了能够快速的检测这两台设备之间的故障,可以在支持BFD功能的设备RTA上创建单臂回声功能的BFD会话。RTA主动发起回声请求功能,不支持BFD功能的设备RTB接收到该报文后直接将其环回,从而实现转发链路的连通性检测功能。
- 实现的技术原理就是支持BFD功能的路由器RTA在出接口发送目的地址和源地址都是自己的BFD探测报文,不支持BFD功能的路由器RTB收到探测报文就直接回发给路由器RTA。
常用命令、实验
//创建一个bfd
[R1]bfd
//建立一个会话,给这个会话取一个名字
//绑定远端IP 和自己的源IP 设置自动生成标识符
[R1]bfd 1to3 bind peer-ip 13.1.1.3 source-ip 13.1.1.1 auto
//查看bdf会话
[R3]dis bfd session all
//Local 代表自动生成的本地标识符
//Remote 远端标识符
//peerIPAddr 远端IP地址
//State 状态
//Type S代表静态手动配置的会话,auto代表自动的意思 peer类型代表对等体
//在vrrp上面追踪这个bfd
[R1-GigabitEthernet0/0/0]vrrp vrid 1 track bfd-session session-name 1to3 reduced 100
//查看BFD会话
[R1]display bfd session all
在所有启用了ospf接口 全部开启了bfd的这个一个检测的功能
两个ospf之间会根据邻居表来建立session会话
[R1-ospf-1]bfd all-interfaces enable