一、概述:

1.1. 产生背景

随着Internet的发展,人们对网络可靠性的要求越来越高。特别是对于终端用户来说,能够实时与网络其他部分保持联系是非常重要的。一般来说,主机通过设置默认网关来与外部网络联系,如图1所示:

主机将发送给外部网络的报文发送给网关,由网关传递给外部网络,从而实现主机与外部网络的通信。正常的情况下,主机可以完全信赖网关的工作,但是当网关坏掉时,主机与外部的通信就会中断。要解决网络中断的问题,可以依靠再添加网关的方式解决,不过由于大多数主机只允许配置一个默认网关,此时需要网络管理员进行手工干预网络配置,才能使得主机使用新的网关进行通信;有时,人们运用动态路由协议的方法来解决网络出现故障这一问题,如运行RIP、OSPF等,或者使用IRDP。然而,这些协议由于配置过于复杂,或者安全性能不好等原因都不能满足用户的需求。为了更好地解决网络中断的问题,网络开发者提出了VRRP,它既不需要改变组网情况,也不需要在主机上做任何配置,只需要在相关路由器上配置极少的几条命令,就能实现下一跳网关的备份,并且不会给主机带来任何负担。和其他方法比较起来,VRRP更加能够满足用户的需求。1.2.技术优点VRRP是一种容错协议,它保证当主机的下一跳路由器出现故障时,由另一台路由器来代替出现故障的路由器进行工作,从而保持网络通信的连续性和可靠性。VRRP具有如下优点:

  • 简化网络管理。在具有多播或广播能力的局域网(如以太网)中,借助VRRP 能在某台设备出现故障时仍然提供高可靠的缺省链路,有效避免单一链路发生故障后网络中断的问题,而无需修改动态路由协议、路由发现协议等配置信息,也无需修改主机的默认网关配置。
  •  适应性强。VRRP 报文封装在IP 报文中,支持各种上层协议。
  •  网络开销小。VRRP 只定义了一种报文——VRRP 通告报文,并且只有处于Master 状态的路由器可以发送VRRP 报文。

二、VRRP协议介绍:

2.1. 相关术语

  • 虚拟路由器:由一个 Master 路由器和多个Backup 路由器组成。主机将虚拟路由器当作默认网关。

  • VRID:虚拟路由器的标识。有相同VRID 的一组路由器构成一个虚拟路由器。

  • Master 路由器:虚拟路由器中承担报文转发任务的路由器。

  • Backup 路由器:Master 路由器出现故障时,能够代替Master 路由器工作的路由器。

  • 虚拟 IP 地址:虚拟路由器的IP 地址。一个虚拟路由器可以拥有一个或多个IP 地址。

  • IP 地址拥有者:接口IP 地址与虚拟IP 地址相同的路由器被称为IP 地址拥有者。

  • 虚拟 MAC 地址:一个虚拟路由器拥有一个虚拟MAC 地址。虚拟MAC 地址的格式为00-00-5E-00-01-{VRID}。通常情况下,虚拟路由器回应ARP 请求使用的是虚拟MAC 地址,只有虚拟路由器做特殊配置的时候,才回应接口的真实MAC 地址。

  • 优先级:VRRP 根据优先级来确定虚拟路由器中每台路由器的地位。

  • 非抢占方式:如果 Backup 路由器工作在非抢占方式下,则只要Master 路由器没有出现故障,Backup 路由器即使随后被配置了更高的优先级也不会成为Master 路由器。

  •  抢占方式:如果Backup 路由器工作在抢占方式下,当它收到VRRP 报文后,会将自己的优先级与通告报文中的优先级进行比较。如果自己的优先级比当前的Master 路由器的优先级高,就会主动抢占成为Master 路由器;否则,将保持Backup 状态。

2.2. 虚拟路由器简介

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

2.3. 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。由此可见,为了保证Master路由器和Backup路由器能够协调工作,VRRP需要实现以下功能:

  •  Master 路由器的选举;

  • Master 路由器状态的通告;

  • 同时,为了提高安全性,VRRP 还提供了认证功能;

2.3.1 Master路由器的选举

VRRP根据优先级来确定虚拟路由器中每台路由器的角色(Master路由器或Backup路由器)。优先级越高,则越有可能成为Master路由器。初始创建的路由器工作在Backup状态,通过VRRP报文的交互获知虚拟路由器中其他成员的优先级:

  •  如果 VRRP 报文中Master 路由器的优先级高于自己的优先级,则路由器保

持在Backup 状态;

  • 如果 VRRP 报文中Master 路由器的优先级低于自己的优先级,采用抢占工作方式的路由器将抢占成为Master 状态,周期性地发送VRRP 报文,采用非抢占工作方式的路由器仍保持Backup 状态;

  • 如果在一定时间内没有收到 VRRP 报文,则路由器切换为Master 状态。VRRP优先级的取值范围为0到255(数值越大表明优先级越高),可配置的范围是1到254,优先级0为系统保留给路由器放弃Master位置时候使用,255则是系统保留给IP地址拥有者使用。当路由器为IP地址拥有者时,其优先级始终为255。此,当虚拟路由器内存在IP地址拥有者时,只要其工作正常,则为Master路由器。

2.3.2 Master路由器状态的通告

Master路由器周期性地发送VRRP报文,在虚拟路由器中公布其配置信息(优先级等)和工作状况。Backup路由器通过接收到VRRP报文的情况来判断Master路由器是否工作正常。Master路由器主动放弃Master地位(如Master路由器退出虚拟路由器)时,会发送优先级为0的VRRP报文,致使Backup路由器快速切换变成Master路由器。这个切换的时间称为Skew time,计算方式为:(256-Backup路由器的优先级)/256,单位为秒。当Master路由器发生网络故障而不能发送VRRP报文的时候,Backup路由器并不能立即知道其工作状况。Backup路由器等待一段时间之后,如果还没有接收到VRRP报文,那么会认为Master路由器无法正常工作,而把自己升级为Master路由器,周期性发送VRRP报文。如果此时多个Backup路由器竞争Master路由器的位置,将通过优先级来选举Master路由器。Backup路由器默认等待的时间称为Master_Down_Interval,取值为:(3×VRRP报文的发送时间间隔)+Skewtime,单位为秒。在 性 能 不 够稳定的网络中, Backup 路由器可能因为网络堵塞而在Master_Down_Interval期间没有收到Master路由器的报文,而主动抢占为Master位置,如果此时原Master路由器的报文又到达了,就会出现虚拟路由器的成员频繁的进行Master抢占现象。为了缓解这种现象的发生,特制定了延迟等待定时器。它可以使得Backup路由器在等待了Master_Down_Interval后,再等待延迟等待时间。如在此期间仍然没有收到VRRP报文,则此Backup路由器才会切换为Master路由器,对外发送VRRP报文。

2.3.3 认证方式

VRRP提供了三种认证方式:

  • 无认证:不进行任何 VRRP 报文的合法性认证,不提供安全性保障。

  • ? 简单字符认证:在一个有可能受到安全威胁的网络中,可以将认证方式设置为简单字符认证。发送VRRP 报文的路由器将认证字填入到VRRP 报文中,而收到VRRP 报文的路由器会将收到的VRRP 报文中的认证字和本地配置的认证字进行比较。如果认证字相同,则认为接收到的报文是合法的VRRP 报文;否则认为接收到的报文是一个非法报文。

  •  MD5 认证:在一个非常不安全的网络中,可以将认证方式设置为MD5 认证。发送VRRP 报文的路由器利用认证字和MD5 算法对VRRP 报文进行加密,加密后的报文保存在Authentication Header(认证头)中。收到VRRP报文的路由器会利用认证字解密报文,检查该报文的合法性。

点击留言板留言!
留言板

▼更多精彩推荐,请关注我们▼

生活不止眼前的苟且,

还有课本里的诗和到不了的远方!

vrrp协议_虚拟路由冗余协议VRRP原理介绍相关推荐

  1. 虚拟路由冗余协议VRRP

    一.VRRP简介 虚拟路由冗余协议VRRP(Virtual Router Redundancy Protocol)通过把几台路由设备联合组成一台虚拟的路由设备,将虚拟路由设备的IP地址作为用户的默认网 ...

  2. 华为路由器:虚拟路由冗余协议VRRP的讲解

    VRRP网关冗余技术 一.技术背景 如上图所示,如果我们局域网中只有一个路由器作为网关,假如某天我们的路由器宕机了,那么整个局域网就无法上网,我们一般称之为单点故障.那么如何解决网关的单点故障呢? 我 ...

  3. linux内核vrrp配置,在Linux下的(VRRP)虚拟路由冗余协议介绍(转)

    在Linux下的(VRRP)虚拟路由冗余协议介绍(转)[@more@] 这篇文章描述的是如何在Linux下实现VRRP (Virtual Router Redundancy Protocol 虚拟路由 ...

  4. 网络协议学习:虚拟路由冗余协议 VRRP

    背景 一个网络中的主机如果想向其他网络上的主机发送数据,必须经过主机所在网络的默认网关.随着网络的发展,网络中越来越多的机器需要和外界进行通信的时候,如果网关出现单点故障,那么整个网络都和外界断开的联 ...

  5. 虚拟路由冗余协议VRRP——双机热备份基础

    VRRP 一.概述 产生背景 VRRP简介 相关概念 二.VRRP的报文结构 三.VRRP的状态机 四.VRRP中Master的选举和工作过程 Master路由器的选举 工作过程 正常工作 VRRP的 ...

  6. vrrp路由器三种状态_虚拟路由器冗余协议(VRRP)

    虚拟路由器冗余协议(VRRP) 5.1 VRRP协议原理 VRRP协议(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)与HSRP类似,能够提高网络的稳定性和 ...

  7. 华为设备配置篇——VRRP配置(虚拟路由冗余)

    VRRP可以监视上行端口的状态,当设备感知上行端口或者链路发生故障时,可以主动的降低VRRP的优先级,从而保证上行链路正常的backup设备能够通过选举切换成Master状态,指导报文转发. 接入交换 ...

  8. vrrp虚拟路由冗余协议简图

    1.在PC1 PC2 PC3 设好IP地址 2建vlan 10 20 在SW1 的交换机中设G/0/03 G0/0/4 access g0/0/1 g0/0/2 trunk 捉包测试 3在SW2 建v ...

  9. ensp 虚拟路由冗余协议vrrp配置

    ip设置与路由部分省略 master路由器: <HUAWEI>sys <HUAWEI>sys r1 [r1]un in en [r1]int g0/0/0 [r1-Gigabi ...

最新文章

  1. java threadgourp_Java Thread getThreadGroup()方法
  2. Protractor
  3. c语言 1或0 结果,C语言中,在表示逻辑运算结果时,以数值1代表“真”,以0代表“假”。()...
  4. 链式前向星模板 建图+dfs+bfs+dijkstra
  5. 凯文·凯利:下一个5000天的12个必然趋势!
  6. IE浏览器打不开解决的方法
  7. 19 | 案例篇:为什么系统的Swap变高了(上)
  8. OneVPL与FFmpeg/GStreamer硬件编解码器
  9. 深入Java集合学习系列:HashMap的实现原理
  10. idea配置Maven的本地仓库(打开新的项目时自动更新本地仓库的位置)
  11. 人工智能领域开展标准化研究
  12. layer弹出层扩展自定义样式
  13. 第三章 进程管理笔记
  14. 面试题 计算机安全,XX计算机信息安全工程师面试题路由.doc
  15. matlab pca重构,如何反转PCA并从几个主要组成部分重建原始变量?
  16. python获取管理员权限
  17. HTML5 input类型 range滑动条 介绍与使用
  18. 律动荆棘皇冠 Crown of Thorns
  19. esp32触摸touch功能使用过程详述arduino
  20. GSM和GPRS有什么区别

热门文章

  1. python语言变量随时命名随时赋值_Python变量及数据类型用法原理汇总
  2. 计算机不能直接执行c语言编写的源程序,计算机不能直接执行用C语言编写的源程序。...
  3. 8080端口被占用怎么解决_端口占用不会搞?两行命令就解决!
  4. visual studio 自带的 宏 没反应_横山宏科幻动漫模型:插图造型怪异的胡佛战车欣赏...
  5. mysql5.6配置区分大小写
  6. Java经纬度坐标转换到平面坐标
  7. mysql 连接错误The server time zone value ‘?????????‘
  8. RabbitMQ实现(并发)多线程处理消息
  9. 获取Java对象中所有的属性名称和属性值
  10. decimal(10,2) 的含义