RFC3768:Virtual Router Redundancy Protocol (VRRP),April 2004
本文档为Internet社区指定了Internet标准标准协议,并要求讨论和改进建议。有关此协议的标准化状态和状态,请参阅当前版本的“互联网官方协议标准”(STD 1)。本备忘录的分布是无限的。
版权(C)互联网协会(2004)。版权所有。
该备忘录定义了虚拟路由器冗余协议(Virtual Router Redundancy Protocol,VRRP)。VRRP指定了一个选举协议,该协议将虚拟路由器的责任动态分配给LAN上的VRRP路由器之一。控制与虚拟路由器关联的IP地址的VRRP路由器称为Master,并且发送到这些IP地址的转发数据包。选举过程提供了动态故障,如果Master不可用,则可以在转发责任中进行动态故障。这允许LAN上的任何虚拟路由器IP地址通过End-hosts用作默认的First Hop路由器。从使用VRRP获得的优势是较高的可用性默认路径,而无需在每个端主机上配置动态路由或路由器发现协议。
End-Host可以使用许多方法来确定其对特定IP目标的第一个跃点路由器。其中包括运行(或侦听)动态路由协议,例如路由信息协议[Routing Information Protocol,RIP]或OSPFv2 [OSPF],运行ICMP路由器发现客户端[DISC]或使用静态配置的默认路由。
由于多种原因,在每个终点内运行动态路由协议可能是不可行的,包括管理开销,处理开销,安全问题或缺乏某些平台的协议实现。邻居或路由器发现协议可能需要所有主机在网络上的主动参与,从而导致大量计时器值在面对大量主机的情况下减少协议开销。这可能会导致检测失去(即dead)邻居的明显延迟,这可能会引入不可接受的长时间“黑洞”时期。
使用静态配置的默认路由非常流行。它可以最大程度地减少末端主机上的配置和处理开销,并由几乎每个IP实现都支持。这种操作模式可能会持续使用,因为部署了动态主机配置协议[dynamic host configuration protocols,DHCP],该协议通常为终端主机IP地址和默认网关提供配置。但是,这会产生一个单点的故障点。默认路由器的丢失会导致灾难性事件,隔离所有无法检测可能可用的替代路径的终端主机。
虚拟路由器冗余协议(VRRP)旨在消除静态默认路由环境中固有的单点故障点。VRRP指定了一个选举协议,该协议将虚拟路由器的责任动态分配给LAN上的VRRP路由器之一。控制与虚拟路由器关联的IP地址的VRRP路由器称为Master,并且发送到这些IP地址的转发数据包。如果Master无法获得,选举过程在转发责任中提供了动态的故障。然后,LAN上的任何虚拟路由器的IP地址都可以通过End-hosts用作默认的First Hop路由器。从使用VRRP获得的优势是较高的可用性默认路径,而无需在每个端主机上配置动态路由或路由器发现协议。
VRRP提供了类似于专有协议“热备路由器协议(Hot Standby Router Protocol,HSRP)”[HSRP]和“IP备份协议”[IP Standby Protocol,IPSTB]的功能。
关键词“必须”,“必须”,“必需”,“应”,“不得”,“应该”,“不应该”,“推荐”,“可能”,“可能”和“可选”是如[RFC2119]中所述解释。
本文档所基于并替换的RFC 2338的作者的以下人员为本文档中的文本做出了贡献。他们是P. Higginson,R。Hinden,P。Hunt,S。Knight,A。Lindem,D。Mitzel,M。Shand,D。Weaver和D. Whipple。由于当前的RFC编辑策略,它们没有被列为文档的作者。
本文档的其余部分描述了VRRP的功能,设计目标和操作理论。介绍了消息格式,协议处理规则和状态计算机,以保证融合到单个虚拟路由器Master。最后,解决了与MAC地址映射,ARP请求处理,ICMP重定向消息的生成以及安全问题有关的操作问题。
该协议仅用于IPv4路由器。如果确定在IPv6环境中希望相似的功能是可取的,则将产生单独的规范。
VRRP Router:VRRP路由器,运行虚拟路由器冗余协议的路由器。它可能参与一个或多个虚拟路由器。
Virtual Router:虚拟路由器,由VRRP管理的抽象对象,可作为共享LAN上主机的默认路由器。它由一个通用LAN的虚拟路由器标识符和一组关联的IP地址组成。VRRP路由器可能会备份一个或多个虚拟路由器。
IP Address Owner:IP地址所有者,将虚拟路由器的IP地址作为真实接口地址的VRRP路由器。当协议UP时,该路由器将响应有关ICMP ping,TCP Connections等这些IP地址之一的数据包。
Primary IP Address:主要IP地址,从真实接口地址集中选择的IP地址。一种可能的选择算法是始终选择第一个地址。VRRP通告始终使用主要IP地址作为IP数据包来源发送。
Virtual Router Master:虚拟路由器Master,承担将发送到与虚拟路由器关联的IP地址的转发数据包的责任的VRRP路由器,并响应有关这些IP地址的ARP请求。请注意,如果IP地址所有者可用,那么它将始终成为Master。
Virtual Router Backup:虚拟路由器Backup,如果当前Master故障,则可以承担虚拟路由器的转发责任的VRRP路由器的集合。
本节概述了被认为是强制性的功能集,并指导了VRRP的设计。
IP地址备份是虚拟路由器冗余协议的主要功能。在提供虚拟路由器Master的选举和下面描述的其他功能的同时,该协议应努力:
- 最小化黑洞的持续时间。
- 最小化稳态带宽开销和处理复杂性。
- 功能在各种能够支持IP流量的多种多数LAN技术上。
- 提供网络上的多个虚拟路由器,以进行负载均衡。
- 支持单个LAN段上多个逻辑IP子网。
一组冗余路由器中Master选举的一个简单模型是,以同样的喜好对待每个路由器,并在将任何路由器作为Master路由器收敛后赢得胜利。但是,在一组冗余路由器中,可能有许多环境在冗余路由器集中有独特的优先级(或优先级范围)。例如,此优先级可能基于访问链接成本或速度,路由器性能或可靠性或其他政策注意事项。该协议应允许以直观的方式表达此相对路径优先级,并保证主收敛到当前可用的最优先级路由器。
一旦执行了Master选举,那么Master路由器和Backup路由器之间的任何不必要的过渡都可能导致服务中断。该协议应确保Master选举后确保任何备用路由器触发任何状态转换,只要主体继续正常运行。
某些环境可能会发现,当路由器可用时,避免触发的状态过渡是有益的。支持直接收敛到首选路径的覆盖可能是有用的。
在MultiAccess LAN上发送IP数据包需要从IP地址映射到MAC地址。在使用学习桥的扩展LAN中使用虚拟路由器MAC地址可能会对发送给虚拟路由器的数据包的带宽开销产生重大影响。如果虚拟路由器MAC地址永远不会用作链接级别框架中的源地址,则永远不会学到站点位置,从而导致所有发送到虚拟路由器的数据包的洪水泛滥。为了提高在此环境中的效率,协议应:1)使用虚拟路由器MAC作为Master发送的数据包中的源来触发地址学习;2)过渡到主体后立即触发一条消息以更新站的学习;3)触发Master的定期消息以维护站点学习缓存。
VRRP指定选举协议,以提供前面描述的虚拟路由器功能。所有协议消息均使用IP组播数据报文执行,因此该协议可以在支持IP Multicast的各种multiaccess LAN技术上运行。每个VRRP虚拟路由器都有一个分配给它的单个众所周知的MAC地址。目前,本文档仅使用IEEE 802的48位MAC地址详细介绍了网络的映射。虚拟路由器MAC地址用作Master路由器发送的所有定期VRRP消息中的源,以在扩展LAN中启用桥接学习。
虚拟路由器由其虚拟路由器标识符(virtual router identifier,VRID)和一组IP地址定义。VRRP路由器可以将虚拟路由器与其接口上的真实地址相关联,并且还可以使用其他虚拟路由器映射和备份更优的虚拟路由器配置。VRID和地址之间的映射必须在LAN上的所有VRRP路由器之间进行协调。但是,没有任何限制,不受重复使用不同LAN的地址映射的VRID,每个虚拟路由器的范围仅限于单个LAN。
为了最大程度地减少网络流量,只有每个虚拟路由器的Master主机发送定期VRRP通告消息。除非优先级更高,否则Backup路由器将不会试图抢占Master。除非有更优选的路径可用,否则这将消除服务中断。也有可能在行政上禁止所有先发制人尝试。唯一的例外是,VRRP路由器将始终成为与其拥有的地址相关的任何虚拟路由器的主体。如果Master变得不可用,则最高优先级Backup将在短暂延迟后过渡到Master,从而在最小的服务中断中提供对虚拟路由器责任的受控过渡。
VRRP协议设计提供了从Backup到Master的快速过渡,以最大程度地减少服务中断,并结合了降低协议复杂性的优化,同时保证了对典型操作场景的控制Master过渡。优化导致选举协议具有最小的运行时状态要求,最小的活动协议状态以及单个消息类型和发送者。典型的操作场景定义为每个路由器之间的两个冗余路由器和/或不同的路径优先级。当违反这些假设时(即,超过两个冗余路径均具有相等优先级)时的副作用是,在选举中,可以在短时间内转发重复的数据包。但是,典型的场景假设可能涵盖了绝大多数部署,Master路由器的损失很少,并且选举融合中的预期持续时间很小(远小于1秒)。因此,VRRP优化代表了协议设计中的重要简化,同时产生了短暂的网络退化的微不足道的可能性。
下图显示了一个简单的网络,其中有两个VRRP路由器实现一个虚拟路由器。请注意,提供此示例是为了帮助理解协议,但预计不会在实际实践中发生。
图例:
---+---+---+-- =以太网、令牌环或FDDI
H =主机计算机
MR = Master Router,Master路由器
BR = Backup Router,Backup路由器
* = IP Address,IP地址
(IP) =主机的默认路由器
从上图中消除所有对VRRP(VRID = 1)的提及,使其作为典型的IP部署。每个路由器是永久分配的LAN接口上的IP地址(RTR1分配了IP A和RTR2分配了IP B),并且每个主机通过一个路由器安装静态默认路由(在此示例中,他们都使用RTR1的IP A)。
移至VRRP环境,每个路由器具有完全相同的永久分配的IP地址。据说RTR1是IP A的IP地址所有者,RTR2是IP B的IP地址所有者。然后,通过将唯一标识符(虚拟路由器ID)与路由器拥有的唯一标识符(虚拟路由器ID)关联来定义虚拟路由器。最后,VRRP协议管理Virtual Router故障到Backup路由器。
上面的示例显示了一个配置为覆盖RTR1拥有的IP地址的虚拟路由器(VRID = 1,ip_address = a)。当VRID = 1上的RTR1上启用VRRP时,它将自称为Master,优先级= 255,因为它是虚拟路由器IP地址的IP地址所有者。当在RTR2上启用VRRP的VRID = 1时,它将过渡到Backup,而优先级= 100,因为它不是IP地址所有者。如果RTR1应该故障,则VRRP协议将转换RTR2掌握,暂时接管IP A的转发责任,以向主机提供不间断的服务。
请注意,在此示例中,IP B没有备份,仅RTR2用作其接口地址。为了备份IP B,必须配置第二个虚拟路由器。这将在下一部分中显示。
下图显示了带有两个虚拟路由器的配置,主机在它们之间分发流量。预计在实际实践中将非常普遍。
图例:
---+---+---+-- =以太网、令牌环或FDDI
H =主机计算机
MR = Master Router,Master路由器
BR = Backup Router,Backup路由器
* = IP Address,IP地址
(IP) =主机的默认路由器
在上面的示例中,一半的主机通过RTR1的IP A配置了静态路由,另一半使用RTR2的IPB。虚拟路由器VRID = 1的配置与第一个示例完全相同(请参阅第4.1节),并且添加了第二个虚拟路由器,以覆盖RTR2拥有的IP地址(VRID = 2,IP_ADDRESS = B)。在这种情况下,RTR2将自称为VRID = 2的Master,而RTR1将充当Backup。这种方案表明,当两个路由器可用时,可以提供负载分担,同时为稳健性提供了充分的冗余。
VRRP数据包的目的是向所有VRRP路由器通信与虚拟路由器ID关联的Master路由器的优先级和状态。
VRRP数据包发送在IP数据包中,它们被发送到分配给VRRP的IPv4组播地址。
本节定义了IP报文头中VRRP数据包和相关字段的格式。
数据包正在发送的接口的主要IP地址。
IANA为VRRP分配的IP组播地址是:
224.0.0.18
这是链接本地范围组播地址。无论其TTL如何,路由器都不得转发具有此目标地址的数据报文。
TTL必须设置为255。接收不等于255的数据包的VRRP路由器必须丢弃数据包。
IANA为VRRP分配的IP协议号为112(十进制)。
版本字段指定此数据包的VRRP协议版本,本文档定义了版本2。
类型字段指定此VRRP数据包的类型。该协议版本中唯一定义的数据包类型是:
1 ADVERTISEMENT
具有未知类型的数据包必须被丢弃。
虚拟路由器标识符(VRID)字段标识该数据包的报告状态。范围1-255(十进制)中的可配置项目。没有默认值。
优先级字段指定虚拟路由器的发送VRRP路由器的优先级,越大的值代表更高的优先级。该字段是8位未签名的整数字段。
拥有与虚拟路由器关联的IP地址的VRRP路由器的优先级值必须为255(十进制)。
Backup虚拟路由器的VRRP路由器必须使用1-254(十进制)之间的优先级值。Backup虚拟路由器的VRRP路由器的默认优先级值为100(十进制)。
优先级值零(0)具有特殊的含义,表明当前的主已经停止参与VRRP。这用于触发Backup路由器快速过渡到Master,而无需等待当前的Master超时。
此VRRP通告中包含的IP地址数量。
身份验证类型字段标识要使用的身份验证方法,身份验证类型在虚拟路由器上是唯一的,身份验证类型字段是8位未签名的整数。必须丢弃具有未知身份验证类型或与本地配置的身份验证方法不匹配的数据包。
注意:VRRP规范的早期版本具有几种定义的身份验证类型[RFC2338]。这些规格中删除了这些内容,因为操作经验表明它们没有提供任何真正的安全性,只会导致多个Master。
当前定义的身份验证方法是:
0-无身份验证
1-保留
2-保留
这种身份验证类型的使用意味着VRRP协议交换未进行身份验证。身份验证数据字段的内容应在传输时设置为零,并在接收方面忽略。
此身份验证类型保留以保持与RFC 2338的向后兼容性。
此身份验证类型保留以保持与RFC 2338的向后兼容性。
通告间隔表示通告之间的时间间隔(以秒为单位),默认值是1秒。该字段用于故障排除错误配置的路由器。
校验和字段用于检测VRRP消息中的数据损坏。
校验和是从版本字段开始的整个VRRP消息的补充总和的16位补充,为了计算校验和,校验和字段设置为零。有关更多详细信息,请参见RFC 1071。
与虚拟路由器关联的一个或多个IP地址,所包含的地址数量在“计数IP ADDRS”字段中指定。这些字段用于故障排除错误配置的路由器。
当前,身份验证字符串仅用于与RFC 2338保持向后兼容。在传输时应将其设置为零,并在接收方面被忽略。
VRID:Virtual Router Identifier,虚拟路由器标识符。范围1-255(十进制)中的可配置项目。没有默认值。
Priority:优先级。此虚拟路由器的Master选举中,此VRRP路由器将使用此VRRP路由器使用的优先级值。255(十进制)的值保留给拥有与虚拟路由器关联的IP地址的路由器。为Master路由器保留0(零)的值(零),以表明它正在释放虚拟路由器的责任。范围1-254(十进制)可用于Backup虚拟路由器的VRRP路由器。默认值为100(十进制)。
IP_Addresses:IP地址,与此虚拟路由器关联的一个或多个IP地址。手工配置的项目,没有默认值。
Advertisement_interval:通告之间的时间间隔(秒)。默认值是1秒。
Skew_Time:翻转Master_down_interval的时间,以秒为单位。计算方法为:
( (256 - Priority) 256 )
master_down_interval:Backup准备切换到Master的时间间隔(秒)。计算方法为:
(3 * Advertisement_Interval) + Skew_time
Preempt_Mode:抢占模式,控制较高的优先级Backup路由器是否会抢占较低的优先级Master。值是真实的,可以允许先发制人和虚假以禁止先发制人。默认是允许的。
注意:例外是拥有与虚拟路由器关联的IP地址的路由器始终独立于此标志的设置。
Authentication_Type:使用的身份验证类型。值在第5.3.6节中定义。
Authentication_Data:特定于使用的身份验证数据。
Master_Down_Timer:当未听到Master_Down_interval的通告时发射的计时器。
Adver_Timer:触发基于Advertisement_interval的通告发送的计时器。
在下面的状态描述中,状态名称由{state-name}标识,并且数据包均由所有上层案例字符标识。
VRRP路由器为每个虚拟路由器选举实现了状态计算机的实例。
该状态的目的是等待启动事件。如果收到了启动事件,则:
-if优先级=255(即,路由器拥有与虚拟路由器相关联的IP地址)
**发送通告
**广播与虚拟路由器关联的每个IP地址的虚拟路由器MAC地址的无用ARP请求。
**将adver_timer设置为advertisement_interval
**过渡到{master}状态
else
**将master_down_timer设置为master_down_interval
**过渡到{Backup}状态
endif
{Backup}状态的目的是监视Master路由器的可用性和状态。
在这种状态下,VRRP路由器必须执行以下操作:
- 不得响应与虚拟路由器关联的IP地址的ARP请求。
- 必须使用目标链路层MAC地址等于虚拟路由器MAC地址。
- 不得接受地址为与虚拟路由器关联的IP地址的数据包。
- If收到Shutdown事件,then:
**取消master_down_timer
**过渡到{initialize}状态
endif
- If Master_Down_Timer启动,then:
**发送通告
**广播与虚拟路由器关联的每个IP地址的虚拟路由器MAC地址无用的ARP请求
**将adver_timer设置为advertisement_interval
**过渡到{master}状态
endif
- If收到ADVERTISEMENT,then:
If ADVERTISEMENT中的优先级为零,then:
**将master_down_timer设置为skew_time
else:
If Preempt_Mode is False, or If the Priority in the ADVERTISEMENT is greater than or equal to the local Priority, then:
If Preempt_Mode为False,或If ADVERTISEMENT中的优先级大于或等于本地优先级,then:
**将master_down_timer重置为master_down_interval
else:
**放弃通告
endif
endif
endif
在{master}中陈述路由器作为与虚拟路由器关联的IP地址的转发路由器。
在这种状态下,VRRP路由器必须执行以下操作:
- 必须响应与虚拟路由器关联的IP地址的ARP请求。
- 必须使用目标链路层MAC地址等于虚拟路由器MAC地址。
- 如果不是IP地址所有者,则不得接受与虚拟路由器关联的IP地址的数据包。
- 如果是IP地址所有者,则必须接受与虚拟路由器关联的IP地址的数据包。
- If收到Shutdown事件,then:
**取消ADVER_TIMER
**发送优先级的通告= 0
**过渡到{initialize}状态
endif
- If Adver_Timer fires启动,then:
**发送通告将Adver_timer重置为通告间隔
endif
- If收到ADVERTISEMENT,then:
If ADVERTISEMENT中的优先级为零,then:
**发送通告
**将adver_timer重置为advertisement_interval
else:
If ADVERTISEMENT中的优先级大于本地优先级,
或
If ADVERTISEMENT中的优先级等于本地优先级,并且发送者的主IP地址大于本地主IP地址,then:
**取消ADVER_TIMER
**将master_down_timer设置为master_down_interval
**过渡到{Backup}状态
else:
**丢弃通告
endif
endif
endif
收到VRRP数据包时执行以下功能:
- 必须验证IP TTL是255。
- 必须验证VRRP版本为2。
- 必须验证收到的数据包包含完整的VRRP数据包(包括固定字段,IP地址和身份验证数据)。
- 必须验证VRRP校验和。
- 必须验证VRID是否是在接收接口上配置的,并且本地路由器不是IP地址所有者(优先级等于255(DECIMAL))。
- 必须验证AUTH类型是否匹配虚拟路由器的本地配置的身份验证方法,并执行该身份验证方法。
如果以上任何检查故障,则接收器必须丢弃数据包,应记录事件,并可以通过网络管理指示发生错误。
- 可以验证“IP地址数量”和IP地址列表与为VRID配置的IP_ADDRESS匹配
如果上述检查故障,则接收器应记录事件,并可以通过网络管理指示检测到错误的配置。如果地址所有者未生成数据包(优先级不等于255(十进制)),则接收器必须删除数据包,否则继续处理。
- 必须验证数据包中的通告间隔与此虚拟路由器的本地配置相同
如果上述检查故障,则接收器必须丢弃数据包,应记录事件,并可以通过网络管理指示检测到错误的配置。
传输VRRP数据包时必须执行以下操作。
- 使用适当的虚拟路由器配置状态填写VRRP数据包字段
- 计算VRRP校验和
- 将源MAC地址设置为虚拟路由器MAC地址
- 将源IP地址设置为接口主IP地址
- 将IP协议设置为VRRP
- 将VRRP数据包发送到VRRP IP组播组
注意:VRRP数据包以虚拟路由器MAC地址作为源MAC地址进行传输,以确保学习网桥正确确定虚拟路由器所连接的LAN段。
与虚拟路由器关联的虚拟路由器MAC地址是以下格式的IEEE 802 MAC地址:
00-00-5E-00-01-{VRID} (in hex in internet standard bit-order)
前三个八位源来自IANA的OUI。接下来的两个八位位组(00-01)表示分配给VRRP协议的地址块。{VRID}是VRRP虚拟路由器标识符。该映射可在网络上提供多达255个VRRP路由器。
当VRRP在一组路由器之间运行时,ICMP重定向可以正常使用。这允许VRRP在拓扑不对称的环境中使用。
ICMP重定向的IP源地址应该是终端主机在做出下一跳路由决定时使用的地址。如果VRRP路由器充当包含其不拥有的地址的虚拟路由器的Master,则必须在选择重定向源地址时确定数据包被发送到哪个虚拟路由器。推断所使用的虚拟路由器的一种方法是检查触发重定向的数据包中的目标MAC地址。
在VRRP用于在对称拓扑中的多个路由器之间加载共享流量的特定情况下,禁用重定向可能很有用。
当Master向其中一个虚拟路由器IP地址发送ARP请求时,主虚拟路由器必须使用虚拟路由器的虚拟MAC地址响应ARP请求。主虚拟路由器不得使用其物理MAC地址进行响应。这允许客户端始终使用相同的MAC地址,而不考虑当前的Master路由器。
当VRRP路由器重新启动或引导时,它不应该发送任何带有其所拥有的IP地址的物理MAC地址的ARP消息,它应该只发送包含虚拟MAC地址的任何ARP消息。这可能需要:
-配置接口时,VRRP路由器应该广播一个免费的ARP请求,其中包含该接口上每个IP地址的虚拟路由器MAC地址。
-在系统启动时,为VRRP操作初始化接口时;延迟免费ARP请求和ARP响应,直到配置了IP地址和虚拟路由器MAC地址。
如果要在VRRP路由器上使用代理ARP,则VRRP路由器必须在代理ARP消息中通告虚拟路由器MAC地址。否则会导致主机了解VRRP路由器的真实MAC地址。
如果VRRP路由器不是其所有者,则不应转发寻址到其成为主IP地址的数据包。转发这些数据包将导致不必要的流量。此外,在LAN接收其传输的分组(例如令牌环)的情况下,这可能导致转发循环,该循环仅在IP TTL到期时终止。
VRRP路由器的一种这样的机制是在转换到Master状态/从Master状态转换时为每个采用的IP地址添加/删除拒绝主机路由。
FDDI接口从FDDI环形框架中删除,该帧具有与设备硬件地址相匹配的源MAC地址。在某些情况下,例如路由器隔离,环形故障,协议转换等,VRRP可能会导致一个以上的Master路由器。如果Master路由器将虚拟路由器MAC地址作为FDDI设备上的硬件地址安装,则在Master收敛期间将从环中删除其他Master的通告,并且收敛将故障。
为避免这种情况,实现应通过在FDDI设备中添加Unicast MAC过滤器来配置虚拟路由器MAC地址,而不是更改其硬件MAC地址。这将防止Master路由器删除其没有发起的任何通告。
令牌环具有多种特征,使运行VRRP变得困难。这些包括:
- 为了切换到使用源路由桥时从上一个Master的另一个桥接令牌段上的新Master,需要一种机制来更新缓存的源路由信息。
- 在新旧环适配器实现中,没有支持一般的组播机制。尽管许多较新的令牌环适配器支持组地址,但令牌环功能地址支持是唯一可用的组播机制。由于令牌功能的数量有限,这些功能的地址可能与其他同样令牌功能地址的其他用法相撞。
由于这些困难,优先级的操作模式超过令牌环将是为VRID虚拟MAC地址使用令牌环功能地址。令牌环功能地址在第一个MAC地址八位位置设置为B'1'中的两个高阶位。它们范围从03-00-00-00-00-80到03-00-02-00-00-00(规范格式)。但是,与组播地址不同,每个位置只有一个唯一的功能地址。功能地址03-00-00-10-00-00至03-00-02-00-00-00由代币环架构[TKARCH]保留用于用户定义的应用程序。但是,由于只有12个用户定义的令牌环功能地址,因此可以使用相同的功能地址有其他非IP协议。由于Novell IPX [IPX]协议使用03-00-00-10-00-00功能地址,因此VRRP在令牌环上的操作将避免使用此功能地址。通常,令牌环VRRP用户将负责解决其他用户定义的令牌环功能地址冲突。
VRID直接映射到令牌环功能地址。为了减少功能地址冲突的可能性,分配将从最大的功能地址开始。大多数非IP协议都使用第一或第一对用户定义的功能地址,预计VRRP用户将从1开始选择VRIDS。
或更简洁的是,功能地址的八位位于3和4等于(0x4000 >>(VRID -1)),以非典型格式。
由于功能地址不能用作MAC级源地址,因此实际MAC地址用作VRRP通告中的MAC源地址。这不是桥接的问题,因为地址为功能地址的数据包将在Spanning-Tree Explorer路径[802.1d]上发送。
操作的功能地址模式必须由支持令牌环上的VRRP的路由器实现。
此外,路由器可以支持单播操作模式,以利用较新的令牌环适配器实现,该实现支持多个单次MAC地址的非爆炸接收,并避免使用与代币圈功能地址相关的组播流量和使用冲突。Unicast模式将VRID与虚拟MAC地址相同的映射与以太网相同。但是,存在一个重要的区别。ARP请求/回复数据包包含虚拟MAC地址作为源MAC地址。这样做的原因是,某些令牌驱动程序实现将MAC地址/源路由信息的缓存独立于ARP缓存。因此,这些实现需要接收带有虚拟MAC地址作为源地址的数据包,以便在源路由桥接网络中传输到该MAC地址。
令牌环上的单播模式有一个需要考虑的限制。如果在不同的源路由网桥段上有VRID路由器,并且有主机实现将其源路由信息保存在ARP缓存中,并且不侦听免费ARP,则在发生切换时,这些主机将无法正确更新其ARP源路由信息。唯一可能的解决方案是将具有相同VRID的所有路由器放在同一源网桥段上,并使用技术防止该网桥段成为单点故障。这些技术超出了本文的范围。
对于组播和单播操作模式,应如[RFC1469]中所述封装至224.0.0.18的VRRP通告。
在具有ATM LANE接口的路由器和/或代理LEC后面的路由器上,在ATM LAN上运行VRRP超出了本文档的范围。
VRRP当前不包括任何类型的身份验证。VRRP规范的早期版本包括从无效到强的几种认证类型。运营经验和进一步的分析确定,这些经验并未提供任何真正的安全衡量。由于VRRP协议的性质,即使VRRP消息受到密码保护,它也不会阻止敌对路由器的行为,就好像它们是VRRP Master一样,创建了多个Masters。VRRP消息的身份验证可能会阻止敌对路由器导致所有正常运行的路由器进入Backup状态。但是,拥有多个Master会造成与没有路由器一样多的破坏,而身份验证无法阻止。另外,即使敌对路由器无法破坏VRRP,它也会破坏ARP并创建与所有路由器进入Backup相同的效果。
应该注意的是,这些攻击并不更糟,并且是附加到LAN的任何节点都可以独立于VRRP进行的攻击的子集。LAN上的恶意节点的攻击可以包括对任何路由器MAC地址的混杂接收数据包,将带有路由器MAC地址的数据包作为L2报文头中的源MAC地址,以告诉L2 Switches以发送到路由器的数据包发送到路由器向恶意节点而不是路由器的恶意节点,发送重定向以告诉主机将其流量发送到其他地方,发送未经请求的ARP答复,响应ARP请求等。所有这些都可以独立于实现VRRP来完成,VRRP不会引入这些漏洞。
独立于任何身份验证类型VRRP都包含一种机制(设置TTL = 255,检查收据),该机制可预防从另一个远程网络注入的VRRP数据包。这将大多数漏洞限制在本地攻击中。
VRRP不提供任何机密性。对于VRRP的正确操作,保密性不是必需的,VRRP消息中没有信息必须保密,必须将其保密。
作者要感谢Glen Zorn和Michael Lane,Clark Bremer,Hal Peterson,Tony Li,Barbara Denny,Joel Halpern,Steve Bellovin,Thomas Narten,Rob Montgomery,Rob Coltun,Rab Coltun,Radia Perlman,Russ Housley,Russ Housley,Harald Alvestre,Steve,Steve,Steve,Steve,Steve,Steve,Harald Alvestrand,Steve,Steve,Harald Alvestrand,Steve,Harald Alvestrand,Steve Bellovin,Ned Freed,Ted Hardie,Russ Housley,Bert Wijnen,Bill Fenner和Alex Zinin的评论和建议。
[802.1D] International Standard ISO/IEC 10038: 1993, ANSI/IEEE Std 802.1D, 1993 edition.
[CKSM] Braden, R., Borman, D. and C. Partridge, "Computing the Internet checksum", RFC 1071, September 1988.
[HSRP] Li, T., Cole, B., Morton, P. and D. Li, "Cisco Hot Standby Router Protocol (HSRP)", RFC 2281, March 1998.
[IPSTB] Higginson, P. and M. Shand, "Development of Router Clusters to Provide Fast Failover in IP Networks", Digital Technical Journal, Volume 9 Number 3, Winter 1997.
[IPX] Novell Incorporated., "IPX Router Specification", Version 1.10, October 1992.
[RFC1469] Pusateri, T., "IP Multicast over Token Ring Local Area Networks", RFC 1469, June 1993.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC2338] Knight, S., Weaver, D., Whipple, D., Hinden, R., Mitzel, D., Hunt, P., Higginson, P., Shand, M. and A. Lindem, "Virtual Router Redundancy Protocol", RFC 2338, April 1998.
[TKARCH] IBM Token-Ring Network, Architecture Reference, Publication SC30-3374-02, Third Edition, (September, 1989).
[DISC] Deering, S., Ed., "ICMP Router Discovery Messages", RFC 1256, September 1991.
[DHCP] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, March 1997.
[OSPF] Moy, J., "OSPF version 2", STD 54, RFC 2328, April 1998.
[RIP] Malkin, G., "RIP Version 2", STD 56, RFC 2453, November 1998.
- 将RFC 2338的作者移至新贡献者部分,以遵守RFC编辑策略,并将R. Hinden列为编辑。
- 从VRRP删除了身份验证方法。更改包括:
**删除了密码和基于IPSEC的身份验证的值,保留字段和值以使与RFC 2338的向后兼容;
**删除了有关可扩展安全性的部分;
**更新的安全考虑部分,以删除对不同身份验证方法的讨论,并添加了新的文本,解释了变化的动机并描述漏洞。
- 修订了第4节示例文本,并更清楚地描述了IP地址所有者,优先级等的映射。
- 澄清第7.1节的文本描述地址列表验证。
- preement_mode定义中的校正文本。
- 更改的身份验证为每个虚拟路由器而不是每个接口。
- 添加了新的小节(9.3),指出ATM巷的VRRP超出了本文档的范围。
- 澄清的文本描述了收到的数据包长度检查。
- 澄清的文本描述已收到的身份验证检查。
- 澄清的文本描述了VRID验证检查。
- 添加了新的小节(8.4),描述了不适合采用的IP地址的数据包。
- 在“安全考虑”部分中添加了澄清。
- 添加了用于计算Internet校验和的参考。
- 更新的引用和作者信息。
- 各种小型社论更改。
版权(C)互联网协会(2004)。该文件受BCP 78中包含的权利,许可和限制的约束,除此之外,作者保留了所有权利。
本文档和本文所包含的信息是按“原样”提供的,他/她代表或由(如果有),互联网社会和互联网工程工作组赞助的贡献者,他/她代表或赞助的组织。暗示,包括但不限于任何保证,此处的信息不会侵犯任何权利或任何隐含的适销性或适用于特定目的的保证。
IETF在任何知识产权或其他权利的范围或其他权利的范围内不采取任何立场能得到的;它也不代表它做出任何独立的努力来确定任何此类权利。有关RFC文件中权利的程序的信息可以在BCP 78和BCP 79中找到。
IETF秘书处的IPR披露副本以及可获得的任何许可的保证,或者可以获得该规范的实施者或用户获得一般许可或使用此类专有权的允许的结果。来自IETF在线IPR存储库,网址为http://www.ietf.org/ipr。
IETF邀请任何感兴趣的方引起其注意的任何版权,专利或专利申请,或其他可能涵盖实施此标准所需技术的专有权利。请通过ietf-ipr@ietf.org向IETF介绍信息。
RFC编辑功能的资金目前由互联网协会提供。
本文链接:https://www.kinber.cn/post/3460.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝: