查看原文
其他

干货总结 | 网关冗余协议HSRP与VRRP技术之间对比

文章来源:网络民工

网关冗余协议HSRP与VRRP技术之间对比

冗余协议是一般是指网络设备防止出现故障的协议,现在有IETF的VRRP协议和思科的HSRP以及JUNIPER的NSRP三种冗余协议。


今天,来对比一下思科的HSRP和华为、H3C的VRRP协议之间的差异。


HSRP:  (Hot Standby Router Protocol)-热备份路由协议


是cisco平台一种特有的技术,是cisco的私有协议。


热备份路由器协议(HSRP)的设计目标是支持特定情况下 IP 流量失败转移不会引起混乱、并允许主机使用单路由器,以及即使在实际第一跳路由器使用失败的情形下仍能维护路由器间的连通性。换句话说,当源主机不能动态知道第一跳路由器的 IP 地址时,HSRP 协议能够保护第一跳路由器不出故障。该协议中含有多种路由器,对应一个虚拟路由器。HSRP 协议只支持一个路由器代表虚拟路由器实现数据包转发过程。终端主机将它们各自的数据包转发到该虚拟路由器上。


负责转发数据包的路由器称之为主动路由器(Active Router)。一旦主动路由器出现故障,HSRP 将激活备份路由器(Standby Routers)取代主动路由器。HSRP 协议提供了一种决定使用主动路由器还是备份路由器的机制,并指定一个虚拟的 IP 地址作为网络系统的缺省网关地址。如果主动路由器出现故障,备份路由器(Standby Routers)承接主动路由器的所有任务,并且不会导致主机连通中断现象。


HSRP 运行在 UDP 上,采用端口号1985。路由器转发协议数据包的源地址使用的是实际 IP 地址,而并非虚拟地址,正是基于这一点,HSRP 路由器间能相互识别。

VRRP:   (Virtual Router Redundancy Protocol)-虚拟路由冗余协议


是国际标准,由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议。

虚拟路由器冗余协议(VRRP)是一种选择协议,它可以把一个虚拟路由器的责任动态分配到局域网上的 VRRP 路由器中的一台。控制虚拟路由器 IP 地址的 VRRP 路由器称为主路由器,它负责转发数据包到这些虚拟 IP 地址。一旦主路由器不可用,这种选择过程就提供了动态的故障转移机制,这就允许虚拟路由器的 IP 地址可以作为终端主机的默认第一跳路由器。使用 VRRP 的好处是有更高的默认路径的可用性而无需在每个终端主机上配置动态路由或路由发现协议。VRRP 包封装在 IP 包中发送。


使用 VRRP ,可以通过手动或 DHCP 设定一个虚拟 IP 地址作为默认路由器。虚拟 IP 地址在路由器间共享,其中一个指定为主路由器而其它的则为备份路由器。如果主路由器不可用,这个虚拟 IP 地址就会映射到一个备份路由器的 IP 地址(这个备份路由器就成为了主路由器)。VRRP 也可用于负载均衡。VRRP 是 IPv4 和 IPv6 的一部分。

共同点:

  1. 都是为了提高网络可靠性:对路由器或者核心设备采用备份,保护第一跳路由器不出故障。


  2. 一组路由器,外在表现是一台路由器,(包括一个Master 即活动路由器和若干个Backup 即备份路由器)。


  3. 对外提供一个Virtual IP 和Virtual MAC。


  4. 活动的路由器(通常优先级高的那台)对数据包进行转发。


  5. 优先级低的另外一台处于hot standby/backup状态,不做数据包转发。


  6. 一旦活动的路由器出现故障,处于hot standby/back up的路由器会立即变成活动路由器,进行数据包转发

不同点:

  1. HSRP


    HSRP定义了6种状态:


    (1)初始状态initial:HSRP启动时的状态,HSRP还没有运行,一般是在改变配置或者端口刚刚启动时进入该状态。


    (2)学习状态learn:路由器仍然等待来自活跃路由器的消息。这时,路由器还没有看到活跃路由器的Hello消息也没有学到虚拟路由器的IP地址。


    (3)倾听状态listen:路由器正在监听Hello消息.已经知道了虚拟的IP地址。


    (4)发言状态speak:在该状态下,路由器发送周期性Hello消息,并参与活跃路由器或备份路由器的竞选,优先级高的路由器会成为active路由器。


    (5)备份状态standby:当主动active路由器失效时,路由器准备接管包传输功能。


    (6)活跃状态active:路由器执行包传输功能。


    HSRP虚拟路由器的MAC地址:


       00-00-0c –    07-ac     –   0a
       厂商编码   MAC虚拟地址    HSRP组号

    HSRP协议的路由交换有三种多点组播消息:


    (1)Hello:hello 消息通知其他路由器发送路由器的HSRP优先级和状态信息,HSRP路由器默认每3s发送一个hello消息。


    (2)Coup:当一个备用路由器变为一个主动路由器时发送一个coup消息。


    (3)Resign:当主动路由器要宕机或者有更高优先级的路由器发送hello消息时,主动路由器发送一个resign消息。


       HSRP运行在UDP上,采用端口号1985,目的地址是全部的路由器多点组播地址:


    HSRPv1地址224.0.0.2,和CGMP地址冲突,HSRPv2改为224.0.0.102。


  2. VRRP


VRRP定义了3种状态:


(1)初始状态initial:VRRP启动时的状态,VRRP 还没有运行,一般是改变配置或端口刚启动时进入该状态


(2)主状态master:路由器执行转发功能


(3)备份状态backup:当路由器失效时,路由器准备接管包转发功能。


VRRP的虚拟机路由器MAC地址:


   00-00-5e   –    00-01    –    组号
   厂商编码     虚拟MAC地址      VRRP组号


VRRP协议的路由交换只有一种广播消息:


advertisement通告消息:发送者只能是master,默认每1s发送一个通告消息。


advertisement里面包含了各种路由器的信息,比如版本号,优先级,备份组虚拟IP地址的个数等等。


VRRP消息被封装在ip包中,使用端口号112,目的地址是全部路由器多点组播地址:224.0.0.18。

配置方法:


1.HSRP


R1(config-if)#standby 1 ip 192.168.13.254 //启用HSRP功能,创建standby组1,并设置虚拟网关IP地址
R1(config-if)#standby priority 120        //设置HSRP的优先级,该值大的会抢占成Active路由器,默认为100
R1(config-if)#standby 1 preempt           //设置允许在该路由器优先级是最高时抢占为活动路由器
R1(config-if)#standby 1 timers 3 10       //设置Hellotime为3秒,Holdtime为10秒,默认即为该值
R1(config-if)#standby 1 authentication md5 key-string cisco  //配置认证密码
R1(config-if)#standby 1 track s0/0 30     //配置端口跟踪


2.VRRP


routerA#config termi                      //进入全局模式
routerA(config)#track 1 interface s0/0    //定义跟踪
routerA(config)#interface e0
routerA(config-if)#ip addr 10.10.10.1 255.255.255.0
routerA(config-if)#vrrp 1 priority 120   //配置优先级
routerA(config-if)#vrrp 1 ip 10.10.10.1  //配置vrrp组和虚拟路由器的IP地址
routerA(config-if)#vrrp 1 timer advertise 3   //配置vrrp通告时间
routerA(config-if)#vrrp 1 preempt             //配置抢占
routerA(config-if)#vrrp 1 authentication text cisco  //配置明文认证,可以配置md5认证
routerA(config-if)#vrrp 1 track 1 decrement 100  //decrement 优先级:减少的优先级




推荐阅读




*85后北大高材生年薪百万,开发微信清粉软件牟利获刑…

*Linux大文件重定向和管道的效率对比

*干货 |GitHUB安全搬运工 Ⅲ

                                                                                         

                                                                        


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存