VRRP :
1 背景介绍:
单网关问题:当网管路由器A 出现古装,本网段内以该设备为网关的主机都不能再进行通信。
多个网关的设立,会造成ip地址的冲突,主机会频繁切换网络出口
2Vrrp的工作原理:
- VRRP能够在不改变组网的情况下,将多台路由器虚拟成一个虚拟路由器,通过配置虚拟路由器的IP地址为默认网关,实现网关的备份。
- 协议版本:VRRPv2(常用)和VRRPv3:
- VRRPv2仅适用于IPv4网络,VRRPv3适用于IPv4和IPv6两种网络。
- VRRP协议报文:
- 只有一种报文:Advertisement报文;其目的IP地址是224.0.0.18,目的MAC地址是01-00-5e-00-00-12,协议号是112。
-
基本概念:
1虚拟路由器(Virtual Router):又称VRRP备份组,由一个Master设备和多个Backup设备组成,被当作一个共享局域网内主机的缺省网关。如RouterA和RouterB共同组成了一个虚拟路由器。
2 Master路由器(Virtual Router Master):承担转发报文任务的VRRP设备,如RouterA。
3 Backup路由器(Virtual Router Backup):一组没有承担转发任务的VRRP设备,当Master设备出现故障时,它们将通过竞选成为新的Master设备,如RouterB。
4 Priority:设备在备份组中的优先级,取值范围是0~255。0表示设备停止参与VRRP备份组,用来使备份设备尽快成为Master设备,而不必等到计时器超时;255则保留给IP地址拥有者,无法手工配置;设备缺省优先级值是100。
5 vrid:虚拟路由器的标识,如图中RouterA和RouterB组成的虚拟路由器的vrid为1,需手工指定,范围1-255。
6虚拟IP地址(Virtual IP Address):虚拟路由器的IP地址,一个虚拟路由器可以有一个或多个IP地址,由用户配置。如RouterA和RouterB组成的虚拟路由器的虚拟IP地址为10.1.1.254/24。
7 IP地址拥有者(IP Address Owner):如果一个VRRP设备将真实的接口IP地址配置为虚拟路由器IP地址,则该设备被称为IP地址拥有者。如果IP地址拥有者是可用的,则它将一直成为Master。
8虚拟MAC地址(Virtual MAC Address):虚拟路由器根据vrid生成的MAC地址。一个虚拟路由器拥有一个虚拟MAC地址,格式为:00-00-5E-00-01-{vrid} 。当虚拟路由器回应ARP请求时,使用虚拟MAC地址,而不是接口的真实MAC地址。如RouterA和RouterB组成的虚拟路由器的vrid为1,因此这个VRRP备份组的MAC地址为00-00-5E-00-01-01。
Vrrp协议状态机有三种状态:Initialize (初始化) master(活动状态) backup (备状态)
Vrrp工作过程
1选举出Master:
VRRP备份组中的设备根据优先级选举出Master。Master设备通过发送免费ARP报文,将虚拟MAC地址通知给与它连接的设备或者主机,从而承担报文转发任务。
选举规则:比较优先级的大小,优先级高者当选为Master设备。当两台设备优先级相同时,如果已经存在Master,则其保持Master身份,无需继续选举;如果不存在Master,则继续比较接口IP地址大小,接口IP地址较大的设备当选为Master设备。
2Master设备状态的通告(VRRP备份组状态维持):
Master设备周期性地发送VRRP通告报文,在VRRP备份组中公布其配置信息(优先级等)和工作状况。Backup设备通过接收到的VRRP报文来判断Master设备是否工作正常。 当Master设备主动放弃Master地位(如Master设备退出备份组)时,会发送优先级为0的通告报文,用来使Backup设备快速切换成Master设备,而不用等到Master_Down_Interval定时器超时。这个切换的时间称为Skew_Time,计算方式为:(256-Backup设备的优先级)/256,单位为秒。
3 当Master设备发生网络故障而不能发送通告报文的时候,Backup设备并不能立即知道其工作状况。等到Master_Down_Interval定时器超时后,才会认为Master设备无法正常工作,从而将状态切换为Master。其中,Master_Down_Interval定时器取值为:3×Advertisement_Interval+Skew_Time,单位为秒。
Master设备故障工作过程:
当组内的备份设备一段时间(Master_Down_Interval定时器取值为:3×Advertisement_Interval+Skew_Time,单位为秒)内没有接收到来自Master设备的报文,则将自己转为Master设备。
一个VRRP组里有多台备份设备时,短时间内可能产生多个Master设备,此时,设备将会对收到的VRRP报文中的优先级与本地优先级做比较,从而选取优先级高的设备成为Master。
设备的状态变为Master之后,会立刻发送免费ARP来刷新交换机上的MAC表项,从而把用户的流量引到此设备上来,整个过程对用户完全透明。
当master恢复,应为master的优先级高,会进行抢占,抢占模式默认是开启的
抢占模式(Preemption Mode):
控制具有更高优先级的备用路由器是否能够抢占具有较低优先级的Master路由器,使自己成为Master。缺省为抢占模式。
注意:存在的例外情况是如果IP地址拥有者是可用的,则它总是处于抢占的状态,并成为Master设备。
抢占延时(Delay Time):
p 抢占延迟时间,默认为0,即立即抢占。
p 图中RouterA故障恢复后,立即抢占可能会导致流量中断,因为RouterA的上行链路的路由协议可能未完成收敛,这种情况则需要配置Master设备的抢占延时。
p 另外,在性能不稳定的网络中,网络堵塞可能导致Backup设备在Master_Down_Interval期间没有收到Master设备的报文,Backup设备则会主动切换为Master。如果此时原Master设备的报文又到达了,新Master设备将再次切换回Backup,如此则会出现VRRP备份组成员状态频繁切换的现象。为了缓解这种现象,可以配置抢占延时,使得Backup设备在等待了Master_Down_Interval时间后,再等待抢占延迟时间。如在此期间仍没有收到通告报文,Backup设备才会切换为Master设备。
命令: vrrp vrid 1 preempt-mode timer delay 20 设置抢占延时20s
实验:
AR1 : 1 进入接口试图下 [r2]int g0/0/2 [r2-GigabitEthernet0/0/2]ip address 10.0.0.1 24 确保AR1与AR2的ip能通 [r1-GigabitEthernet0/0/1]vrrp vrid 1 virtual-ip 10.0.0.10 配置一个vrrp实列,虚拟ip [r1-GigabitEthernet0/0/1]vrrp vrid 1 priority 120 配置优先级,优先级高的为master,优先级一样ip地址大的为master vrrp vrid 1 preempt-mode timer delay 20 抢占延迟20s vrrp vrid 1 track interface GigabitEthernet0/0/0 reduced 30 当检查的g0/0/0端口的链路坏了是优先级减30,120-30 优先级小于AR2 转为backup,只能检测到直连链路,不是直连就检测不到了需要借助BFG AR2 [r2]int g0/0/2 [r2-GigabitEthernet0/0/2]vrrp vrid 1 virtual-ip 10.0.0.10 优先级默认100 dis varrp 进行查看 AR3 : [r3]ip route-static 10.0.0.0 24 g0/0/0 13.1.1.1 [r3]ip route-static 10.0.0.0 24 g0/0/1 13.1.2.1
BFD协议:
-
双向转发检测BFD(Bidirectional Forwarding Detection)提供了一个通用的标准化的介质无关和协议无关的快速故障检测机制,用于快速检测、监控网络中链路或者IP路由的转发连通状况。
BFD会话建立后会周期性地快速发送BFD报文,如果在检测时间内没有收到对端BFD报文则认为该双向转发路径发生了故障,通知被服务的相关层应用进行相应的处理。
l 本身并没有邻居发现机制,而是靠被服务的上层应用通知其邻居信息以建立会话。
l 不管是物理接口状态、二层链路状态、网络层地址可达性、还是传输层连接状态、应用层协议运行状态,都可以被BFD感知到。
BFD的标识符:
BFD建立会话存在标识符的概念,类似于OSPF建立邻居需要一个路由器的Router ID。
标识符分为本地标识符和远端标识符,本地标识符用于表示本端设备,远端标识符用于表示对端设备。
p 静态建立BFD会话是指通过命令行手工配置BFD会话参数,包括配置本地标识符和远端标识符等,然后手工下发BFD会话建立请求。
p 动态建立BFD会话是指由应用程序触发创建BFD会话,当应用程序动态触发创建BFD会话时,系统分配属于动态会话标识符区域的值作为BFD会话的本地标识符。然后向对端发送Remote Discriminator的值为0的BFD控制报文,进行会话协商。当BFD会话的一端收到Remote Discriminator的值为0的BFD控制报文时,判断该报文是否与本地BFD会话匹配,如果匹配,则学习接收到的BFD报文中Local Discriminator的值,获取远端标识符。
l BFD的检测机制:
p BFD的检测机制是两个系统建立BFD会话,并沿它们之间的路径周期性发送BFD控制报文,如果一方在既定的时间内没有收到BFD控制报文,则认为路径上发生了故障,BFD控制报文是UDP报文,端口号3784。
p BFD提供异步检测模式。在这种模式下,系统之间相互周期性地发送BFD控制报文,如果某个系统连续3个报文都没有接收到,就认为此BFD会话的状态是Down。
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的控制报文。
Ospf -----》 bfg
-
OSPF的BFD检测故障发现处理流程。
OSPF通过自己的Hello机制发现邻居并建立连接。
OSPF在建立了邻居关系后,将邻居信息(包括目的地址和源地址等)通告给BFD。
BFD根据收到的邻居信息建立会话。
被检测链路出现故障。
BFD快速发送BFD探测报文检测到链路故障,如果在规定时间内无响应,BFD会话状态变为Down。
BFD通知本地OSPF进程BFD邻居不可达。
本地OSPF进程中断OSPF邻居关系
监测模块负责对链路状态、网络性能等进行监测,并将探测结果通知给Track模块 。
l Track模块收到监测模块的探测结果后,及时改变Track项的状态,并通知应用模块。
l 应用模块根据Track项的状态,进行相应的处理,从而实现联动。
配置:
配置思路:
配置RTA和RTB网络层路由可达。
配置RTA和RTB的BGP邻居参数,建立起IBGP的邻居关系。
在RTA和RTB上全局启用BFD功能。
在RTA和RTB的BGP进程下启用BFD检测
单臂回声功能:
是指通过BFD报文的环回操作检测转发链路的连通性。
两台直接相连的设备中RTA和RTB,其中一台设备RTA支持BFD功能,另一台设备RTB不支持BFD功能,只支持基本的网络层转发。为了能够快速的检测这两台设备之间的故障,可以在支持BFD功能的设备RTA上创建单臂回声功能的BFD会话。RTA主动发起回声请求功能,不支持BFD功能的设备RTB接收到该报文后直接将其环回,从而实现转发链路的连通性检测功能。
实现的技术原理就是支持BFD功能的路由器RTA在出接口发送目的地址和源地址都是自己的BFD探测报文,不支持BFD功能的路由器RTB收到探测报文就直接回发给路由器RTA
实验
RA的配置文件 # sysname RA # interface GigabitEthernet0/0/0 ip address 13.1.1.1 255.255.255.0 # interface GigabitEthernet0/0/1 ip address 10.0.0.1 255.255.255.0 vrrp vrid 1 virtual-ip 10.0.0.10 vrrp vrid 1 priority 120 vrrp vrid 1 preempt-mode timer delay 20 vrrp vrid 1 track interface GigabitEthernet0/0/0 reduced 30 vrrp vrid 1 track bfd-session session-name 1 reduced 30 # bfd 1 bind peer-ip 13.1.1.3 source-ip 13.1.1.1 auto commit # ip route-static 3.3.3.3 255.255.255.255 13.1.1.3 # RB的配置文件 # sysname RB # interface GigabitEthernet0/0/0 ip address 23.1.1.2 255.255.255.0 # interface GigabitEthernet0/0/1 ip address 10.0.0.2 255.255.255.0 vrrp vrid 1 virtual-ip 10.0.0.10 # ip route-static 3.3.3.3 255.255.255.255 23.1.1.3 # RC的配置文件 # sysname RC # interface GigabitEthernet0/0/0 ip address 13.1.1.3 255.255.255.0 # interface GigabitEthernet0/0/1 ip address 23.1.1.3 255.255.255.0 # interface LoopBack0 ip address 3.3.3.3 255.255.255.255 # bfd 1 bind peer-ip 13.1.1.1 source-ip 13.1.1.3 auto commit # ip route-static 10.0.0.0 255.255.255.0 13.1.1.1 ip route-static 10.0.0.0 255.255.255.0 23.1.1.2 # 检查bfd的状态 [RA]display bfd session all