VRRP

VRRP

产生原因

	一般来说,主机通过设置默认网关来与外部网络联系。
	主机将发送给外部网络的报文发给网关,网关传递给外部网路,从而实现主机与外网通信,但当网关坏掉后,通信会中断。
	解决中断可以再添加个网关,或运用动态路由协议来解决,如运行RIP,OSPF,IRDP等,然而这些配置复杂度和安全性问题不能满足需求,所以就有了VRRP,它可以很好地避免静态指定网关的缺陷。

VRRP

	VRRP是一种容错协议,它保证当主机的下一跳路由器出现故障时,有另一台路由器来代替出现故障的路由器进行工作,从而保持网络通信的连续性和可靠性。
	在VRRP协议中有两组重要的概念:
		1)VRRP路由器和虚拟路由器
			VRRP路由器是指运行VRRP的路由器,是物理实体。
			虚拟机路由器是指VRRP协议创建的,是逻辑概念。
		2)主控路由器和备用路由器

VRRP工作原理

	一个VRRP路由器有唯一的标识:VRID,范围为0-255。
	一组VRRP路由器协同工作,共同构成一台虚拟路由器,该虚拟路由器对外表现为一个具有唯一固定ip地址和MAC地址的逻辑路由器,MAC地址格式为00-00-5E-00-01-{VRID}。
	处于同一个VRRP组中的路由器具有两种互斥的角色,主控路由器和备用路由器。
	一个VRRP组中有且只有一台处于主控角色的路由器,可以有一个或多个处于备用角色的路由器。
	VRRP协议使用策略从路由器组中选出一台作为主控,主控路由器负责对ARP请求用MAC地址做应答和转发ip数据包,组中的其他路由器作为备用待命。
	这样无论如何切换,保证给终端设备是唯一一致的ip和MAC地址,减少了切换对终端设备的影响。
	主控路由器故障时,备用路由器能在几秒中的时延后升级为主控路由器,由于切换非常迅速且不改变ip地址和MAC地址,故对终端使用者系统是透明的。

VRRP优点

	简化网络管理。
		借助VRRP能在某台设备出现故障时仍然提供可靠的缺省链路,有效避免单一链路发生故障后网络中断的问题,无需修改动态路由协议,路由发现协议,也无需修改主机的默认网关配置。
	适应性强。
		VRRP报文封装在ip报文中,支持各种上层协议。
	网络开销小。
		VRRP只定义了一种报文,也就是VRRP通告报文,并且只有处理Master状态的路由器可以发现VRRP报文。

VRRP工作过程

	1》虚拟路由器中的路由器根据优先级选举出Master,Master 路由器通过发送免费ARP 报文,将自己的虚拟MAC 地址通知给与它连接的设备或者主机,从而承担报文转发任务。
	2》Master 路由器周期性发送VRRP 报文,以公布其配置信息(优先级等)和工作状况。
	3》如果Master 路由器出现故障,虚拟路由器中的Backup 路由器将根据优先级重新选举新的Master。
	4》虚拟路由器状态切换时,Master 路由器由一台设备切换为另外一台设备,新的Master 路由器只是简单地发送一个携带虚拟路由器的MAC 地址和虚拟IP地址信息的免费ARP 报文,这样就可以更新与它连接的主机或设备中的ARP 相关信息,网络中的主机感知不到Master 路由器已经切换为另外一台设备。
	5》Backup 路由器的优先级高于Master 路由器时,由Backup 路由器的工作方式(抢占方式和非抢占方式)决定是否重新选举Master。
	6》由此可见,为了保证Master路由器和Backup路由器能够协调工作,VRRP需要实现以下功能:
		Master 路由器的选举,
		Master 路由器状态的通告,
		同时,为了提高安全性,VRRP 还提供了认证功能。

VRRP提供了三种认证方式

	无认证:
		不进行任何 VRRP 报文的合法性认证,不提供安全性保障。
	简单字符认证:
		在一个有可能受到安全威胁的网络中,可以将认证方式设置为简单字符认证。
		发送VRRP 报文的路由器将认证字填入到VRRP 报文中,而收到VRRP 报文的路由器会将收到的VRRP 报文中的认证字和本地配置的认证字进行比较。
		如果认证字相同,则认为接收到的报文是合法的VRRP 报文,否则认为接收到的报文是一个非法报文。
	MD5 认证:
		在一个非常不安全的网络中,可以将认证方式设置为MD5 认证。
		发送VRRP 报文的路由器利用认证字和MD5 算法对VRRP 报文进行加密,加密后的报文保存在Authentication Header(认证头)中。
		收到VRRP报文的路由器会利用认证字解密报文,检查该报文的合法性。

VRRP Master选举机制

	1》VRRP根据优先级来来确定路由器角色,优先级越高,则越有可能成为master路由器。
	2》如果VRRP报文中master路由器优先级高于自己的优先级,则路由器保持在Backup状态。
	3》如果VRRP报文中master路由器优先级低于自己的优先级,采用抢占工作方式的路由器抢占为master状态,周期性地发送VRRP报文,采用非抢占工作方式的路由器仍然保持Backup状态。
	4》如果在一定时间内没有收到VRRP报文,则路由器切换为Master状态。
	5》VRRP优先级的取值范围为0到255(数值越大表明优先级越高),可配置的范围是1到254,优先级0为系统保留给路由器放弃Master位置时候使用,255则是系统保留给IP地址拥有者使用。
		当路由器为IP地址拥有者时,其优先级始终为255。
		因此,当虚拟路由器内存在IP地址拥有者时,只要其工作正常,则为Master路由器。
	6》VRRP组中的ip拥有者:
		如果虚拟ip地址与VRRP组中的某台VRRP路由器ip地址相同,则此路由器为ip地址拥有者,这台路由器将被定位主路由器。
	7》比较ip地址:
		在没有ip地址拥有者,且优先级相同的情况下,ip地址大的作为主路由器。

VRRP的报文格式

	VRRP报文被封装在ip包中,使用专门的VRRP IPv4组播地址(协议号112,组播地址224.0.0.18)。
	IANA分配给VRRP的ip协议号为112(10进制),IANA给VRRP分配的ip组播地址为224.0.0.18,这是本地范围的多播地址。
	不论TTL的值是多少,路由器都被禁止转发以此地址为目标的报文。
	VRRP报文的ip头中,TTL必须为255,当VRRP路由器收到TTL不等于255的VRRP协议报文后,必须丢弃。
	(TTL是Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量,TTL是IPv4包头的一个8 bit字段)
		
			各字段的含义:
				Version:协议版本号,现在的VRRP为版本2。
				Type:报文类型,只有一种取值,1,表示Advertisement。
				Virtual Rtr ID(VRID):虚拟路由器ID,取值范围是1~255。
				Priority:发送报文的VRRP路由器在虚拟路由器中的优先级。取值范围是0~255,其中可用的范围是1~254。0表示设备停止参与VRRP,用来使备份路由器尽快成为主路由器,而不必等到计时器超时;255则保留给IP地址拥有者。缺省值是100。
				Count IP Addrs:VRRP广播中包含的虚拟IP地址个数
				Authentication Type:验证类型,协议中指定了3种类型:
				将Authentication Type取值变更如下:
					0 - No Authentication
					1 - Reserved
					2 - Reserved
					变更的原因:实践和分析证明,这些认证方式不能提供真正的安全。而限制TTL=255可以阻止大多数对本地脆弱性的攻击。实现了Simple Text Password认证方式
				Advertisement Interval:发送通告报文的时间间隔,缺省为1秒。
				Checksum:校验和。
				IP Address(es):虚拟路由器IP地址,地址个数是Count IP Addrs的值。
				Authentication Data:验证字,目前只有明文认证才用到该部分,对于其它认证方式,一律填0。

虚拟路由器

	VRRP将局域网内的一组路由器划分在一起,形成一个VRRP备份组,它在功能上相当于一台虚拟路由器,使用虚拟路由器号进行标识。
	以下使用虚拟路由器代替VRRP备份组进行描述
		虚拟路由器有自己的虚拟IP地址和虚拟MAC地址,它的外在表现形式和实际的物理路由器完全一样。
		局域网内的主机将虚拟路由器的IP地址设置为默认网关,通过虚拟路由器与外部网络进行通信。
		虚拟路由器是工作在实际的物理路由器之上的,它由多个实际的路由器组成,包括一个Master路由器和多个Backup路由器。
		Master路由器正常工作时,局域网内的主机通过Master与外界通信。
		当Master路由器出现故障时,Backup路由器中的一台设备将成为新的Master路由器,接替转发报文的工作。

VRRP路由器运行过程中的三种状态(状态机)

	1)initialize状态:
		系统启动后就进入initialize,此状态下路由器不对VRRP报文做任何处理,可以理解为初始化。
		设备启动时进入此状态,当收到接口Startup的消息,将转入Backup或Master状态(IP地址拥有者的接口优先级为255,直接转为Master)。
	2)master状态:
		路由器会发送VRRP通告,发送免费ARP报文。
		当路由器处于Master状态时,它将会做下列工作:
			定期发送VRRP报文。
			以虚拟MAC地址响应对虚拟IP地址的ARP请求。
			转发目的MAC地址为虚拟MAC地址的IP报文。
			如果它是这个虚拟IP地址的拥有者,则接收目的IP地址为这个虚拟IP地址的IP报文,否则丢弃这个IP报文。
			如果收到比自己优先级大的报文则转为Backup状态。
			如果收到优先级和自己相同的报文,并且发送端的主IP地址比自己的主IP地址大,则转为Backup状态。
			当接收到接口的Shutdown事件时,转为Initialize。
	3)backup状态:
		接收VRRP通告。
		当路由器处于Backup状态时,它将会做下列工作:
			接收Master发送的VRRP报文,判断Master的状态是否正常。
			对虚拟IP地址的ARP请求,不做响应。
			丢弃目的MAC地址为虚拟MAC地址的IP报文。
			丢弃目的IP地址为虚拟IP地址的IP报文。
			Backup状态下如果收到比自己优先级小的报文时,丢弃报文,不重置定时器。
			如果收到优先级和自己相同的报文,则重置定时器,不进一步比较IP地址。
			当Backup接收到MASTER_DOWN_TIMER定时器超时的事件时,才会转为Master。
			当接收到接口的Shutdown事件时,转为Initialize。

VRRP状态上报机制

	一般主路由器处理master状态,备份路由器处理backup状态。
	master和backup之间需要实时通信,master路由器周期性地发送VRRP报文,在虚拟路由器中公布其配置信息(优先级等)和工作状况。
	backup路由器通过接受到VRRP报文的情况来判断master路由器的工作是否正常。
	1》VRRP通告报文时间间隔定时器
		1>VRRP备份组中的master路由器会定时发送VRRP通告报文,通知备份组内的路由器自己工作正常。
		2>用户可以通过设置VRRP定时器来调整master路由器发送VRRP通告报文的时间间隔
		3>如果backup路由器在等待了3个间隔小时后,依然没有收到VRRP通告报文,则认为自己是master路由,并对外发送VRRP通告报文,重新进行master路由器选择。
		4>如果master发现自己的链路不同,master路由器主动放弃master地位,会发送优先级为0的VRRP报文,致使backup路由器快速切换为master路由器。
			这个切换时间为skew time,计算方式为256-backup的路由器优先级/256,单位是秒。
		5>当master路由器发生网络故障而不能发送VRRP报文的时候,backup路由器并不能立即知道其工作状况。
			backup路由器等待一段时间,如还没有收到VRRP报文,那么会认为master路由器无法工作,而把自己升级为master路由,并周期性发送VRRP报文。
			如果此时有多个backup路由器,将会通过优先级俩选择master路由器。
			backup路由器默认等待时间为Master_Down_Interval,取值为3*VRRP报文的发送时间间隔+SKewtime,单位是秒。
	2》VRRP抢占延迟时间定时器
		在性能不稳定的网络中,backup路由器可能因为网络堵塞而在master_down_interval期间没有收到master路由器包文,而主动抢占master位置,如果此时原master路由器报文又到达了,就会出现虚拟路由器的成员频繁进行master抢占现象。
		为避免这一现象,特制定了延迟等待定时器,让backup路由器有足够的时间来搜集信息。
		延迟等待定时器可以使得backup路由器等待了master_down_interval后再等待延迟时间,之后还没有收到master报文,就切换为master并发报文。

Backup抢占方式

	备份组中的路由器有两种工作方式:
	1)非抢占方式:
		即只要master路由器没有出现故障,backup路由器即使随后被配置了更改的优先级也不会成为master路由器。
	2)抢占方式(默认)
		即优先级谁高谁做master路由器。

监听

	VRRP可以直接监视连接上行链路的端口状态,当接口down时,将master路由器降低指定的优先级。
	VRRP可以利用NQA技术监视上行链路连接的远端主机或网络状况。
		如当master路由器上启动了NQA的ICMP-echo探测功能,探测远端主机的可达性,当探测失败时,它可以通知本设备探测结果,达到降低VRRP优先级的目的。
	VRRP可以使用BFD技术监视上行连接连接到远端主机或网络状况,BFD精度可以达到10ms。
	backup设备提供了一个监听master工作状态的功能,使得master路由器坏掉后backup能立即快速的切换为master,维持网络通信。
	backup使用BFD技术监视master路由器的状态,可以在毫秒级的快速进行切换。

VRRP负载均衡

	实现原理:
		将以虚拟ip地址与多个虚拟MAC地址对应,VRRP备份组中的每个路由器都对应一个虚拟MAC地址,使得每个路由器都能转发流量。
		在VRRP负载均衡模式中,只需创建一个备份组,就可以实现备份组中多个路由器之间的负载分担,避免了VRRP备份组中Backup设备始终处于空闲状态,网络资源利用不高的问题。
posted @ 2018-02-23 18:59  shenxm  阅读(2047)  评论(0编辑  收藏  举报