前文我们了解了链路高可用技术链路聚合相关话题,回顾请参考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上必须开启抢占;

HCNP Routing&Switching之VRRP基础的更多相关文章

  1. HCNP Routing&Switching之BGP基础

    前文我们了解了路由注入带来的问题以及解决方案相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15362604.html:今天我们来学习下新的路由协议BG ...

  2. HCNP Routing&Switching之动态路由协议IS-IS基础

    前文我们了解了OSPF的特殊区域相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15236330.html:今天我们来聊一聊另一动态路由协议IS-IS相 ...

  3. HCNP Routing&Switching之组播技术-组播基础

    组播技术背景 随着internet网络的不断发展,网络中交互的各种数据.语音.视频信息数量突增:新型的在线直播.网络电视.视频会议等应用也在逐渐兴起:这些业务大多符合点到多点的模式,对信息安全性.传播 ...

  4. HCNP Routing&Switching之IS-IS报文结构和类型

    前文我们了解了IS-IS动态路由协议基础相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15249328.html:今天我们来聊一聊IS-IS动态路由协 ...

  5. HCNP Routing&Switching之组播技术-组播协议IGMP

    前文我们了解了组播地址相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15616740.html:今天我们来聊一聊组播协议中IGMP协议相关话题: 组播 ...

  6. HCNP Routing&Switching之ARP安全

    前文我们了解了IP安全相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16652367.html:今天我们来聊一聊ARP安全相关话题: 什么是ARP? ...

  7. HCNA Routing&Switching之路由基础

    在开始聊路由之前,我们首先要明白在网络通讯里,什么是路由?什么是路由表.路由器以及网关的相关术语:路由简单讲就是指网络数据包从源头到目标的路径,主要用来为不同网络间通讯提供数据包转发依据:路由表就是多 ...

  8. HCNP Routing&Switching之OSPF LSA类型(二)

    前文我们了解了OSPF的一类.二类.三类LSA,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15209829.html:今天我们来聊一聊OSPF的四类和五类L ...

  9. HCNP Routing&Switching之BGP邻居建立条件、优化和认证

    前文我们了解了BGP相关概念.AS相关概念以及BGP邻居类型.基础配置等,相关回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15370838.html:今天我们 ...

随机推荐

  1. snippet,让你编码效率翻倍

    为什么谈到Snippet 今天下午在用vscode做小程序的时候,发现很不方便,因为商店里提供的代码片段极为有限,而且平时几乎每天都需要用到代码片段,所以就在思考他们是怎么做到给别人提供代码的,我可以 ...

  2. springMVC中获取request和response对象的几种方式(RequestContextHolder)

    springMVC中获取request和response对象的几种方式 1.最简单方式:参数 2.加入监听器,然后在代码里面获取 原文链接:https://blog.csdn.net/weixin_4 ...

  3. 分库分表实现方式Client和Proxy,性能和维护性该怎么选?

    大家好,我是[架构摆渡人],一只十年的程序猿.这是分库分表系列的第一篇文章,这个系列会给大家分享很多在实际工作中有用的经验,如果有收获,还请分享给更多的朋友. 其实这个系列有录过视频给大家学习,但很多 ...

  4. redis迁移第三篇(cluster forget)

    1.删除错误节点,带有 fail,noaddr , 这种需要用 cluster forget redis集群迁移之后,由于之前的误操作,导致pod日志里面出现这样的错误,出现一会好一会不好的情况,就是 ...

  5. mysql组提交

    当mysql开启binlog日志时,会存在一个内部XA的问题:事务在存储引擎层redo log的写入和binlog的写入一致性问题. mysql通过两阶段提交很好的解决了redo log和binlog ...

  6. 【大学物理实验】01 单摆测重力加速度 的 g 计算代码

    单摆测重力加速度 传统摆 (代码没保存,就截了个图) 研究单摆周期与摆长之间的关系 (依旧是g的计算) 我还不太会数据拟合

  7. 2021.11.09 P3426 [POI2005]SZA-Template(KMP+DP)

    2021.11.09 P3426 [POI2005]SZA-Template(KMP+DP) https://www.luogu.com.cn/problem/P3426 题意: 你打算在纸上印一串字 ...

  8. CentOS下Apache Doris Oracle ODBC外表使用指南

    1.软件环境 操作系统:CentOS 7.8 Apache Doris :0.15 Postgresql数据库:oracle 19c UnixODBC:2.3.1 Oracle ODBC :insta ...

  9. Golang Zap日志

    Zap日志解析 Config.yaml zap: level: 'info' #日志级别 format: 'console' #输出的级别,有console和json prefix: '[cateri ...

  10. GO语言学习——切片二

    使用make()函数构造切片 格式: make([]T, size, cap) 其中: T:切片的元素类型 size:切片中元素的数量 cap:切片的容量 切片的本质 切片的本质就是对底层数组的封装, ...