www.h3c.com1姓名:边冬松工号:01023综合测试支持部VRRP协议综合测试支持部理解VRRP的基本概念掌握VRRP的基本工作原理掌握我司设备VRRP特性解释使用VRRP过程中遇到的一些问题课程目标学习完本课程,您应该能够:VRRP的产生VRRP的原理我司VRRP的特性使用VRRP时的常见问题目录www.h3c.com5VRRP的产生www.h3c.com6对于局域网中的端主机,存在多种方法可以使其知道它的第一跳路由器地址,其中包括:运行某种动态路由协议,比如运行RIP或者OSPF配置ICMPRouterDiscoveryProtocol(IRDP)配置静态缺省路由,即配置网关。VRRP的产生www.h3c.com7采用动态路由协议,由于管理开销、处理开销、安全原因以及在某些平台上不支持等原因而不现实。设想:在一个网络上的所有主机都运行邻居或者路由发现协议,往往主机数量都非常庞大,这样就不得不使用较大的定时器值以减小协议开销,而这又会给检测死亡邻居过程带来明显的延迟,最终导致长得不可接受的“黑洞”时间。VRRP的产生www.h3c.com8VRRP的产生www.h3c.com9在实际应用中,使用配置静态缺省路由,即在主机配置网关的方法相当普遍,这种方法具有最小化的配置和运行开销,并且被所有基于IP的应用所支持。但是,这种方法也有缺点,即增加了单点故障的可能性。缺省路由器的不可用将带来灾难性的结果:当缺省路由器失效时,所有相连的端主机将由于不能检测到可以替换的其他可用路径而造成网络中断。VRRP的产生www.h3c.com10综合以上两种方法存在的问题,设计产生了虚拟路由器冗余协议(VRRP),采用了静态缺省路由的方法,并且很好的避免了单点故障。协议定义的选举过程提供了一个当负责转发的主路由器失效时,备份路由器可以接替负责转发的动态容错机制。VRRP协议的这一优点使得每一个端主机不用配置任何动态路由协议或者路由发现协议,就可以获得更高的可靠性。VRRP的产生VRRP的产生VRRP的原理我司VRRP的特性使用VRRP时的常见问题目录www.h3c.com12VRRP全称VirtualRouterRedundancyProtocol(虚拟路由器冗余协议)。简单来说,VRRP是一种容错协议,它保证当主机的下一跳路由器坏掉时,可以及时的由另一台路由器来代替,从而保持通讯的连续性和可靠性。概述www.h3c.com13虚拟路由器VRRP协议管理的抽象对象,可以由虚拟路由器标识(VRID)和一组IP地址来定义虚拟路由器的主路由器负责转发发往虚拟路由器IP地址的报文,响应虚拟路由器IP地址ARP请求虚拟路由器的备份路由器当主路由器失效时,接替主路由器VRRP基本概念www.h3c.com14虚拟路由器的IPAddress虚拟路由器使用的IP地址,可以用其接口上的真实地址作为虚拟路由器的IP地址,也可以单独配置一个IP地址虚拟路由器的MAC地址00-00-5e-00-01-xx,00005E由IANA分配。0001为分配给VRRP协议的地址块。xx为VRRP虚拟路由器标识。该映射在一个网络中提供最多255个VRRP路由器组。VRRP相关概念www.h3c.com15VRRP协议只有一种报文,即主路由器定时向其它成员发送的组播报文。VRRP协议报文封装在IP报文中,通过组播方式进行发送。VRRP报文结构www.h3c.com16VRRP报文结构www.h3c.com17Version版本号报文中的version字段指VRRP协议版本,目前普遍应用的为版本2Type类型type字段定义了VRRP报文的类型。本版本的协议仅定义了一个报文类型:1-ADVERTISEMENT通告,带有未知类型的报文将被丢弃VRRP报文www.h3c.com18VirtualRtrID(VRID)虚拟路由器标识(VRID)字段标识了此报文所报告状态的虚拟路由器。可配置的范围是1--255。没有缺省值。PriorityPriority字段申明了发送此报文的VRRP路由器的优先级。值越高优先级越高。该字段为8位无符号整型。缺省的VRRP路由器优先级为100。注:如果VRRP路由器是虚拟路由器地址的IP地址所有者,那么其优先级必须为255。优先级值0用于指示当前虚拟路由器的主路由器停止参与VRRP组。主要用于触发备用路由器快速地迁移到主路由器,而不用等待当前主路由器超时。VRRP报文www.h3c.com19AuthenticationType认证类型认证类型字段用于标识要用到的认证方法。在一个虚拟路由器组内认证类型是唯一的。认证类型字段是一个8位无符号整型。如果报文携带未知的认证类型或者该认证类型和本地配置的认证方法不匹配,那么该报文必须被丢弃。目前定义的认证方法有:0-NoAuthentication不认证1-Reserved保留2-Reserved保留VRRP报文www.h3c.com20AuthenticationData验证字验证字,目前只有明文认证才用到该部分,对于其它认证方式,一律填0。收到未知验证类型,或者错误验证字都会丢弃VRRP报文www.h3c.com21AdvertisementIntervalVRRP通告间隔时间,单位为秒。缺省为1秒。这个字段主要用于错误配置路由器时的故障定位和解决。Checksum校验和字段用于检测VRRP消息的数据是否出错。IPAddressIP地址字段为虚拟路由器的一个或者多个IP地址。IP地址的数量在“CountIPAddrs”字段中说明。IP地址字段用于错误配置路由器时的故障定位和解决。VRRP报文www.h3c.com22VRRP报文的源MAC00-00-5e-00-01-xxVRRP报文的目的MAC01-00-5e-00-00-12VRRP报文的二层封装www.h3c.com23源地址报文被发出的接口的主IP地址目的地址IANA给VRRP分配的IP组播地址为224.0.0.18。这是一个本地范围的组播地址。不论TTL的值是多少,路由器都被禁止转发以此地址为目标地址的报文。TTLTTL必须为255。当VRRP路由器收到TTL不等于255的VRRP协议报文后,必须丢弃。协议号IANA分配给VRRP的IP协议号为112(十进制)一般抓包时显示0X70(十六进制)VRRP报文的三层封装www.h3c.com24抓包结果VRRP报文www.h3c.com25VRRP组播报文的TTL为何是255?一个问题www.h3c.com26VRRP组播报文是用来在备份组中路由器之间维护Master/Backup关系的,只在本网段进行传播,不能被路由器转发。根据这些条件,VRRP组播报文的TTL设成1就可以了。但是,RFC2338规定VRRP组播报文的TTL必须是255,TTL不等于255的报文将被丢弃。这种设计主要是从安全方面考虑的。VRRP可以通过明文或MD5认证来保证安全,但是无论哪种认证方式都会消耗一些资源。在本网段的安全可以得到保证的情况下,攻击主要来自其它的网段,将TTL设定为255而不必使用认证就可以轻松应对这样的攻击。因为来自其它网段的报文要经过路由器转发,TTL必然小于255。答案www.h3c.com27优先级为255VRRP报文优先级为0www.h3c.com28多IP地址VRRP报文明文验证www.h3c.com29VRID虚拟路由器标识。可配置的范围在1--255(十进制)。没有缺省值。Priority优先级参数用于在一组VRRP路由器中选举主路由器。255被保留给拥有虚拟路由器IP地址的IP地址所有者。0被保留给主路由器指示其将放弃虚拟路由器的Master的责任。虚拟路由器的备用路由器可以使用1--254(十进制)的优先级。缺省值为100。IP_Addresses虚拟路由器的IP地址,一个或者多个,可配置,没有缺省值。VRRP的3个参数www.h3c.com30Advertisement_Interval主路由器发送VRRP组播报文的时间间隔,缺省为1秒,用户可修改。Master-down-interval间隔时间是adver-interval的3倍+Skew_Time。Preempt_delay抢占时间延迟,默认为0,即立即抢占。Skew_TimeskewMaster_Down_Interval单位为秒。计算方法为:(256-优先级)/2564个计时器www.h3c.com31Preempt_Mode抢占模式,控制具有更高优先级的备用路由器可否抢占具有较低优先级的主路由器,使自己成为Master。当值为真时,允许抢占;当值为假时,禁止抢占。缺省值为真。注意:存在的例外情况是,虚拟路由器IP地址拥有者的路由器总是抢占的,并且独立于该标志位的设置。1个模式www.h3c.com32组成虚拟路由器的路由器会有三种状态机,分别是:InitializeMasterBackupVRRP的状态机www.h3c.com33VRRP的状态机INITIALIZEMASTERBACKUP收到一个比自己本地的优先级大的ADVERTISEMENT报文MASTER_DOWN_TIMER到时www.h3c.com34Initialize系统启动后进入此状态,当收到接口startup的消息,将转入Backup或Master状态(优先级为255时)。在此状态时,不会对VRRP报文做任何处理。VRRP的状态机www.h3c.com35Master定期发送VRRP通告消息。响应对虚拟IP地址的ARP请求,并且响应的是虚拟MAC地址,而不是接口的真实MAC地址。转发目的MAC地址为虚拟MAC地址的IP报文。如果它是这个虚拟IP地址的拥有者(IPAddressOwner),则接收目的IP地址为这个虚拟IP地址的IP报文。否则,丢弃这个IP报文。在Master状态中只有接收到比自己的优先级大的VRRP报文时,才会转为Backup,当接收到接口的Shutdown事件时,转为Initialize。VRRP的状态机www.h3c.com36Backup当路由器处于BACKUP状态时,它将会做下列工作:接收Master发送的VRRP广播报文,从中了解Master。对虚拟IP地址的ARP请求,不做响应。丢弃目的MAC地址为虚拟MAC地址的IP报文。丢弃目的IP地址为虚拟IP地址的IP报文。接收到VRRP报文后:如果收到报文的优先级为0将状态设置为Master,开始发送报文如果收到报文优先级小于本地优先级而且本地设置了抢占方式,一段时间后转为Master状态VRRP的状态机www.h3c.com37Backup否则正常接收,对定时器进行重置处于Backup状态的设备,当3×adver_interval+(256-Priority)/256时间没有收到Master发来的VRRP报文,则认为当前的Master已经Down掉,将自己转为Master状态,发送VRRP报文VRRP的状态机www.h3c.com38根据优先级的大小挑选主路由器,优先级最大的为主路由器,若优先级相同,则比较接口的主IP地址,主IP地址大的就成为主路由器,由它提供实际的路由服务。其它路由器作为备份路由器,随时监测主路由器的状态。当主路由器正常工作时,它会每隔一段时间(Advertisement_Interval)发送一个VRRP组播报文,以通知组内的备份路由器,主路由器处于正常工作状态。当组内的备份路由器长时间(Master_Down_Interval)没有接收到来自主路由器的报文,则将自己转为主路由器。当组内有多台备份路由器时,将有可能产生多个主路由器。这时每一个主路由器就会比较VRRP报文中的优先级(priority)和自己本地的优先级,如果本地