HCNP Routing&Switching之VRRP基础
前文我们了解了链路高可用技术链路聚合相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16279078.html;今天我们来聊一聊另一种高可用技术,网关高可用vrrp相关话题;
技术背景
提示:通常一个网段内只有一个网关,当然一旦网关出现故障,对应网段内的主机将无法正常和其他网段主机通信,这也意味着该网段就被孤立了;那该怎么办呢?我们可以不可以提供多台网关呢?
提示:我们知道一个网关就对应一个ip地址,多台网关就意味着有多个ip地址且彼此都是不同的ip地址;虽然多台网关可以有冗余备份的效果,但是如果默认网关宕机,谁来通知用户,或者谁来更改用户侧主机的网关地址呢?很显然需要某种协同机制,比如网关1是默认网关,当默认网关宕机以后,对应备份网关能够知道,并且能够接管默认网关的工作的同时,让用户无所感知;
VRRP:Virtual Router Redundancy Protocol,虚拟路由器冗余协议,一般路由器在网络中就是充当网关的作用,所以该协议也叫虚拟网关冗余协议;
提示:vrrp它能够将多台物理网关加入到一个设备组中,形成一台虚拟网关,承担物理网关的功能;只要设备组中有任意一台物理网关能够正常工作,虚拟网关就能正常工作;该协议有两个版本,v2和v3;v2基于IPV4,v3基于IPV6;
提示:当链路或设备发生故障,对应备份网关将充当虚拟网关,持续为用户提供网关服务;这也提高了整网段的可靠性;
VRRP备份组:VRRP Group
所谓备份组就是将局域网内的一组网关划分在一起;该备份组里的设备由一个主设备(master)和多个备份设备(backup)组成,功能上相当于一台虚拟网关;虚拟网关有一个虚拟ip地址,作为该虚拟网关的ip地址,也是用户端指定的ip地址;
提示:有了虚拟网关,对应用户侧就不能设置物理网关地址,因为虚拟ip是可以在两个物理设备间相互移动,也就是说谁是master,对应谁就拥有虚拟ip的身份(能响应对应虚拟ip的arp请求和数据转发的能力);
提示:正常情况下,如果一个设备组中有master存活,对应backup会一直监听master的心跳,如果在一定时间段里,backup没有收到master的心跳,对应backup就会认为master不存在,它就会主动承担起master的角色,向外发送心跳,表示它是master,同时也告诉别人master还活着;正因为是这样的属性,当master宕机以后,对应backup就能通过监听心跳来判断对应master是否存活,一旦master宕机,backup就会立刻转变为master角色,为用户提供网关服务;
VRRP选举规则
VRRP选举规则是根据各网关发送到vrrp报文中的优先级确定,优先级最大者称为master,其他网关称为backup:master主要负责应答对虚拟ip地址的ARP请求,转发发往虚拟网关的数据包;backup主要负责监听master的心跳,在master故障以后,接替master的工作;vrrp的优先级范围是0-255,默认是100,数字越大越优先;其中优先级255保留给ip地址拥有者使用,所谓ip地址拥有者是指物理网关的ip地址和虚拟网关的ip地址相同,此时我们手动设置的优先级就不生效了,它会自动将对应ip地址拥有者的优先级改成255;优先级0用于触发backup立即成为master,如主动退出VRRP组,对应发送的优先级就是0;如果优先级一样,就比较ip地址,ip地址越大越优先;抢占规则,默认是开启;这里需要注意抢占只会比较优先级,如果优先级一样,对应不会触发vrrp master重新选举;只有在设备组中收到了更高优先级的设备发送的vrrp报文后,对应才会触发master的重新选举;
提示:默认先比较优先级,优先级大者成为master,其他设备成为backup;如果优先级一样,则比较ip地址,ip地址大者成为master;
提示:如果物理网关的ip地址和虚拟网关的ip地址一样,这对应物理网关就是ip地址拥有者,成为master;同时对应设备的优先级会自动变为255;
虚拟MAC规则
提示:虚拟mac规则我们只需要知道后面两个16位数字表示的是vrrp的组编号,范围是0-255;前面的00-00-5e是IANA分配的,00-01表示vrrp协议;
VRRP工作流程
提示:默认设备组里的设备都会是backup的状态发送vrrp报文,选举master;如果设备组里只有一台设备,那么等待计时器超时以后,对应状态会从backup转变为master;如果有多台设备,首先会根据优先级选举出master,如果优先级一样则比较ip地址,ip地址大者成为master;
提示:根据优先级比较,如果对应设备优先级高,对应设备就会立刻成为master,其他设备将成为backup,成为master的设备会周期性发送vrrp报文,意思就是告诉backup master还活着;
提示:成为master的设备首先会发送一个免费ARP,告诉交换机虚拟mac地址;对应交换机收到免费ARP以后,对应就会在mac地址表项中记录对应虚拟mac对应的端口;后续交换机收到虚拟mac封装的包,会自动转发到对应的接口,发送给master;
提示:当pc请求虚拟网关的mac时,首先pc会发送arp广播,交换机收到arp广播以后,会泛洪所有端口,但是只有master会应答该arp请求;
提示:当pc收到虚拟网关mac以后,就会封装目标mac为虚拟网关mac进行数据包发送,当交换机收到对应报文以后,会根据自己记录的mac地址表项,从对应接口转发出去给master;后续master收到对应数据报文后,就会进行处理(因为master拥有虚拟mac和虚拟ip的使用权,即它可以解封装虚拟mac的包和虚拟ip的包,同时重新封装,简单讲用户的报文到达master后会进行解封装、和再次封装的过程,当然回来的包也会经历这个过程);
提示:当master发生故障以后,对应backup会等待一段时间,如果在这个等待的时间里没有收到master的心跳,此时backup就会认为对应master应该是故障了,backup就会切换成master,接替master继续工作;
提示:当然当backup成为master以后,对应也会向交换机发送免费arp告诉交换机更新自己的mac地址表项;对应交换机收到免费ARP报文以后,就会记录虚拟mac地址和收到免费ARP的接口做对应;
提示:当pc再次向交换机发送虚拟mac地址封装的包后,对应交换机就会根据自己的mac地址表项记录的接口,转发pc的数据包;
提示:如果master恢复以后,对应没有配置抢占,即便自己的优先级高,对应master角色也不会恢复;只有开启了抢占模式以后,对应vrrp设备组中有更高优先级的设备发送vrrp报文,才会触发master的重新选举;
VRRP定时器
VRRP定时器有两种,一种是通告间隔定时器,一种是抢占延时定时器;所谓通告间隔定时器就是指master每隔多久发送一次心跳;默认是1秒一次;正常情况下master会定时发送VRRP通告报文,告诉backup自己还活着;如果backup在等待3个间隔时间后,依然没有收到master的通告报文,则认为master故障,此时backup会将状态切换成master,并对外发送vrrp通告报文,重新进行master的选举;
抢占延时定时器是指开启了抢占模式,对应master故障后,又恢复了,是隔多久将状态切换成master;默认是0秒,即只要master恢复就立刻抢占;为了避免频繁的主备切换,让backup有足够的时间收集必要的信息,backup接收到优先级更低的vrrp通告报文后,不会立即抢占成为master,而是等待一定时间才会对外发送vrrp通告报文取代原来的master;
VRRP报文格式
提示:version表示版本,有v2和v3,v2基于ipv4,v3基于ipv6;其中type表示对应的类型;virtual Rtr ID表示vrrp 组的编号;priority表示对应设备的优先级;count ip addrs表示虚拟ip地址的数量;auth type表示认证类型;adver Int表示通告间隔时长;后面的就是校验和,ip地址,认证等信息;vrrp是属于网络称协议,其协议号为112,组播地址为224.0.0.18;各网络协议层次划分可以参考https://images.cnblogs.com/cnblogs_com/qiuhom-1874/1989985/o_220529161814_Layer%20division%20of%20network%20protocols.jpg;
VRRP状态机制
提示:VRRP的状态有三种,分别是backup、master、Initialize;其中默认最开始时都会是backup的状态,当收到优先级大于本地优先级的设备发送的vrrp报文后,或者收到优先级和本地优先级一样,且ip地址大于本地接口ip地址的报文后,对应设备会处于backup状态;当在3个周期没有收到master发送的心跳,或者收到优先级小于本地优先级的报文,且开启了抢占的情况下,对应设备会从backup状态切换至master状态;如果是ip地址拥有者,最开始它不是backup状态而是Initialize状态,然后直接转变为master状态;如果master/backup对应接口down掉以后都会回到Initialize状态;当然如果原来是backup,由于接口down掉变为Initialize状态,在接口恢复后还是会恢复成backup(master存活的情况下,如果master down,会触发新的master选举,会从backup转变为master)
VRRP设计方案注意事项
提示:我们知道在二层网络里,如果开启了STP,那么所有流量都会先到根桥,然后从根桥网其他地方转发;如果master和stp根桥不在同一设备,则会出现次优路径;所以为了避免次优路径,对应vrrp里的master和stp里的root应该保持一致,即都在同一设备;
VRRP应用
提示:主备备份是最常见的VRRP应用,即在一个设备组里,一个master工作多个backup看着master工作,监听master的心跳;很显然这种是很浪费设备,同时master的压力也是比较大;
提示:负载分担是合理的规划,将多个设备组在同一台设备上设置不同的角色,比如组1里R1为master,R2和R3为backup;在组2里R2为master,R1和R3为backup;在组3里R3为master,R1和R2为backup;这样一来使得每个路由器都得到了应用,同时多个路由器两两备份,其中一台或两台宕机都不会影响业务的访问;
VRRP跟踪
提示:所谓vrrp跟踪是指非vrrp接口宕掉以后,对应vrrp接口能够感知;如上图所示如E0口是master接口,如果G1口down掉以后,对应vrrp并不会感知,对应pc的数据还是会转发至RA的E0口;这样一来对应pc的数据就会绕路;所以为了避免因非vrrp接口down造成次优路径;我们可以在master上vrrp接口上绑定一个接口,如果一旦该接口down掉,对应vrrp的优先级自动降低至能够触发master选举,让backup成为master;
提示:如上,master上游链路故障后,自动将优先级降低30,使得master的优先级小于backup即可,对应backup 收到小于自己本地优先级的vrrp报文,它会自动切换成master,从而避免次优路径的发生;这里需要master 降低后的优先级要小于backup才行,如果降低后的优先级大于backup,对应不会触发master选举,没有意义;
提示:除了master优先级降低后要小于backup的优先级之外,对应backup要开启抢占才行,如果backup没有开启抢占,对应即便收到优先级小于自己本地优先级的vrrp报文,对应backup也不会成为master;所以使用vrrp追踪必须满足两点,master降低后的优先级要小于backup,其次是backup上必须开启抢占;