详解HSRP(HotStandbyRouterProtocal 热备路由器协议)和VRRP(Virtual Router Redundancy Protocol 虚拟路由器冗余协议)的不同之处

  2.另外一个不同是VRRP不使用HSRP中的政变或者一个等价消息,VRRP的状态机比HSRP的要简单,HSRP有6个状态(初始(Initial)状态,学习(Learn)状态,监听(Listen)状态,对话(Speak)状态,备份(Standby)状态,活动(Active)状态)和8个事件, VRRP只有3个状态(初始状态(Initialize)、主状态(Master)、备份状态(Backup和5个事件.))
  3. HSRP有三种报文,而且有三种状态可以发送报文呼叫(Hello报文 告辞(Resign)报文 突变(Coup)报文)
  VRRP有一种报文
  VRRP广播报文:由主路由器定时发出来通告它的存在,使用这些报文可以检测虚拟路由器各种参数,还可以用于主路由器的选举。
  5.VRRP的安全:VRRP协议包括三种主要的认证方式:无认证,简单的明文密码和使用 MD5 HMAC ip认证的强认证.
  另外,VRRP包括一个保护VRRP分组不会被另外一个远程网络添加内容的机制(设置TTL值=255,并在接受时检查),这限制了可以进行本地攻击的大部分缺陷.而另一方面,HSRP在它的消息中使用的TTL值是1.
  6.VRRP的崩溃间隔时间:3*通告间隔+时滞时间(skew-time)
 
HSRP的工作原理 
在整个电力局企业网内,虚网之间的交换(三层交换)是通过7609路由交换机(多层交换特征卡MSFC2)和5500交换机(路由交换模块RSM)来实现的。两台交换机通过Cisco的热备路由器协议(HSRP)可以实现路由设备之间的冗余,即三层交换的冗余。HSRP协议是针对于IP协议,参与HSRP协议的路由设备为IP终端提供一个虚拟IP地址,且IPX等其它网络协议与HSRP兼容。
图:热备路由协议(HSRP)示意图
 

详解HSRP和VRRP的不同之处_HSRP 

 

HSRP的工作原理
HSRP协议利用一个优先级方案来决定哪个配置了HSRP协议的路由器成为默认的主动路由器。如果一个路由器的优先级设置得比所有其他路由器的优先级高,则该路由器成为主动路由器。路由器的缺省优先级是100,所以如果只设置一个路由器的优先级高于100,则该路由器将成为主动路由器。
通过在设置了HSRP协议的路由器之间广播HSRP优先级,HSRP协议选出当前的主动路由器。当在预先设定的一段(Hold Time 缺省为10秒)时间内主动路由器不能发送hello消息,或者说HSRP检测不到主动路由器的hello消息时,将认为主动路由器有故障,这时HSRP会选择优先级最高的备用路由器变为主动路由器,同时将按HSRP优先级在配置了HSRP的路由器中再选择一台路由器作为新的备用路由器。
所有参与HSRP的路由器共享一个虚的IP地址,网络中的工作站将缺省网关指向该虚地址,被选出的主动路由器负责转发由工作站发到虚地址的数据包。
Hello消息是基于UDP的信息包,配置了HSRP的路由器将会周期性的广播Hello消息包,并利用Hello消息包来选择主动路由器和备用路由器及判断路由器是否失效。
如图所示,PC将数据包发送到设置的缺省网关(配置HSRP路由器所共享的虚拟IP地址),假设图中的7609设置了较高的优先级,7609将被选为主动路由器,并负责转发网络中所有由PC发送到其网关(HSRP地址)的数据包。当7609发生故障时,7609就不会广播Hello信息包,HSRP如果经过Hold Time还未收到来自7609的Hello信息包,将认为7609实效,这时HSRP将选择备用的5500作为主动路由器,并由5500来负责转发网络中所有由PC发送到其网关(HSRP地址)的数据包。而当7609恢复后,将继续发送Hello信息包,HSRP检测到其发送的Hello信息包具有高的优先级,则会重新将7609选为主动路由器,5500则仍将恢复成为备用路由器。
配置了HSRP协议的路由器交换以下三种多点广播消息:
●Hello──hello消息通知其他路由器,发送路由器的HSRP优先级和状态信息,HSRP路由器默认为每3秒钟发送一个hello消息;
●Coup──当一个备用路由器变为一个主动路由器时发送一个coup消息;
●Resign──当主动路由器要宕机或者当有优先级更高的路由器发送hello消息时,主动路由器发送一个resign消息。
在任一时刻,配置了HSRP协议的路由器处于由以下六种状态:
●Initial ——表示路由器的HSRP还未运行,一般在配置第一台HSRP路由器时会显示此状态;
●Learn——表示配置HSRP的路由器还未知道虚地址,并一直监听来自主动路由器的消息包;
●Listening──表示配置HSRP的路由器还已知道虚地址,路由器还在监听hello消息;
●Speaking and listening──路由器正在发送和监听hello消息;
●Standby──处于被用状态,当主动路由器失效时路由器可被选为主动路由器,接管包转发功能;
●Active──路由器执行包转发功能。
Cisco HSRP(双机热备份)的配置
 
 
Cisco的热备份路由协议(HSRP)可以在工作站A的确省网关失效时提供一个备份路由器,
HSRP可以创建一个具有虚拟MAC地址和虚拟IP地址的虚拟路由器。
 
    假设有两个路由器Bluestudy A和Bluestudy B,通过两路指向路由器Bluestudy C:
 
    对于Bluestudy A,假设E0/0的IP地址为192.168.1.1/24对应内部网络是192.168.1.0/24 S0/0的IP地址为192.168.2.1/24 对应外部网络是192.168.2.0/24。
 
    对于Bluestudy B,假设E0/0的IP地址为192.169.1.2/24 对应内部网络是192.168.1.0/24 S0/0的IP地址为192.168.3.1/24 对应外部网络是192.168.3.0/24。
 
    虚拟IP地址为192.168.1.3/24
 
    对于Bluestudy C,因与本实验无太大联系,暂时不做说明。
 
    下面给出两只路由器的配置,其中将Bluestudy A作为主路由器,Bluestudy B作为备份路由器。其中给出Bluestudy A的优先级为120,而Bluestudy B采用默认优先级100,这样就可以使Bluestudy A成为主路由器。
 
Bluestudy A:
 
Interface ethernet0/0
 
Ip address 192.168.1.1 255.255.255.0
 
No ip redirects
 
Standby 1 priority 120
 
Standby 1 preempt
 
Standby 1 ip 192.168.1.3
 
 
interface serial0/0
 
ip address 192.168.2.1 255.255.255.0
 
no shut
 
!
 
router igrp 100
 
network 192.168.1.0
 
network 192.168.2.0
 
 
 
Bluestudy B:
 
Interface ethernet0/0
 
Ip address 192.168.1.2 255.255.255.0
 
Standby 1 preempt
 
Standby 1 ip 192.168.1.3
 
 
interface serial0/0
 
ip address 192.168.3.1 255.255.255.0
 
no shut
 
!
 
router igrp 100
 
network 192.168.1.0
 
network 192.168.3.0
 
只要将相应的下连主机的网关设成 192.168.1.3就可以了.
 
 
 
Linux下的(VRRP)虚拟路由冗余协议介绍
这篇文章描述的是如何在Linux下实现VRRP (Virtual Router Redundancy Protocol 虚拟路由器冗余协议)。是我本人在学习VRRP过程的一个小总结,并结合了一些其他资料,对VRRP的一些基本概念、原理及Linux如何实现VRRP的一个介绍,
  
  包括以下几个部分:
  1, VRRP介绍
  2, Linux下的VRRP组件
  3, 安装Keepalived
  
  1,VRRP介绍
  
  我们在建立一个网络时,为了保证网络稳定不间断的运行,经常采用一些动态的路由协议,如OSPF、RIP等,这些路由协议可以自动的绕开很多的网络故障,如:路由器DOWN机等。但很多时候我们可能无法使用这些高端的路由协议:
  
  (1), 因为有时候是用户端,要配置OSPF、RIP等协议必须有上游ISP供应商的支持,但很多ISP供应商是不提供这种服务的,他们只提供静态路由。(有时候使用OSPF、RIP等协议的目的是为了进行链路和路由的备份,VRRP可以完全替代他们这部分工作)
  
  (2), 我们有两条以上的Internet线路,需要对他们进行负载均衡和路由线路、路由器的备份(VRRP也主要是为这种需求设计的)
  
  为了能够保证网络的不间断、稳定的运行,VRRP是一个最好的选择,VRRP是Virtual Router Redundancy Protocol 虚拟路由器冗余协议的缩写,在RFC2338中有比较详细的描述。
  
  2,VRRP概念
  
  VRRP中有很多的概念,我们结合下图对他们进行一一的介绍:
  

详解HSRP和VRRP的不同之处_HSRP_02

 

  (1), 图中路由器RA是虚拟路由器VRID 1的主路由器,负责掌管“内部网1”的网关;并且是虚拟路由器VRID 2的备份路由器,当VRID 2的主路由器RB不可用时,接管RB的工作。
  
  (2), 路由器RB是虚拟路由器VRID 2的主路由器,负责掌管“内部网2”的网关;并且是虚拟路由器VRID 1的备份路由器,当VRID 1的主路由器RA不可用时,接管RA的工作。
  
  3,VRRP术语:
  
  (1), Virtual Router:虚拟路由器。在我们这个图中,是由实际路由器RA和RB使用VRRP协议组成的一个路由器镜相。
  
  (2), Vitual Router ID:简称为VRID,是网络中Virtual Router的唯一的身份标示,是一个数字。
  
  (3), VRRP Instance:VRRP实体。VRRP Instance可以理解为是一个程序,运行在一台实际的路由器上,他负责掌管一些VRRP协议需要的一些信息。如:说明这台实际的路由器是主路由器还是备份路由器、这台路由器所属的VRID等。
  
  (4), Virtual Router IP:一个Virtual Router具有一个IP,在正常情况下,有这个Vritual Router中的主路由器掌管,当主路由器出现故障时由这个Virtual Router中的备份路由器掌管。
  
  (5), Master:也就是主路由器。一个实际路由器是否是主路由器,一般在自己的VRRP Instance中作出描述。
  
  (6), Backup:备份路由器。一个实际路由器是否是备份路由器,一般在自己的VRRP Instance中作出描述。
  
  (7), Priority:优先权。在VRRP Instance中将对每个实际的路由器定义一个优先权,他是一个数字从1到254(0和254在RFC定义中被保留),当主路由器不可用时,备份路由器将根据自己的优先权来决定由谁接管主路由器的工作。数字越大,权值越大。
  
  (8), Owner:Virtual Router IP的掌管者。
  
  (9), Authentication:验证。处在同一个VRID中的实际路由器是需要通信的,他们之间的通信需要相互验证。一般使用密码验证。另外需要说明的是:同一个VRID中的实际路由器通信时使用组播地址:224.0.0.18。
  
  4,VRRP的数据包结构:
  
地址

详解HSRP和VRRP的不同之处_安全_03 

 

  关于更详细的说明请参考RFC2338 VRRP文档。
  
  5,Linux下的VRRP组件
  
  在Linux下可以实现非常漂亮稳定的VRRP功能。实现这个功能的软件是keepalived(http://www.keepalived.org),keepalived起初是为LVS(LinuxVirtualServer www.linuxvirtualserver.org Linux下的服务器负载均衡系统)设计的,是专门监控服务器状态的。后来加入了VRRP的功能。Keepalived的VRRP功能是从Linux中VRRPD发展而来:http://www.off.net/~jme/vrrpd/index.html 。
  
  6,Keepalived的安装
  
  Keepalived的安装需要先安装下面两个组件:
  openssl(www.openssl.org)
  popt(http://www.gnu.org/directory/libs/popt.html)
  
  (1), openssl的安装,如果你的系统已经有了openssl系统,而且在/usr/include目录下有openssl的目录,那么openssl就不需要安装了,如果不是这样你需要安装。
  tar  cd openssl-0.9.7d
  configure
  make
  make test
  make
install  
  然后将openssl的include目录复制到/usr/include
  cp –r /usr/local/
ssl  
  (2), tar zxvf popt-1.7.tar.gz
  cd popt-1.7
  ./configure
  make
  make install
  (3), 在安装keepalived之前,你可能需要重新编译Linux的内核,将Netlink、Linux Virtual Server和组播功能的选项编译进新内核:如下面的图:
  
/include/openssl /usr/include

zxvf openssl-0.9.7d.tar.gz
 

详解HSRP和VRRP的不同之处_交换_04

   

  (4), keepalived的安装
  tar zxvf keepalived-1.1.7.tar.gz
  cd keepalived-1.1.7
  ./configure –prefix=/usr/local/keepalived
  make
  make install
 
 
 
实现高可靠性冗余备份 (优化)


  VRRP协议应用于作为静态配置缺省网关上的第三层交换机和路由器上,

  为依赖缺省网关进行广域网接入或访问其它局域网网域的终端系统提供了更快、更有效的冗余容错能力。

  随着Internet和Intranet的日益普及,人们对网络的依赖性越来越强,恢复性和冗余性已成为当今局域网中的关键特性。为此,IETF制定了虚拟路由器冗余协议(Virtual Router Redundancy Protocol,VRRP),该协议应用于作为静态配置缺省网关上的第三层交换机和路由器上,为依赖缺省网关进行广域网接入或访问其它局域网网域的终端系统提供了更快、更有效的冗余容错能力。


  VRRP引入到交换网


  近年来,随着交换机的第三层交换能力的不断提高,VRRP技术已不再仅仅局限于路由器上的使用,而是逐步引入到大规模的交换网,以实现高可靠性的第三层交换的冗余备份。

  VRRP协议将系统中多台路由器组成VRRP组,该组中拥有一个虚拟缺省网关地址。但在任何时刻,一个组内只有控制虚拟网关地址的路由器是活动路由器(Master),由它来转发数据包。如果活动路由器发生了故障,它将选择一个优先权最高的冗余备份路由器(Backup)来替代活动路由器。由于网络内的终端配置了VRRP虚拟网关地址,发生故障时,虚拟路由器没有改变,主机仍然保持连接,网络将不会受到单点故障的影响,这样就较好地解决了网络中路由器切换的问题。

 

详解HSRP和VRRP的不同之处_VRRP_05


  图一 VRRP交换网的拓扑结构

  典型的采用VRRP技术的交换网拓扑结构如图一所示。


  组播通量的产生


  在大规模的交换网中,由于存在多个VLAN,因此,需要配置多个VRRP网关,这些网关将以默认一秒的时延不停地发送组播。此外,当生成树中的网络拓扑结构变化时,将激活拓扑结构变化的桥接协议数据单元(BPDU)产生。当应用视频点播、多媒体会议等流量较大的组播业务,以及网络自身所产生的数据,将会在某一时刻造成局部的网络“塞车”,甚至成为形成组播风暴的诱因。

  在图二所示的网络中,网络内的大量应用数据流通量,抢占了链路上的带宽,使核心交换机处理压力增加,使主干端口无法及时转发VRRP数据包和BPDU包,这样就导致Switch-A没有收到Switch-B的BPDU包(转发时延为15秒),Switch-A交换机端口由阻塞状态进入学习转发状态。同时,Switch-A向Switch-B发送拓扑结构变化BPDU包,通知Switch-B网络拓扑结构发生变化,还将导致Switch-A的VRRP状态由Backup变为Master,往所有转发端口发送VRRP组播。

  当该组播到达接入层交换机后,接入层交换机向Switch-B转发。Switch-B收到此组播后又通过互连端口向Switch-A转发,形成了环路。


  实现网络优化


  加大核心交换机互连链路的带宽

  核心交换机之间的互连链路有大量的广播和组播通量,如果由于带宽不够而造成此链路阻塞,则VRRP的备份交换机将变为Master,这样网络中将存在两个Master。因此,链路带宽的正常是VRRP网络正常的保证。

  修改VRRP通告间隔时间

  VRRP默认的通告间隔时间是一秒,若将此时间延长,则成倍地减少了每个端口VRRP广播量。但是,由于VRRP通告间隔时间的延长,VRRP网络中主备切换的时间将延长,核心交换机更难发现网络中拓扑结构的变化。因此,不可将此时间一味延长,而是根据网络的实际情况做适当的调整。

  设定STP

  Spanning Tree协议通过优先级的设定确定谁是根交换机,要保证根交换机和Master路由交换机的地位,直到网络拓扑结构出现改变。此外,STP还可采用DUAL-LAY和Per-VLAN模式。

  修剪Trunk口

  对Trunk口进行修剪,从绑定所有VLAN修改到只绑定该端口能接收到的部分VLAN,减少交换机的计算量和端口上的流通量。
 

详解HSRP和VRRP的不同之处_交换_06



  图二 组播风暴形成过程

  接入层交换机使用端口冗余

  Cisco、Avaya、3Com等厂商的接入层交换机上都具有端口冗余,或者叫弹性链路的特性:在交换机的端口上,通过厂商专有的技术,实现硬件上的故障切换。在主链路发生中断时,备份链路会在1~5秒的时间内切换到工作状态。这样的技术不需要有生成树协议的运算,没有BPDU的开销,而且切换时间远远低于生成树的收敛时间(生成树缺省的收敛时间是50秒,而且随着网络拓扑的复杂化,收敛时间还会增加)。因此,接入层交换机适合采用这种简单易用的方式实现链路的冗余备份。

  VRRP虚拟端口优先级的设定

  建议将成为生成树根网桥的核心交换机上VRRP的虚拟端口优先级设置为最高,这样保证VRRP主路由器与生成树根网桥一致性,防止因网络拓扑的变化引起VRRP状态的波动。

  关闭多余的广播和组播业务

  网络中有很多广播和组播业务的应用,有一部分是无意义的或不需要的,如网络内部的NTP服务、ARP-TX服务等,这样可以节省更多的带宽。

  升级交换机软件版本

  交换机软件版本的升级可以给交换机增加新的功能,改进原有的算法。因此,建议网络工程维护人员经常升级交换机软件,提升交换机的速度,提高交换机的性能。

  VRRP网络虽然不可能完全消除组播通量的存在,但网络工程师们对其进行控制,针对不同的网络环境,为每个网络量身定做适合自己的方案,能使其不影响网络的正常运行,将为网络提供更快、更有效的冗余容错能力。