5

HCNP Routing&Switching之VRRP基础 - Linux-1874

 1 year ago
source link: https://www.cnblogs.com/qiuhom-1874/p/16325284.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

HCNP Routing&Switching之VRRP基础

  前文我们了解了链路高可用技术链路聚合相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16279078.html;今天我们来聊一聊另一种高可用技术,网关高可用vrrp相关话题;

1503305-20220529222238028-1869840313.png

  提示:通常一个网段内只有一个网关,当然一旦网关出现故障,对应网段内的主机将无法正常和其他网段主机通信,这也意味着该网段就被孤立了;那该怎么办呢?我们可以不可以提供多台网关呢?

1503305-20220529222551853-1999099307.png

  提示:我们知道一个网关就对应一个ip地址,多台网关就意味着有多个ip地址且彼此都是不同的ip地址;虽然多台网关可以有冗余备份的效果,但是如果默认网关宕机,谁来通知用户,或者谁来更改用户侧主机的网关地址呢?很显然需要某种协同机制,比如网关1是默认网关,当默认网关宕机以后,对应备份网关能够知道,并且能够接管默认网关的工作的同时,让用户无所感知;

  VRRP:Virtual Router Redundancy Protocol,虚拟路由器冗余协议,一般路由器在网络中就是充当网关的作用,所以该协议也叫虚拟网关冗余协议;

1503305-20220529223553894-983851449.jpg

  提示:vrrp它能够将多台物理网关加入到一个设备组中,形成一台虚拟网关,承担物理网关的功能;只要设备组中有任意一台物理网关能够正常工作,虚拟网关就能正常工作;该协议有两个版本,v2和v3;v2基于IPV4,v3基于IPV6;

1503305-20220529223700096-962638295.png

  提示:当链路或设备发生故障,对应备份网关将充当虚拟网关,持续为用户提供网关服务;这也提高了整网段的可靠性;

  VRRP备份组:VRRP Group 

  所谓备份组就是将局域网内的一组网关划分在一起;该备份组里的设备由一个主设备(master)和多个备份设备(backup)组成,功能上相当于一台虚拟网关;虚拟网关有一个虚拟ip地址,作为该虚拟网关的ip地址,也是用户端指定的ip地址;

1503305-20220529224206337-366057273.png

  提示:有了虚拟网关,对应用户侧就不能设置物理网关地址,因为虚拟ip是可以在两个物理设备间相互移动,也就是说谁是master,对应谁就拥有虚拟ip的身份(能响应对应虚拟ip的arp请求和数据转发的能力);

1503305-20220529224524802-524308963.jpg

  提示:正常情况下,如果一个设备组中有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的重新选举;

1503305-20220529230231121-2016330963.png

  提示:默认先比较优先级,优先级大者成为master,其他设备成为backup;如果优先级一样,则比较ip地址,ip地址大者成为master;

1503305-20220529230416395-285059130.png

  提示:如果物理网关的ip地址和虚拟网关的ip地址一样,这对应物理网关就是ip地址拥有者,成为master;同时对应设备的优先级会自动变为255;

  虚拟MAC规则

1503305-20220529230540703-476714744.png

  提示:虚拟mac规则我们只需要知道后面两个16位数字表示的是vrrp的组编号,范围是0-255;前面的00-00-5e是IANA分配的,00-01表示vrrp协议;

  VRRP工作流程

1503305-20220529232557704-1241568364.png

  提示:默认设备组里的设备都会是backup的状态发送vrrp报文,选举master;如果设备组里只有一台设备,那么等待计时器超时以后,对应状态会从backup转变为master;如果有多台设备,首先会根据优先级选举出master,如果优先级一样则比较ip地址,ip地址大者成为master;

1503305-20220529232617111-574047354.png

  提示:根据优先级比较,如果对应设备优先级高,对应设备就会立刻成为master,其他设备将成为backup,成为master的设备会周期性发送vrrp报文,意思就是告诉backup master还活着;

1503305-20220529232636884-624231384.png

  提示:成为master的设备首先会发送一个免费ARP,告诉交换机虚拟mac地址;对应交换机收到免费ARP以后,对应就会在mac地址表项中记录对应虚拟mac对应的端口;后续交换机收到虚拟mac封装的包,会自动转发到对应的接口,发送给master;

1503305-20220529232656328-1725331060.png

  提示:当pc请求虚拟网关的mac时,首先pc会发送arp广播,交换机收到arp广播以后,会泛洪所有端口,但是只有master会应答该arp请求;

1503305-20220529232716509-1968657564.jpg

  提示:当pc收到虚拟网关mac以后,就会封装目标mac为虚拟网关mac进行数据包发送,当交换机收到对应报文以后,会根据自己记录的mac地址表项,从对应接口转发出去给master;后续master收到对应数据报文后,就会进行处理(因为master拥有虚拟mac和虚拟ip的使用权,即它可以解封装虚拟mac的包和虚拟ip的包,同时重新封装,简单讲用户的报文到达master后会进行解封装、和再次封装的过程,当然回来的包也会经历这个过程);

1503305-20220529232739919-1186964289.png

  提示:当master发生故障以后,对应backup会等待一段时间,如果在这个等待的时间里没有收到master的心跳,此时backup就会认为对应master应该是故障了,backup就会切换成master,接替master继续工作;

1503305-20220529232759521-1540786466.png

  提示:当然当backup成为master以后,对应也会向交换机发送免费arp告诉交换机更新自己的mac地址表项;对应交换机收到免费ARP报文以后,就会记录虚拟mac地址和收到免费ARP的接口做对应;

1503305-20220529232820047-310950576.png

  提示:当pc再次向交换机发送虚拟mac地址封装的包后,对应交换机就会根据自己的mac地址表项记录的接口,转发pc的数据包;

1503305-20220529232845315-94968598.png

  提示:如果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报文格式

1503305-20220529233014540-1366615387.png

  提示: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状态机制

1503305-20220529232952385-1947871088.png

  提示: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设计方案注意事项

1503305-20220529233051648-1828150115.png

  提示:我们知道在二层网络里,如果开启了STP,那么所有流量都会先到根桥,然后从根桥网其他地方转发;如果master和stp根桥不再同一设备,则很容易造成持有路径;所以为了避免持有路径,对应vrrp里的master和stp里的root应该保持一致,即都在同一设备;

  VRRP应用

1503305-20220529233123095-1287056718.png

  提示:主备备份是最常见的VRRP易用,即在一个设备组里,一个master工作多个backup看着master工作,监听master的心跳;很显然这种是浪费设备,同时master的压力比较大;

1503305-20220529233144946-212805825.png

  提示:负载分担是合理的做法,将多个设备组在同一台设备上设置不同的角色,比如组1里R1为master,R2和R3为backup;在组2里R2为master,R1和R3为backup;在组3里R3为master,R1和R2为backup;这样一来使得每各路由器都得到了应用,同时多个路由器两两备份,其中一台或两台宕机都不会影响业务的访问;

  VRRP跟踪

1503305-20220529233315470-350546812.png
1503305-20220529233349412-1496127039.png

  提示:所谓vrrp跟踪是指非vrrp接口宕掉以后,对应vrrp接口能够感知;如上图所示如E0口是master接口,如果G1口down掉以后,对应vrrp并不会感知,对应pc的数据还是会转发至RA的E0口;这样一来对应pc的数据就会绕路;所以为了避免因非vrrp接口down造成次优路径;我们可以在master上vrrp接口上绑定一个上游口,如果一旦上游口down掉,对应vrrp的优先级自动降低至能够触发master选举,让backup成为master;

1503305-20220529233423106-802362994.png

  提示:如上,master上游链路故障后,自动将优先级降低30,使得master的优先级小于backup即可,对应backup 收到小于自己本地优先级的vrrp报文,它会自动切换成master,从而避免次优路径的发生;这里需要master 降低后的优先级要小于backup才行,如果降低后的优先级大于backup,对应不会触发master选举,没有意义;

1503305-20220529233454860-1024542455.png

  提示:除了master优先级降低后要小于backup的优先级之外,对应backup要开启抢占才行,如果backup没有开启抢占,对应即便收到优先级小于自己本地优先级的vrrp报文,对应backup也不会成为master;所以使用vrrp追踪必须满足两点,master降低后的优先级要小于backup,其次是backup上必须开启抢占;


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK