idnits 2.17.1 draft-ietf-vrrp-unified-spec-05.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- ** You're using the IETF Trust Provisions' Section 6.b License Notice from 12 Sep 2009 rather than the newer Notice from 28 Dec 2009. (See https://trustee.ietf.org/license-info/) Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- == There are 2 instances of lines with multicast IPv4 addresses in the document. If these are generic example addresses, they should be changed to use the 233.252.0.x range defined in RFC 5771 == There are 1 instance of lines with non-RFC3849-compliant IPv6 addresses in the document. If these are example addresses, they should be changed. -- The draft header indicates that this document obsoletes RFC3768, but the abstract doesn't seem to directly say this. It does mention RFC3768 though, so this could be OK. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document seems to contain a disclaimer for pre-RFC5378 work, and may have content which was first submitted before 10 November 2008. The disclaimer is necessary when there are original authors that you have been unable to contact, or if some do not wish to grant the BCP78 rights to the IETF Trust. If you are able to get all authors (current and original) to grant those rights, you can and should remove the disclaimer; otherwise, the disclaimer is needed and you can ignore this comment. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (December 3, 2009) is 5230 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) ** Obsolete normative reference: RFC 2460 (Obsoleted by RFC 8200) ** Obsolete normative reference: RFC 3768 (Obsoleted by RFC 5798) -- Obsolete informational reference (is this intentional?): RFC 2338 (Obsoleted by RFC 3768) Summary: 3 errors (**), 0 flaws (~~), 3 warnings (==), 4 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 VRRP S. Nadas, Ed. 3 Internet-Draft Ericsson 4 Obsoletes: 3768 (if approved) December 3, 2009 5 Intended status: Standards Track 6 Expires: June 6, 2010 8 Virtual Router Redundancy Protocol Version 3 for IPv4 and IPv6 9 draft-ietf-vrrp-unified-spec-05 11 Abstract 13 This memo defines the Virtual Router Redundancy Protocol (VRRP) for 14 IPv4 and IPv6. It is version three (3) of the protocol and it is 15 based on VRRP (version 2) for IPv4 that is defined in RFC 3768 and on 16 draft-ieft-vrrp-ipv6-spec-08.txt. VRRP specifies an election 17 protocol that dynamically assigns responsibility for a virtual router 18 to one of the VRRP routers on a LAN. The VRRP router controlling the 19 IPv4 or IPv6 address(es) associated with a virtual router is called 20 the Master, and forwards packets sent to these IPv4 or IPv6 21 addresses. VRRP Master routers are configured with virtual IPv4 or 22 IPv6 addresses and VRRP Backup routers infer the address family of 23 the virtual addresses being carried based on the transport protocol. 24 Within a VRRP router the virtual routers in each of the IPv4 and IPv6 25 address families are a domain unto themselves and do not overlap. 26 The election process provides dynamic fail over in the forwarding 27 responsibility should the Master become unavailable. For IPv4, the 28 advantage gained from using VRRP is a higher availability default 29 path without requiring configuration of dynamic routing or router 30 discovery protocols on every end-host. For IPv6, the advantage 31 gained from using VRRP for IPv6 is a quicker switch over to back up 32 routers than can be obtained with standard IPv6 Neighbor Discover 33 (RFC 4861) mechanisms. 35 Status of this Memo 37 This Internet-Draft is submitted to IETF in full conformance with the 38 provisions of BCP 78 and BCP 79. 40 Internet-Drafts are working documents of the Internet Engineering 41 Task Force (IETF), its areas, and its working groups. Note that 42 other groups may also distribute working documents as Internet- 43 Drafts. 45 Internet-Drafts are draft documents valid for a maximum of six months 46 and may be updated, replaced, or obsoleted by other documents at any 47 time. It is inappropriate to use Internet-Drafts as reference 48 material or to cite them other than as "work in progress." 49 The list of current Internet-Drafts can be accessed at 50 http://www.ietf.org/ietf/1id-abstracts.txt. 52 The list of Internet-Draft Shadow Directories can be accessed at 53 http://www.ietf.org/shadow.html. 55 This Internet-Draft will expire on June 6, 2010. 57 Copyright Notice 59 Copyright (c) 2009 IETF Trust and the persons identified as the 60 document authors. All rights reserved. 62 This document is subject to BCP 78 and the IETF Trust's Legal 63 Provisions Relating to IETF Documents 64 (http://trustee.ietf.org/license-info) in effect on the date of 65 publication of this document. Please review these documents 66 carefully, as they describe your rights and restrictions with respect 67 to this document. Code Components extracted from this document must 68 include Simplified BSD License text as described in Section 4.e of 69 the Trust Legal Provisions and are provided without warranty as 70 described in the BSD License. 72 Table of Contents 74 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 5 75 1.1. A Note on Terminology . . . . . . . . . . . . . . . . . . 5 76 1.2. IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 77 1.3. IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 78 1.4. Requirements Language . . . . . . . . . . . . . . . . . . 7 79 1.5. Scope . . . . . . . . . . . . . . . . . . . . . . . . . . 7 80 1.6. Definitions . . . . . . . . . . . . . . . . . . . . . . . 7 81 2. Required Features . . . . . . . . . . . . . . . . . . . . . . 8 82 2.1. IPvX Address Backup . . . . . . . . . . . . . . . . . . . 8 83 2.2. Preferred Path Indication . . . . . . . . . . . . . . . . 9 84 2.3. Minimization of Unnecessary Service Disruptions . . . . . 9 85 2.4. Efficient Operation over Extended LANs . . . . . . . . . . 9 86 2.5. Sub-second Operation for IPv4 and IPv6 . . . . . . . . . . 10 87 3. VRRP Overview . . . . . . . . . . . . . . . . . . . . . . . . 10 88 4. Sample Configurations . . . . . . . . . . . . . . . . . . . . 11 89 4.1. Sample Configuration 1 . . . . . . . . . . . . . . . . . . 11 90 4.2. Sample Configuration 2 . . . . . . . . . . . . . . . . . . 13 91 5. Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 92 5.1. VRRP Packet Format . . . . . . . . . . . . . . . . . . . . 15 93 5.1.1. IPv4 Field Descriptions . . . . . . . . . . . . . . . 16 94 5.1.1.1. Source Address . . . . . . . . . . . . . . . . . . 16 95 5.1.1.2. Destination Address . . . . . . . . . . . . . . . 16 96 5.1.1.3. TTL . . . . . . . . . . . . . . . . . . . . . . . 16 97 5.1.1.4. Protocol . . . . . . . . . . . . . . . . . . . . . 16 98 5.1.2. IPv6 Field Descriptions . . . . . . . . . . . . . . . 16 99 5.1.2.1. Source Address . . . . . . . . . . . . . . . . . . 16 100 5.1.2.2. Destination Address . . . . . . . . . . . . . . . 16 101 5.1.2.3. Hop Limit . . . . . . . . . . . . . . . . . . . . 16 102 5.1.2.4. Next Header . . . . . . . . . . . . . . . . . . . 17 103 5.2. VRRP Field Descriptions . . . . . . . . . . . . . . . . . 17 104 5.2.1. Version . . . . . . . . . . . . . . . . . . . . . . . 17 105 5.2.2. Type . . . . . . . . . . . . . . . . . . . . . . . . . 17 106 5.2.3. Virtual Rtr ID (VRID) . . . . . . . . . . . . . . . . 17 107 5.2.4. Priority . . . . . . . . . . . . . . . . . . . . . . . 17 108 5.2.5. Count IPvX Addr . . . . . . . . . . . . . . . . . . . 17 109 5.2.6. Rsvd . . . . . . . . . . . . . . . . . . . . . . . . . 18 110 5.2.7. Maximum Advertisement Interval (Max Adver Int) . . . . 18 111 5.2.8. Checksum . . . . . . . . . . . . . . . . . . . . . . . 18 112 5.2.9. IPvX Address(es) . . . . . . . . . . . . . . . . . . . 18 113 6. Protocol State Machine . . . . . . . . . . . . . . . . . . . . 19 114 6.1. Parameters per Virtual Router . . . . . . . . . . . . . . 19 115 6.2. Timers . . . . . . . . . . . . . . . . . . . . . . . . . . 20 116 6.3. State Transition Diagram . . . . . . . . . . . . . . . . . 21 117 6.4. State Descriptions . . . . . . . . . . . . . . . . . . . . 21 118 6.4.1. Initialize . . . . . . . . . . . . . . . . . . . . . . 21 119 6.4.2. Backup . . . . . . . . . . . . . . . . . . . . . . . . 22 120 6.4.3. Master . . . . . . . . . . . . . . . . . . . . . . . . 25 121 7. Sending and Receiving VRRP Packets . . . . . . . . . . . . . . 27 122 7.1. Receiving VRRP Packets . . . . . . . . . . . . . . . . . . 27 123 7.2. Transmitting VRRP Packets . . . . . . . . . . . . . . . . 28 124 7.3. Virtual Router MAC Address . . . . . . . . . . . . . . . . 29 125 7.4. IPv6 Interface Identifiers . . . . . . . . . . . . . . . . 30 126 8. Operational Issues . . . . . . . . . . . . . . . . . . . . . . 30 127 8.1. IPv4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 128 8.1.1. ICMP Redirects . . . . . . . . . . . . . . . . . . . . 30 129 8.1.2. Host ARP Requests . . . . . . . . . . . . . . . . . . 30 130 8.1.3. Proxy ARP . . . . . . . . . . . . . . . . . . . . . . 31 131 8.2. IPv6 . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 132 8.2.1. ICMPv6 Redirects . . . . . . . . . . . . . . . . . . . 31 133 8.2.2. ND Neighbor Solicitation . . . . . . . . . . . . . . . 31 134 8.2.3. Router Advertisements . . . . . . . . . . . . . . . . 32 135 8.3. IPvX . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 136 8.3.1. Potential Forwarding Loop . . . . . . . . . . . . . . 32 137 8.3.2. Recommendations regarding setting priority values . . 33 138 8.4. VRRPv3 and VRRPv2 Interoperation . . . . . . . . . . . . . 33 139 8.4.1. Assumptions . . . . . . . . . . . . . . . . . . . . . 33 140 8.4.2. VRRPv3 support of VRRPv2 . . . . . . . . . . . . . . . 33 141 8.4.3. VRRPv3 support of VRRPv2 Considerations . . . . . . . 34 142 8.4.3.1. Slow, High-Priority Masters . . . . . . . . . . . 34 143 8.4.3.2. Overwhelming VRRPv2 Backups . . . . . . . . . . . 34 144 9. Security Considerations . . . . . . . . . . . . . . . . . . . 34 145 10. Disclaimer for pre-RFC5378 work . . . . . . . . . . . . . . . 35 146 11. Contributors & Acknowledgments . . . . . . . . . . . . . . . . 36 147 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 36 148 13. References . . . . . . . . . . . . . . . . . . . . . . . . . . 37 149 13.1. Normative References . . . . . . . . . . . . . . . . . . . 37 150 13.2. Informative References . . . . . . . . . . . . . . . . . . 38 151 Appendix A. Operation over FDDI, Token Ring, and ATM LANE . . . . 39 152 A.1. Operation over FDDI . . . . . . . . . . . . . . . . . . . 39 153 A.2. Operation over Token Ring . . . . . . . . . . . . . . . . 39 154 A.3. Operation over ATM LANE . . . . . . . . . . . . . . . . . 41 155 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 41 157 1. Introduction 159 This memo defines the Virtual Router Redundancy Protocol (VRRP) for 160 IPv4 and IPv6. It is version three (3) of the protocol. It is based 161 on VRRP (version 2) for IPv4 that is defined in [RFC3768] and on 162 [I-D.ietf-vrrp-ipv6-spec]. VRRP specifies an election protocol that 163 dynamically assigns responsibility for a virtual router to one of the 164 VRRP routers on a LAN. The VRRP router controlling the IPv4 or IPv6 165 address(es) associated with a virtual router is called the Master, 166 and forwards packets sent to these IPv4 or IPv6 addresses. VRRP 167 Master routers are configured with virtual IPv4 or IPv6 addresses and 168 VRRP Backup routers infer the address family of the virtual addresses 169 being carried based on the transport protocol. Within a VRRP router 170 the virtual routers in each of the IPv4 and IPv6 address families are 171 a domain unto themselves and do not overlap. The election process 172 provides dynamic fail over in the forwarding responsibility should 173 the Master become unavailable. 175 Comments are solicited and should be addressed to the working group's 176 mailing list at vrrp@ietf.org and/or the editor. 178 VRRP provides a function similar to the proprietary protocols "Hot 179 Standby Router Protocol (HSRP)" [RFC2281] and "IP Standby Protocol" 180 [IPSTB]. 182 1.1. A Note on Terminology 184 This draft discusses both IPv4 and IPv6 operation and with respect to 185 the VRRP protocol, many of the descriptions and procedures are 186 common. In this draft, it would be less verbose to be able refer to 187 "IP" to mean either "IPv4 or IPv6". However, historically, the term 188 "IP" usually refers to IPv4. For this reason, in this specification, 189 the term "IPvX" (where X is 4 or 6) is introduced to mean either 190 "IPv4 or IPv6", in this text where the IP version matters, the 191 appropriate term is used and the use of the term "IP" is avoided. 193 1.2. IPv4 195 There are a number of methods that an IPv4 end-host can use to 196 determine its first hop router towards a particular IPv4 destination. 197 These include running (or snooping) a dynamic routing protocol such 198 as Routing Information Protocol [RFC2453] or OSPF version 2 199 [RFC2328], running an ICMP router discovery client [RFC1256] or using 200 a statically configured default route. 202 Running a dynamic routing protocol on every end-host may be 203 infeasible for a number of reasons, including administrative 204 overhead, processing overhead, security issues, or lack of a protocol 205 implementation for some platforms. Neighbor or router discovery 206 protocols may require active participation by all hosts on a network, 207 leading to large timer values to reduce protocol overhead in the face 208 of large numbers of hosts. This can result in a significant delay in 209 the detection of a lost (i.e., dead) neighbor, that may introduce 210 unacceptably long "black hole" periods. 212 The use of a statically configured default route is quite popular; it 213 minimizes configuration and processing overhead on the end-host and 214 is supported by virtually every IPv4 implementation. This mode of 215 operation is likely to persist as dynamic host configuration 216 protocols [RFC2131] are deployed, which typically provide 217 configuration for an end-host IPv4 address and default gateway. 218 However, this creates a single point of failure. Loss of the default 219 router results in a catastrophic event, isolating all end-hosts that 220 are unable to detect any alternate path that may be available. 222 The Virtual Router Redundancy Protocol (VRRP) is designed to 223 eliminate the single point of failure inherent in the static default 224 routed environment. VRRP specifies an election protocol that 225 dynamically assigns responsibility for a virtual router to one of the 226 VRRP routers on a LAN. The VRRP router controlling the IPv4 227 address(es) associated with a virtual router is called the Master, 228 and forwards packets sent to these IPv4 addresses. The election 229 process provides dynamic fail-over in the forwarding responsibility 230 should the Master become unavailable. Any of the virtual router's 231 IPv4 addresses on a LAN can then be used as the default first hop 232 router by end-hosts. The advantage gained from using VRRP is a 233 higher availability default path without requiring configuration of 234 dynamic routing or router discovery protocols on every end-host. 236 1.3. IPv6 238 IPv6 hosts on a LAN will usually learn about one or more default 239 routers by receiving Router Advertisements sent using the IPv6 240 Neighbor Discovery protocol [RFC4861]. The Router Advertisements are 241 multicast periodically at a rate that the hosts will learn about the 242 default routers in a few minutes. They are not sent frequently 243 enough to rely on the absence of the router advertisement to detect 244 router failures. 246 Neighbor Discovery (ND) includes a mechanism called Neighbor 247 Unreachability Detection to detect the failure of a neighbor node 248 (router or host) or the forwarding path to a neighbor. This is done 249 by sending unicast ND Neighbor Solicitation messages to the neighbor 250 node. To reduce the overhead of sending Neighbor Solicitations, they 251 are only sent to neighbors to which the node is actively sending 252 traffic and only after there has been no positive indication that the 253 router is up for a period of time. Using the default parameters in 254 ND, it will take a host about 38 seconds to learn that a router is 255 unreachable before it will switch to another default router. This 256 delay would be very noticeable to users and cause some transport 257 protocol implementations to timeout. 259 While the ND unreachability detection could be made quicker by 260 changing the parameters to be more aggressive (note that the current 261 lower limit for this is 5 seconds), this would have the downside of 262 significantly increasing the overhead of ND traffic. Especially when 263 there are many hosts all trying to determine the reachability of one 264 of more routers. 266 The Virtual Router Redundancy Protocol for IPv6 provides a much 267 faster switch over to an alternate default router than can be 268 obtained using standard ND procedures. Using VRRP a backup router 269 can take over for a failed default router in around three seconds 270 (using VRRP default parameters). This is done with out any 271 interaction with the hosts and a minimum amount of VRRP traffic. 273 1.4. Requirements Language 275 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 276 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 277 document are to be interpreted as described in [RFC2119]. 279 1.5. Scope 281 The remainder of this document describes the features, design goals, 282 and theory of operation of VRRP. The message formats, protocol 283 processing rules and state machine that guarantee convergence to a 284 single Virtual Router Master are presented. Finally, operational 285 issues related to MAC address mapping, handling of ARP requests, 286 generation of ICMP redirect messages, and security issues are 287 addressed. 289 1.6. Definitions 291 VRRP Router A router running the Virtual Router 292 Redundancy Protocol. It may participate as 293 one or more virtual routers. 295 Virtual Router An abstract object managed by VRRP that acts 296 as a default router for hosts on a shared 297 LAN. It consists of a Virtual Router 298 Identifier and either a set of associated 299 IPv4 addresses or a set of associated IPv6 300 addresses across a common LAN. A VRRP Router 301 may backup one or more virtual routers. 303 IP Address Owner The VRRP router that has the virtual router's 304 IPvX address(es) as real interface 305 address(es). This is the router that, when 306 up, will respond to packets addressed to one 307 of these IPvX addresses for ICMP pings, TCP 308 connections, etc. 310 Primary IP Address In IPv4, an IPv4 address selected from the 311 set of real interface addresses. One 312 possible selection algorithm is to always 313 select the first address. In IPv4 mode, VRRP 314 advertisements are always sent using the 315 primary IPv4 address as the source of the 316 IPv4 packet. In IPv6, the link-local address 317 of the interface over which the packet is 318 transmitted is used. 320 Virtual Router Master The VRRP router that is assuming the 321 responsibility of forwarding packets sent to 322 the IPvX address(es) associated with the 323 virtual router, and answering ARP requests 324 for these IPv4 address(es) or and answering 325 ND requests for these IPv6 address(es). Note 326 that if the IPvX address owner is available, 327 then it will always become the Master. 329 Virtual Router Backup The set of VRRP routers available to assume 330 forwarding responsibility for a virtual 331 router should the current Master fail. 333 2. Required Features 335 This section outlines the set of features that were considered 336 mandatory and that guided the design of VRRP. 338 2.1. IPvX Address Backup 340 Backup of an IPvX address or addresses is the primary function of the 341 Virtual Router Redundancy Protocol. While providing election of a 342 Virtual Router Master and the additional functionality described 343 below, the protocol should strive to: 345 o Minimize the duration of black holes. 347 o Minimize the steady state bandwidth overhead and processing 348 complexity. 350 o Function over a wide variety of multiaccess LAN technologies 351 capable of supporting IPvX traffic. 353 o Allow multiple virtual routers on a network for load balancing. 355 o Support of multiple logical IPvX subnets on a single LAN segment. 357 2.2. Preferred Path Indication 359 A simple model of Master election among a set of redundant routers is 360 to treat each router with equal preference and claim victory after 361 converging to any router as Master. However, there are likely to be 362 many environments where there is a distinct preference (or range of 363 preferences) among the set of redundant routers. For example, this 364 preference may be based upon access link cost or speed, router 365 performance or reliability, or other policy considerations. The 366 protocol should allow the expression of this relative path preference 367 in an intuitive manner, and guarantee Master convergence to the most 368 preferential router currently available. 370 2.3. Minimization of Unnecessary Service Disruptions 372 Once Master election has been performed then any unnecessary 373 transitions between Master and Backup routers can result in a 374 disruption in service. The protocol should ensure after Master 375 election that no state transition is triggered by any Backup router 376 of equal or lower preference as long as the Master continues to 377 function properly. 379 Some environments may find it beneficial to avoid the state 380 transition triggered when a router becomes available that is 381 preferred over the current Master. It may be useful to support an 382 override of the immediate convergence to the preferred path. 384 2.4. Efficient Operation over Extended LANs 386 Sending IPvX packets (that is, sending either IPv4 or IPv6) on a 387 multiaccess LAN requires mapping from an IPvX address to a MAC 388 address. The use of the virtual router MAC address in an extended 389 LAN employing learning bridges can have a significant effect on the 390 bandwidth overhead of packets sent to the virtual router. If the 391 virtual router MAC address is never used as the source address in a 392 link level frame then the station location is never learned, 393 resulting in flooding of all packets sent to the virtual router. To 394 improve the efficiency in this environment the protocol should: 1) 395 use the virtual router MAC as the source in a packet sent by the 396 Master to trigger station learning; 2) trigger a message immediately 397 after transitioning to Master to update the station learning; and 3) 398 trigger periodic messages from the Master to maintain the station 399 learning cache. 401 2.5. Sub-second Operation for IPv4 and IPv6 403 Sub-second detection of Master VRRP router failure is needed in both 404 IPv4 and IPv6 environments. Earlier work proposed sub-second 405 operation was for IPv6; this specification leverages that earlier 406 approach for IPv4 and IPv6. 408 One possible problematic scenario when using small VRRP_Advertisement 409 intervals may occur when a router is delivering more packets onto the 410 LAN than can be accomodated, and so a queue builds up in the router. 411 It is possible that packets being transmitted onto the VRRP-protected 412 LAN could see larger queueing delay than the the smallest VRRP 413 Advertisement_Interval. In this case, the Master_Down_Interval will 414 be small enough so that normal queuing delays might cause a VRRP 415 backup to conclude that the master is down, and therefore promote 416 itself to master. Very shortly afterwards, the delayed VRRP packets 417 from the master causing a switch back to backup status. Furthermore, 418 this process can repeat many times per second, causing significant 419 disruption to traffic. Priority forwarding of VRRP packets should be 420 considered to mitigate this problem. It should be possible for a 421 VRRP master to observe that this situation is occurring frequently 422 and at least log the problem. 424 3. VRRP Overview 426 VRRP specifies an election protocol to provide the virtual router 427 function described earlier. All protocol messaging is performed 428 using either IPv4 or IPv6 multicast datagrams, thus the protocol can 429 operate over a variety of multiaccess LAN technologies supporting 430 IPvX multicast. Each link of a VRRP virtual router has a single 431 well-known MAC address allocated to it. This document currently only 432 details the mapping to networks using the IEEE 802 48-bit MAC 433 address. The virtual router MAC address is used as the source in all 434 periodic VRRP messages sent by the Master router to enable bridge 435 learning in an extended LAN. 437 A virtual router is defined by its virtual router identifier (VRID) 438 and a set of either IPv4 or IPv6 address(es). A VRRP router may 439 associate a virtual router with its real address on an interface. 440 The scope of each virtual router is restricted to a single LAN. A 441 VRRP router may be configured with additional virtual router mappings 442 and priority for virtual routers it is willing to backup. The 443 mapping between VRID and its IPvX address(es) must be coordinated 444 among all VRRP routers on a LAN. 446 There is no restriction against reusing a VRID with a different 447 address mapping on different LANs. Nor is there a restriction 448 against using the same virtual router identifier number for a set of 449 IPv4 addresses and a set of IPv6 addresses; however, these are two 450 different virtual routers. 452 To minimize network traffic, only the Master for each virtual router 453 sends periodic VRRP Advertisement messages. A Backup router will not 454 attempt to preempt the Master unless it has higher priority. This 455 eliminates service disruption unless a more preferred path becomes 456 available. It's also possible to administratively prohibit all 457 preemption attempts. The only exception is that a VRRP router will 458 always become Master of any virtual router associated with addresses 459 it owns. If the Master becomes unavailable then the highest priority 460 Backup will transition to Master after a short delay, providing a 461 controlled transition of the virtual router responsibility with 462 minimal service interruption. 464 The VRRP protocol design provides rapid transition from Backup to 465 Master to minimize service interruption, and incorporates 466 optimizations that reduce protocol complexity while guaranteeing 467 controlled Master transition for typical operational scenarios. The 468 optimizations result in an election protocol with minimal runtime 469 state requirements, minimal active protocol states, and a single 470 message type and sender. The typical operational scenarios are 471 defined to be two redundant routers and/or distinct path preferences 472 among each router. A side effect when these assumptions are violated 473 (i.e., more than two redundant paths all with equal preference) is 474 that duplicate packets may be forwarded for a brief period during 475 Master election. However, the typical scenario assumptions are 476 likely to cover the vast majority of deployments, loss of the Master 477 router is infrequent, and the expected duration in Master election 478 convergence is quite small ( << 1 second ). Thus the VRRP 479 optimizations represent significant simplifications in the protocol 480 design while incurring an insignificant probability of brief network 481 degradation. 483 4. Sample Configurations 485 4.1. Sample Configuration 1 487 The following figure shows a simple network with two VRRP routers 488 implementing one virtual router. 490 +-----------+ +-----------+ 491 | Rtr1 | | Rtr2 | 492 |(MR VRID=1)| |(BR VRID=1)| 493 | | | | 494 VRID=1 +-----------+ +-----------+ 495 IPvX A--------->* *<---------IPvX B 496 | | 497 | | 498 ----------------+------------+-----+----------+----------+----------+-- 499 ^ ^ ^ ^ 500 | | | | 501 default rtr IPvX addrs-------> (IPvX A) (IPvX A) (IPvX A) (IPvX A) 502 | | | | 503 IPvX H1->* IpvX H2->* IPxX H3->* IpvX H4->* 504 +--+--+ +--+--+ +--+--+ +--+--+ 505 | H1 | | H2 | | H3 | | H4 | 506 +-----+ +-----+ +--+--+ +--+--+ 507 Legend: 508 --+---+---+-- = Ethernet, Token Ring, or FDDI 509 H = Host computer 510 MR = Master Router 511 BR = Backup Router 512 * = IPvX Address, X is 4 everywhere in IPv4 case 513 X is 6 everywhere in IPv6 case 514 (IPvX) = default router for hosts 516 Eliminating all mention of VRRP (VRID=1) from the figure above leaves 517 it as a typical deployment. 519 In the IPv4 case (that is, IPvX is IPv4 everywhere in the figure), 520 each router is permanently assigned an IPv4 address on the LAN 521 interface (Rtr1 is assigned IPv4 A and Rtr2 is assigned IPv4 B), and 522 each host installs a static default route through one of the routers 523 (in this example they all use Rtr1's IPv4 A). 525 In the IPv6 case,(that is, IPvX is IPv6 everywhere in the figure), 526 each router has a link-local IPv6 address on the LAN interface (Rtr1 527 is assigned IPv6 Link-Local A and Rtr2 is assigned IPv6 Link-Local 528 B), and each host learns a default route from Router Advertisements 529 through one of the routers (in this example they all use Rtr1's IPv6 530 Link-Local A). 532 Moving to an IPv4 VRRP environment, each router has the exact same 533 permanently assigned IPv4 address. Rtr1 is said to be the IPv4 534 address owner of IPv4 A, and Rtr2 is the IP address owner of IPv4 B. 535 A virtual router is then defined by associating a unique identifier 536 (the virtual router ID) with the address owned by a router. 538 Moving to an IPv6 VRRP environment, each router has the exact same 539 Link-Local IPv6 address. Rtr1 is said to be the IPv6 address owner 540 of IPv6 A, and Rtr2 is the IPv6 address owner of IPv6 B. A virtual 541 router is then defined by associating a unique identifier (the 542 virtual router ID) with the address owned by a router. 544 Finally, in both the IPv4 and IPv6 cases, the VRRP protocol manages 545 virtual router fail over to a backup router. 547 The IPv4 example above shows a virtual router configured to cover the 548 IPv4 address owned by Rtr1 (VRID=1,IPv4_Address=A). When VRRP is 549 enabled on Rtr1 for VRID=1 it will assert itself as Master, with 550 priority=255, since it is the IP address owner for the virtual router 551 IP address. When VRRP is enabled on Rtr2 for VRID=1 it will 552 transition to Backup, with priority=100 (the default priority is 100) 553 since it is not the IPv4 address owner. If Rtr1 should fail then the 554 VRRP protocol will transition Rtr2 to Master, temporarily taking over 555 forwarding responsibility for IPv4 A to provide uninterrupted service 556 to the hosts. When Rtr1 returns to service it will re-assert itself 557 as Master. 559 The IPv6 example above shows a virtual router configured to cover the 560 IPv6 address owned by Rtr1 (VRID=1,IPv6_Address=A). When VRRP is 561 enabled on Rtr1 for VRID=1 it will assert itself as Master, with 562 priority=255, since it is the IPv6 address owner for the virtual 563 router IPv6 address. When VRRP is enabled on Rtr2 for VRID=1 it will 564 transition to Backup, with priority=100 (the default priority is 100) 565 since it is not the IPv6 address owner. If Rtr1 should fail then the 566 VRRP protocol will transition Rtr2 to Master, temporarily taking over 567 forwarding responsibility for IPv6 A to provide uninterrupted service 568 to the hosts. 570 Note that in both cases, in this example IPvX B is not backed up, it 571 is only used by Rtr2 as its interface address. In order to backup 572 IPvX B, a second virtual router must be configured. This is shown in 573 the next section. 575 4.2. Sample Configuration 2 577 The following figure shows a configuration with two virtual routers 578 with the hosts splitting their traffic between them. 580 +-----------+ +-----------+ 581 | Rtr1 | | Rtr2 | 582 |(MR VRID=1)| |(BR VRID=1)| 583 |(BR VRID=2)| |(MR VRID=2)| 584 VRID=1 +-----------+ +-----------+ VRID=2 585 IPvX A -------->* *<---------- IPvX B 586 | | 587 | | 588 ----------------+------------+-----+----------+----------+----------+-- 589 ^ ^ ^ ^ 590 | | | | 591 default rtr IPvX addrs -----> (IPvX A) (IPvX A) (IPvX B) (IPvX B) 592 | | | | 593 IPvX H1->* IpvX H2->* IPxX H3->* IpvX H4->* 594 +--+--+ +--+--+ +--+--+ +--+--+ 595 | H1 | | H2 | | H3 | | H4 | 596 +-----+ +-----+ +--+--+ +--+--+ 597 Legend: 598 ---+---+---+-- = Ethernet, Token Ring, or FDDI 599 H = Host computer 600 MR = Master Router 601 BR = Backup Router 602 * = IPvX Address, X is 4 everywhere in IPv4 case 603 X is 6 everywhere in IPv6 case 604 (IPvX) = default router for hosts 606 In the IPv4 example above (that is, IPvX is IPv4 everywhere in the 607 figure), half of the hosts have configured a static route through 608 Rtr1's IPv4 A and half are using Rtr2's IPv4 B. The configuration of 609 virtual router VRID=1 is exactly the same as in the first example 610 (see section 4.1), and a second virtual router has been added to 611 cover the IPv4 address owned by Rtr2 (VRID=2, IPv4_Address=B). In 612 this case Rtr2 will assert itself as Master for VRID=2 while Rtr1 613 will act as a backup. This scenario demonstrates a deployment 614 providing load splitting when both routers are available while 615 providing full redundancy for robustness. 617 In the IPv6 example above (that is, IPvX is IPv6 everywhere in the 618 figure), half of the hosts have learned a default route through 619 Rtr1's IPv6 A and half are using Rtr2's IPv6 B. The configuration of 620 virtual router VRID=1 is exactly the same as in the first example 621 (see section 4.1), and a second virtual router has been added to 622 cover the IPv6 address owned by Rtr2 (VRID=2, IPv6_Address=B). In 623 this case Rtr2 will assert itself as Master for VRID=2 while Rtr1 624 will act as a backup. This scenario demonstrates a deployment 625 providing load splitting when both routers are available while 626 providing full redundancy for robustness. 628 Note that the details of load balancing are out of scope of this 629 document. However, in a case where the servers need different 630 weights, it may not make sense to rely on router advertisements alone 631 to balance the host load between the routers. 633 5. Protocol 635 The purpose of the VRRP packet is to communicate to all VRRP routers 636 the priority and the state of the Master router associated with the 637 Virtual Router ID. 639 When VRRP is protecting an IPv4 address, VRRP packets are sent 640 encapsulated in IPv4 packets. They are sent to the IPv4 multicast 641 address assigned to VRRP. 643 When VRRP is protecting an IPv6 address, VRRP packets are sent 644 encapsulated in IPv6 packets. They are sent to the IPv6 multicast 645 address assigned to VRRP. 647 5.1. VRRP Packet Format 649 This section defines the format of the VRRP packet and the relevant 650 fields in the IP header. 652 0 1 2 3 653 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 654 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 655 | IPv4 Fields or IPv6 Fields | 656 ... ... 657 | | 658 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 659 |Version| Type | Virtual Rtr ID| Priority |Count IPvX Addr| 660 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 661 |(rsvd) | Max Adver Int | Checksum | 662 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 663 | | 664 + + 665 | IPvX Address(es) | 666 + + 667 + + 668 + + 669 + + 670 | | 671 + + 672 | | 673 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 675 5.1.1. IPv4 Field Descriptions 677 5.1.1.1. Source Address 679 The primary IPv4 address of the interface the packet is being sent 680 from. 682 5.1.1.2. Destination Address 684 The IPv4 multicast address as assigned by the IANA for VRRP is: 686 224.0.0.18 688 This is a link local scope multicast address. Routers MUST NOT 689 forward a datagram with this destination address regardless of its 690 TTL. 692 5.1.1.3. TTL 694 The TTL MUST be set to 255. A VRRP router receiving a packet with 695 the TTL not equal to 255 MUST discard the packet. 697 5.1.1.4. Protocol 699 The IPv4 protocol number assigned by the IANA for VRRP is 112 700 (decimal). 702 5.1.2. IPv6 Field Descriptions 704 5.1.2.1. Source Address 706 The IPv6 link-local address of the interface the packet is being sent 707 from. 709 5.1.2.2. Destination Address 711 The IPv6 multicast address as assigned by the IANA for VRRP is: 713 FF02:0:0:0:0:0:XXXX:XXXX 715 This is a link-local scope multicast address. Routers MUST NOT 716 forward a datagram with this destination address regardless of its 717 Hop Limit. 719 5.1.2.3. Hop Limit 721 The Hop Limit MUST be set to 255. A VRRP router receiving a packet 722 with the Hop Limit not equal to 255 MUST discard the packet. 724 5.1.2.4. Next Header 726 The IPv6 Next Header protocol assigned by the IANA for VRRP is 112 727 (decimal). 729 5.2. VRRP Field Descriptions 731 5.2.1. Version 733 The version field specifies the VRRP protocol version of this packet. 734 This document defines version 3. 736 5.2.2. Type 738 The type field specifies the type of this VRRP packet. The only 739 packet type defined in this version of the protocol is: 741 1 ADVERTISEMENT 743 A packet with unknown type MUST be discarded. 745 5.2.3. Virtual Rtr ID (VRID) 747 The Virtual Router Identifier (VRID) field identifies the virtual 748 router this packet is reporting status for. 750 5.2.4. Priority 752 The priority field specifies the sending VRRP router's priority for 753 the virtual router. Higher values equal higher priority. This field 754 is an 8 bit unsigned integer field. 756 The priority value for the VRRP router that owns the IPvX address 757 associated with the virtual router MUST be 255 (decimal). 759 VRRP routers backing up a virtual router MUST use priority values 760 between 1-254 (decimal). The default priority value for VRRP routers 761 backing up a virtual router is 100 (decimal). 763 The priority value zero (0) has special meaning indicating that the 764 current Master has stopped participating in VRRP. This is used to 765 trigger Backup routers to quickly transition to Master without having 766 to wait for the current Master to timeout. 768 5.2.5. Count IPvX Addr 770 The number of either IPv4 addresses or IPv6 addresses contained in 771 this VRRP advertisement. The minimum value is 1. 773 5.2.6. Rsvd 775 This field MUST be set to zero on transmission and ignored on 776 reception. 778 5.2.7. Maximum Advertisement Interval (Max Adver Int) 780 The Maximum Advertisement Interval is a 12-bit field that indicates 781 the time interval (in centiseconds) between ADVERTISEMENTS. The 782 default is 100 centiseconds (1 second). 784 Note that higher priority Master routers with slower transmission 785 rates than their Backup routers are unstable. This is because low 786 priority nodes configured to faster rates could come online and 787 decide they should be masters before they have heard anything from 788 the higher priority master with a slower rate. When this happens, it 789 is temporary: once the lower priority node does hear from the higher 790 priority master, it will relenquish mastership. 792 5.2.8. Checksum 794 The checksum field is used to detect data corruption in the VRRP 795 message. 797 The checksum is the 16-bit one's complement of the one's complement 798 sum of the entire VRRP message starting with the version field and a 799 "pseudo-header" as defined in section 8.1 of [RFC2460]. The next 800 header field in the "pseudo-header" should be set to 112 (decimal) 801 for VRRP. For computing the checksum, the checksum field is set to 802 zero. See RFC1071 for more detail [RFC1071]. 804 5.2.9. IPvX Address(es) 806 One or more IPvX addresses associated with the virtual router. The 807 number of addresses included is specified in the "Count IP Addr" 808 field. These fields are used for troubleshooting misconfigured 809 routers. If more than one address is sent it is recommended that all 810 routers be configured to send these addresses in the same order to 811 make it easier to do this comparison. 813 For IPv4 addresses, one or more IPv4 addresses that are backed up by 814 the virtual router. 816 For IPv6, the first address must be the IPv6 link-local address 817 associated with the virtual router. 819 This field contains either one or more IPv4 addresses or one or more 820 IPv6 addresses, that is, IPv4 and IPv6 MUST NOT both be carried in 821 one IPvX Address field. 823 6. Protocol State Machine 825 6.1. Parameters per Virtual Router 827 VRID Virtual Router Identifier. Configurable item 828 in the range 1-255 (decimal). There is no 829 default. 831 Priority Priority value to be used by this VRRP router 832 in Master election for this virtual router. 833 The value of 255 (decimal) is reserved for 834 the router that owns the IPvX address 835 associated with the virtual router. The 836 value of 0 (zero) is reserved for Master 837 router to indicate it is releasing 838 responsibility for the virtual router. The 839 range 1-254 (decimal) is available for VRRP 840 routers backing up the virtual router. 841 Higher values indicate higher priorities. 842 The default value is 100 (decimal). 844 IPv4_Addresses One or more IPv4 addresses associated with 845 this virtual router. Configured item with no 846 default. 848 IPv6_Addresses One or more IPv6 addresses associated with 849 this virtual router. Configured item. No 850 default. The first address must be the Link- 851 Local address associated with the virtual 852 router. 854 Advertisement_Interval Time interval between ADVERTISEMENTS 855 (centiseconds). Default is 100 centiseconds 856 (1 second). 858 Master_Adver_Interval Advertisement interval contained in 859 ADVERTISEMENTS received from the Master 860 (centiseconds). This value is saved by 861 virtual routers in Backup state and used to 862 compute Skew_Time and Master_Down_Interval. 863 The initial value is same as 864 Advertisement_Interval. 866 Skew_Time Time to skew Master_Down_Interval in 867 centiseconds. Calculated as: 869 (((256 - priority) * Master_Adver_Interval) / 870 256). 872 Master_Down_Interval Time interval for Backup to declare Master 873 down (centiseconds). Calculated as: 875 (3 * Master_Adver_Interval) + Skew_time 877 Preempt_Mode Controls whether a (starting or restarting) 878 higher priority Backup router preempts a 879 lower priority Master router. Values are 880 True to allow preemption and False to 881 prohibit preemption. Default is True. 883 Note: Exception is that the router that owns 884 the IPvX address associated with the virtual 885 router always preempts independent of the 886 setting of this flag. 888 Accept_Mode Controls whether a virtual router in Master 889 state will accept packets addressed to the 890 address owner's IPvX address as its own if it 891 is not the IPvX address owner. The default 892 is False. Deployments that rely on, for 893 example, pinging the address owner's IPvX 894 address may wish to configure Accept_Mode to 895 True. 897 Note: IPv6 Neighbor Solicitations and 898 Neighbor Advertisements MUST NOT be dropped 899 when Accept_Mode is False. 901 Virtual_Router_MAC_Address The MAC address used for the source MAC 902 address in VRRP advertisements and advertised 903 in ARP responses as the MAC address to use 904 for IP_Addresses. 906 6.2. Timers 908 Master_Down_Timer Timer that fires when ADVERTISEMENT has not 909 been heard for Master_Down_Interval. 911 Adver_Timer Timer that fires to trigger sending of 912 ADVERTISEMENT based on 913 Advertisement_Interval. 915 6.3. State Transition Diagram 917 +---------------+ 918 +--------->| |<-------------+ 919 | | Initialize | | 920 | +------| |----------+ | 921 | | +---------------+ | | 922 | | | | 923 | V V | 924 +---------------+ +---------------+ 925 | |---------------------->| | 926 | Master | | Backup | 927 | |<----------------------| | 928 +---------------+ +---------------+ 930 6.4. State Descriptions 932 In the state descriptions below, the state names are identified by 933 {state-name}, and the packets are identified by all upper case 934 characters. 936 A VRRP router implements an instance of the state machine for each 937 virtual router election it is participating in. 939 6.4.1. Initialize 941 The purpose of this state is to wait for a Startup event, that is, an 942 implementation defined mechanism that initiates the protocol once it 943 has been configured. The configuration mechanism is out of scope of 944 this specification . 946 (100) If a Startup event is received, then: 948 (105) - If the Priority = 255 (i.e., the router owns the IPvX 949 address associated with the virtual router) then: 951 (110) + Send an ADVERTISEMENT 953 (115) + If the protected IPvX address is an IPv4 address: 955 (120) * Broadcast a gratuitous ARP request containing the 956 virtual router MAC address for each IP address associated 957 with the virtual router. 959 (125) + else // IPv6 961 (130) * For each IPv6 address associated with the Virtual 962 Router, send an unsolicited ND Neighbor Advertisement with 963 the Router Flag (R) set, the Solicited Flag (S) unset, the 964 Override flag (O) set, the Target Address set to the IPv6 965 address of the Virtual Router, and the Target Link Layer 966 address set to the virtual router MAC address. 968 (135) +endif // was prot addr IPv4? 970 (140) + Set the Adver_Timer to Advertisement_Interval 972 (145) + Transition to the {Master} state 974 (150) - else // rtr does not own virt addr 976 (155) + Set Master_Adver_Interval to Advertisement_Interval 978 (160) + Set the Master_Down_Timer to Master_Down_Interval 980 (165) + Transition to the {Backup} state 982 (170) -endif // pri was not 255 984 (175) endif // startup event was recv 986 6.4.2. Backup 988 The purpose of the {Backup} state is to monitor the availability and 989 state of the Master Router. 991 (300) While in this state, a VRRP router MUST do the following: 993 (305) - If the protected IPvX address is an IPv4 address: 995 (310) + MUST NOT respond to ARP requests for the IPv4 996 address(s) associated with the virtual router. 998 (315) - else // prot addr is v6 1000 (320) + MUST NOT respond to ND Neighbor Solicitation messages 1001 for the IPv6 address(es) associated with the virtual router. 1003 (325) + MUST NOT send ND Router Advertisement messages for the 1004 virtual router. 1006 (330) -endif // was prot v4? 1008 (335) - MUST discard packets with a destination link layer MAC 1009 address equal to the virtual router MAC address. 1011 (340) - MUST NOT accept packets addressed to the IPvX address(es) 1012 associated with the virtual router. 1014 (345) - If a Shutdown event is received, then: 1016 (350) + Cancel the Master_Down_Timer 1018 (355) + Transition to the {Initialize} state 1020 (360) -endif // shutdown recv 1022 (365) - If the Master_Down_Timer fires, then: 1024 (370) + Send an ADVERTISEMENT 1026 (375) + If the protected IPvX address is an IPv4 address: 1028 (380) * Broadcast a gratuitous ARP request on that interface 1029 containing the virtual router MAC address for each IPv4 1030 address associated with the virtual router 1032 (385) + else // ipv6 1033 (390) * Compute and join the Solicited-Node multicast 1034 address [RFC4291] for the IPv6 address(es) addresses 1035 associated with the Virtual Router. 1037 (395) * For each IPv6 address associated with the Virtual 1038 Router, send an unsolicited ND Neighbor Advertisement with 1039 the Router Flag (R) set, the Solicited Flag (S) unset, the 1040 Override flag (O) set, the Target Address set to the IPv6 1041 address of the Virtual Router, and the Target Link Layer 1042 address set to the virtual router MAC address. 1044 (400) +endif // was prot addr ipv4? 1046 (405) + Set the Adver_Timer to Advertisement_Interval 1048 (410) + Transition to the {Master} state 1050 (415) -endif // master down fired 1052 (420) - If an ADVERTISEMENT is received, then: 1054 (425) + If the Priority in the ADVERTISEMENT is Zero, then: 1056 (430) * Set the Master_Down_Timer to Skew_Time 1058 (440) + else // pri non-zero 1060 (445) * If Preempt_Mode is False, or If the Priority in the 1061 ADVERTISEMENT is greater than or equal to the local 1062 Priority, then: 1064 (450) @ Set Master_Adver_Interval to Adver Interval 1065 contained in the ADVERTISEMENT. 1067 (455) @ Recompute the Master_Down_Interval 1069 (460) @ Reset the Master_Down_Timer to 1070 Master_Down_Interval 1072 (465) * else // preempt was true or pri was less 1074 (470) @ Discard the ADVERTISEMENT 1076 (475) *endif // preempt test 1078 (480) +endif // was pri zero? 1080 (485) -endif // was adv recv? 1082 (490) endwhile // backup state 1084 6.4.3. Master 1086 While in the {Master} state the router functions as the forwarding 1087 router for the IPvX address(es) associated with the virtual router. 1089 Note that in the Master state the Preempt_Mode Flag is not 1090 considered. 1092 (600) While in this state, a VRRP router MUST do the following: 1094 (605) - If the protected IPvX address is an IPv4 address: 1096 (610) + MUST respond to ARP requests for the IPv4 address(es) 1097 associated with the virtual router. 1099 (615) - else // ipv6 1101 (620) + MUST be a member of the Solicited-Node multicast 1102 address for the IPv6 address(es) associated with the virtual 1103 router. 1105 (625) + MUST respond to ND Neighbor Solicitation message for 1106 the IPv6 address(es) associated with the virtual router. 1108 (630) ++ MUST send ND Router Advertisements for the virtual 1109 router. 1111 (635) ++ if Accept_mode is False: MUST NOT drop IPv6 Neighbor 1112 Solicitations and Neighbor Advertisements. 1114 (640) +-endif // ipv4? 1116 (645) - MUST forward packets with a destination link layer MAC 1117 address equal to the virtual router MAC address. 1119 (650) - MUST accept packets addressed to the IPvX address(es) 1120 associated with the virtual router if it is the IPvX address owner 1121 or if Accept_Mode is True. Otherwise, MUST NOT accept these 1122 packets. 1124 (655) - If a Shutdown event is received, then: 1126 (660) + Cancel the Adver_Timer 1128 (665) + Send an ADVERTISEMENT with Priority = 0 1130 (670) + Transition to the {Initialize} state 1132 (675) -endif // shutdown recv 1134 (680) - If the Adver_Timer fires, then: 1136 (685) + Send an ADVERTISEMENT 1138 (690) + Reset the Adver_Timer to Advertisement_Interval 1140 (695) -endif // advert timer fired 1142 (700) - If an ADVERTISEMENT is received, then: 1144 (705) -+ If the Priority in the ADVERTISEMENT is Zero, then: 1146 (710) -* Send an ADVERTISEMENT 1148 (715) -* Reset the Adver_Timer to Advertisement_Interval 1150 (720) -+ else // pri was nonzero 1151 (725) -* If the Priority in the ADVERTISEMENT is greater 1152 than the local Priority, 1154 (730) -* or 1156 (735) -* If the Priority in the ADVERTISEMENT is equal to 1157 the local Priority and the primary IPvX Address of the 1158 sender is greater than the local primary IPvX Address, then: 1160 (740) -@ Cancel Adver_Timer 1162 (745) -@ Set Master_Adver_Interval to Adver Interval 1163 contained in the ADVERTISEMENT 1165 (750) -@ Recompute the Skew_Time 1167 (755) @ Recompute the Master_Down_Interval 1169 (760) @ Set Master_Down_Timer to Master_Down_Interval 1171 (765) @ Transition to the {Backup} state 1173 (770) * else // new master logic 1175 (775) @ Discard ADVERTISEMENT 1177 (780) *endif // new master detected 1179 (785) +endif // was pri zero? 1181 (790) -endif // advert recvd 1183 (795) endwhile // in master 1185 7. Sending and Receiving VRRP Packets 1187 7.1. Receiving VRRP Packets 1189 Performed the following functions when a VRRP packet is received: 1191 - If the received packet is an IPv4 packet: 1193 + MUST verify that the IPv4 TTL is 255. 1195 - else // ipv6 recv 1197 + MUST verify that the IPv6 Hop Limit is 255. 1199 - endif 1201 - MUST verify the VRRP version is 3 1203 - MUST verify that the received packet contains the complete VRRP 1204 packet (including fixed fields, and IPvX Address. 1206 - MUST verify the VRRP checksum 1208 - MUST verify that the VRID is configured on the receiving 1209 interface and the local router is not the IPvX Address owner 1210 (Priority equals 255 (decimal)). 1212 If any one of the above checks fails, the receiver MUST discard the 1213 packet, SHOULD log the event and MAY indicate via network management 1214 that an error occurred. 1216 - MAY verify that "Count IPvX Addrs" and the list of IPvX Address 1217 matches the IPvX Address(es) configured for the VRID 1219 If the above check fails, the receiver SHOULD log the event and MAY 1220 indicate via network management that a misconfiguration was detected. 1222 7.2. Transmitting VRRP Packets 1224 The following operations MUST be performed when transmitting a VRRP 1225 packet. 1227 - Fill in the VRRP packet fields with the appropriate virtual 1228 router configuration state 1230 - Compute the VRRP checksum 1232 - If the protected address is an IPv4 address: 1234 + Set the source MAC address to Virtual Router MAC Address 1236 + Set the source IPv4 address to interface primary IPv4 address 1238 - else // ipv6 1240 + Set the source MAC address to Virtual Router MAC Address 1242 + Set the source IPv6 address to interface link-local IPv6 1243 address 1245 - endif 1247 - Set the IPvX protocol to VRRP 1249 - Send the VRRP packet to the VRRP IPvX multicast group 1251 Note: VRRP packets are transmitted with the virtual router MAC 1252 address as the source MAC address to ensure that learning bridges 1253 correctly determine the LAN segment the virtual router is attached 1254 to. 1256 7.3. Virtual Router MAC Address 1258 The virtual router MAC address associated with a virtual router is an 1259 IEEE 802 MAC Address in the following format: 1261 IPv4 case: 00-00-5E-00-01-{VRID} (in hex in internet standard bit- 1262 order) 1264 The first three octets are derived from the IANA's OUI. The next two 1265 octets (00-01) indicate the address block assigned to the VRRP for 1266 IPv4 protocol. {VRID} is the VRRP Virtual Router Identifier. This 1267 mapping provides for up to 255 IPv4 VRRP routers on a network. 1269 IPv6 case: 00-00-5E-00-02-{VRID} (in hex in internet standard bit- 1270 order) 1272 The first three octets are derived from the IANA's OUI. The next two 1273 octets (00-02) indicate the address block assigned to the VRRP for 1274 IPv6 protocol. {VRID} is the VRRP Virtual Router Identifier. This 1275 mapping provides for up to 255 IPv6 VRRP routers on a network. 1277 7.4. IPv6 Interface Identifiers 1279 IPv6 Routers running VRRP MUST create their Interface Identifiers in 1280 the normal manner (e.g., RFC2464 "Transmission of IPv6 Packets over 1281 Ethernet"). They MUST NOT use the Virtual Router MAC address to 1282 create the Modified EUI-64 identifiers. 1284 This VRRP specification describes how to advertise and resolve the 1285 VRRP routers IPv6 link local address and other associated IPv6 1286 addresses into the Virtual Router MAC address. 1288 8. Operational Issues 1290 8.1. IPv4 1292 8.1.1. ICMP Redirects 1294 ICMP Redirects may be used normally when VRRP is running between a 1295 group of routers. This allows VRRP to be used in environments where 1296 the topology is not symmetric. 1298 The IPv4 source address of an ICMP redirect should be the address the 1299 end host used when making its next hop routing decision. If a VRRP 1300 router is acting as Master for virtual router(s) containing addresses 1301 it does not own, then it must determine which virtual router the 1302 packet was sent to when selecting the redirect source address. One 1303 method to deduce the virtual router used is to examine the 1304 destination MAC address in the packet that triggered the redirect. 1306 It may be useful to disable Redirects for specific cases where VRRP 1307 is being used to load share traffic between a number of routers in a 1308 symmetric topology. 1310 8.1.2. Host ARP Requests 1312 When a host sends an ARP request for one of the virtual router IPv4 1313 addresses, the Master virtual router MUST respond to the ARP request 1314 with an ARP response that indicates the virtual MAC address for the 1315 virtual router. Note that the source address of the Ethernet frame 1316 of this ARP response is the physical MAC address of the physical 1317 router. The Master virtual router MUST NOT respond with its physical 1318 MAC address in the ARP response . This allows the client to always 1319 use the same MAC address regardless of the current Master router. 1321 When a VRRP router restarts or boots, it SHOULD NOT send any ARP 1322 messages using its physical MAC address for the IPv4 address it owns, 1323 it should only send ARP messages that include Virtual MAC addresses. 1325 This may entail: 1327 o When configuring an interface, Virtual Router Master routers 1328 should broadcast a gratuitous ARP request containing the virtual 1329 router MAC address for each IPv4 address on that interface. 1331 o At system boot, when initializing interfaces for VRRP operation; 1332 delay gratuitous ARP requests and ARP responses until both the 1333 IPv4 address and the virtual router MAC address are configured. 1335 o When, for example, ssh access, to a particular VRRP router is 1336 required, an IP address known to belong to that router must be 1337 used. 1339 8.1.3. Proxy ARP 1341 If Proxy ARP is to be used on a VRRP router, then the VRRP router 1342 must advertise the Virtual Router MAC address in the Proxy ARP 1343 message. Doing otherwise could cause hosts to learn the real MAC 1344 address of the VRRP router. 1346 8.2. IPv6 1348 8.2.1. ICMPv6 Redirects 1350 ICMPv6 Redirects may be used normally when VRRP is running between a 1351 group of routers [RFC4443]. This allows VRRP to be used in 1352 environments where the topology is not symmetric (e.g., the VRRP 1353 routers do not connect to the same destinations). 1355 The IPv6 source address of an ICMPv6 redirect should be the address 1356 the end host used when making its next hop routing decision. If a 1357 VRRP router is acting as Master for virtual router(s) containing 1358 addresses it does not own, then it must determine which virtual 1359 router the packet was sent to when selecting the redirect source 1360 address. A method to deduce the virtual router used is to examine 1361 the destination MAC address in the packet that triggered the 1362 redirect. 1364 8.2.2. ND Neighbor Solicitation 1366 When a host sends an ND Neighbor Solicitation message for the virtual 1367 router IPv6 address, the Master virtual router MUST respond to the ND 1368 Neighbor Solicitation message with the virtual MAC address for the 1369 virtual router. The Master virtual router MUST NOT respond with its 1370 physical MAC address. This allows the client to always use the same 1371 MAC address regardless of the current Master router. 1373 When a Master virtual router sends an ND Neighbor Solicitation 1374 message for a host's IPv6 address, the Master virtual router MUST 1375 include the virtual MAC address for the virtual router if it sends a 1376 source link-layer address option in the neighbor solicitation 1377 message. It MUST NOT use its physical MAC address in the source 1378 link-layer address option. 1380 When a VRRP router restarts or boots, it SHOULD NOT send any ND 1381 messages with its physical MAC address for the IPv6 address it owns, 1382 it should only send ND messages that include Virtual MAC addresses. 1383 This may entail: 1385 o When configuring an interface, Virtual Router Master routers 1386 should send an unsolicited ND Neighbor Advertisement message 1387 containing the virtual router MAC address for the IPv6 address on 1388 that interface. 1390 o At system boot, when initializing interfaces for VRRP operation; 1391 delay all ND Router and Neighbor Advertisements and Solicitation 1392 messages until both the IPv6 address and the virtual router MAC 1393 address are configured. 1395 Note that on a restarting Master router where the VRRP protected 1396 address is the interface address, (that is, priority 255) duplicate 1397 address detection (DAD) may fail, as the Backup router may answer 1398 that it owns the address. One solution is to not run DAD in this 1399 case. 1401 8.2.3. Router Advertisements 1403 When a backup VRRP router has become Master for a virtual router, it 1404 is responsible for sending Router Advertisements for the virtual 1405 router as specified in section 6.4.3. The backup routers must be 1406 configured to send the same Router Advertisement options as the 1407 address owner. 1409 Router Advertisement options that advertise special services (e.g., 1410 Home Agent Information Option) that are present in the address owner, 1411 should not be sent by the address owner unless the backup routers are 1412 prepared to assume these services in full and have a complete and 1413 synchronized database for this service. 1415 8.3. IPvX 1417 8.3.1. Potential Forwarding Loop 1419 A VRRP router SHOULD NOT forward packets addressed to the IPvX 1420 Address it becomes Master for if it is not the owner. Forwarding 1421 these packets would result in unnecessary traffic. Also in the case 1422 of LANs that receive packets they transmit (e.g., token ring) this 1423 can result in a forwarding loop that is only terminated when the IPvX 1424 TTL expires. 1426 One such mechanism for VRRP routers is to add/delete a reject host 1427 route for each adopted IPvX address when transitioning to/from MASTER 1428 state. 1430 8.3.2. Recommendations regarding setting priority values 1432 A priority value of 255 designates a particular router as the "IPvX 1433 address owner". Care must be taken not to configure more than one 1434 router on the link in this way for a single VRID. 1436 Routers with priority 255 will, as soon as they start up, preempt all 1437 lower priority routers. Configure no more than one router on the 1438 link with priority 255, especially if preemption is set. If no 1439 router has this priority, and preemption is disabled, then no 1440 preemption will occur. 1442 When there are multiple Backup routers, their priority values should 1443 be uniformly distributed. For example, if one Backup routers has the 1444 default priority of 100 and another BR is added, a priority of 50 1445 would be a better choice for it than 99 or 100 to facilitate faster 1446 convergence. 1448 8.4. VRRPv3 and VRRPv2 Interoperation 1450 8.4.1. Assumptions 1452 1. VRRPv2 and VRRPv3 interoperation is optional. 1454 2. Mixing VRRPv2 and VRRPv3 should only be done when transitioning 1455 from VRRPv2 to VRRPv3. Mixing the two versions should not be 1456 considered a permanent solution. 1458 8.4.2. VRRPv3 support of VRRPv2 1460 As mentioned above, this support is intended for upgrade scenarions 1461 and NOT recommended for permanent deployments. 1463 An implementation MAY implement a configuration flag that tells it to 1464 listen for and send both VRRPv2 and VRRPv3 advertisements. 1466 When configured this way and the Master, it MUST send both types at 1467 the configured rate, even if sub-second. 1469 When configured this way and the Backup, it should time out based on 1470 the rate advertised by the master; in the case of a VRRPv2 master 1471 this means it must translate the timeout value it receives (in 1472 seconds) into centi-seconds. Also, a backup should ignore VRRPv2 1473 advertisements from the current master if it is also receiving VRRPv3 1474 packets from it. It MAY report when a v3 master is *not* sending v2 1475 packets: that suggests they don't agree on whether they're supporting 1476 v2 routers. 1478 8.4.3. VRRPv3 support of VRRPv2 Considerations 1480 8.4.3.1. Slow, High-Priority Masters 1482 See also discussion at "Maximum Advertisement Interval (Max Adver 1483 Int)" 1485 The VRRPv2 Master router interacting with a sub-second VRRPv3 Backup 1486 router is the most important example of this. 1488 A VRRPv2 implementation should not be given a higher priority than a 1489 VRRPv2/VRRPv3 implementation it is interacting with if the VRRPv2/ 1490 VRRPv3 rate is subsecond. 1492 8.4.3.2. Overwhelming VRRPv2 Backups 1494 It seems possible that an VRRPv3 Master router sending at centi-sec 1495 rates could potentially overwhelm a VRRPv2 Backup router with 1496 potentially unclear results. 1498 In this upgrade case, a deployment should initially run the VRRPv3 1499 Master routers with lower frequencies (e.g., 100 centi-sec) until the 1500 VRRPv2 rtrs are upgraded. Then, once the deployment has convinced 1501 itself that VRRPv3 is working properly, the VRRPv2 support may be 1502 unconfigured then the desired sub-second rates configured. 1504 9. Security Considerations 1506 VRRP for IPvX does not currently include any type of authentication. 1507 Earlier versions of the VRRP (for IPv4) specification included 1508 several types of authentication ranging from none to strong. 1509 Operational experience and further analysis determined that these did 1510 not provide sufficient security to overcome the vulnerability of 1511 misconfigured secrets causing multiple masters to be elected. Due to 1512 the nature of the VRRP protocol, even if VRRP messages are 1513 cryptographically protected, it does not prevent hostile nodes from 1514 behaving as if they are a VRRP master, creating multiple masters. 1515 Authentication of VRRP messages could have prevented a hostile node 1516 from causing all properly functioning routers from going into backup 1517 state. However, having multiple masters can cause as much disruption 1518 as no routers, which authentication cannot prevent. Also, even if a 1519 hostile nodes could not disrupt VRRP, it can disrupt ARP and create 1520 the same effect as having all routers go into backup. 1522 Some L2 switches provide the capability to filter out, e.g., ARP 1523 and/or ND messages from end hosts on a switch port basis. This 1524 mechanism could also filter VRRP messages from switch ports 1525 associated with end hosts and can be considered for deployments with 1526 untrusted hosts. 1528 It should be noted that these attacks are not worse and are a subset 1529 of the attacks that any node attached to a LAN can do independently 1530 of VRRP. The kind of attacks a malicious node on a LAN can do 1531 include promiscuously receiving packets for any router's MAC address, 1532 sending packets with the router's MAC address as the source MAC 1533 addresses in the L2 header to tell the L2 switches to send packets 1534 addressed to the router to the malicious node instead of the router, 1535 send redirects to tell the hosts to send their traffic somewhere 1536 else, send unsolicited ND replies, answer ND requests, etc., etc. 1537 All of this can be done independently of implementing VRRP. VRRP 1538 does not add to these vulnerabilities. 1540 Independent of any authentication type VRRP includes a mechanism 1541 (setting TTL=255, checking on receipt) that protects against VRRP 1542 packets being injected from another remote network. This limits most 1543 vulnerabilities to local attacks. 1545 VRRP does not provide any confidentiality. Confidentiality is not 1546 necessary for the correct operation of VRRP and there is no 1547 information in the VRRP messages that must be kept secret from other 1548 nodes on the LAN. 1550 In the context of IPv6 operation, if SEcure Neighbor Discovery (SEND) 1551 is deployed, VRRP is s compatible with the "trust anchor" and "trust 1552 anchor or cga" modes of SEND [RFC3971]. The (SEND) configuration 1553 needs to give the master and backup routers the same prefix 1554 delegation in the certificates so that master and backup routers 1555 advertize the same set of subnet prefixes. However, the master and 1556 backup routers should have their own key pairs to avoid private key 1557 sharing. 1559 10. Disclaimer for pre-RFC5378 work 1561 This document may contain material from IETF Documents or IETF 1562 Contributions published or made publicly available before November 1563 10, 2008. The person(s) controlling the copyright in some of this 1564 material may not have granted the IETF Trust the right to allow 1565 modifications of such material outside the IETF Standards Process. 1566 Without obtaining an adequate license from the person(s) controlling 1567 the copyright in such materials, this document may not be modified 1568 outside the IETF Standards Process, and derivative works of it may 1569 not be created outside the IETF Standards Process, except to format 1570 it for publication as an RFC or to translate it into languages other 1571 than English. 1573 11. Contributors & Acknowledgments 1575 The editor would like to thank V. Ullanatt for his review of an early 1576 version. This draft consists of very little new material (there is 1577 some new text in appendix A) and was created by merging and "xml- 1578 izing" the [I-D.ietf-vrrp-ipv6-spec] and [RFC3768] and then adding in 1579 the changes discussed recently on the mailing list. R. Hinden is the 1580 author and J. Cruz is the editor of the former. The contributors for 1581 the latter appear below. 1583 The IPv6 text in this specification is based on [RFC2338]. The 1584 authors of RFC2338 are S. Knight, D. Weaver, D. Whipple, R. Hinden, 1585 D. Mitzel, P. Hunt, P. Higginson, M. Shand, and A. Lindem. 1587 The author of [I-D.ietf-vrrp-ipv6-spec] would also like to thank Erik 1588 Nordmark, Thomas Narten, Steve Deering, Radia Perlman, Danny Mitzel, 1589 Mukesh Gupta, Don Provan, Mark Hollinger, John Cruz, and Melissa 1590 Johnson for their helpful suggestions. 1592 The IPv4 text in this specification is based on RFC3768. The authors 1593 of that specification would like to thank Glen Zorn, and Michael 1594 Lane, Clark Bremer, Hal Peterson, Tony Li, Barbara Denny, Joel 1595 Halpern, Steve Bellovin, Thomas Narten, Rob Montgomery, Rob Coltun, 1596 Radia Perlman, Russ Housley, Harald Alvestrand, Steve Bellovin, Ned 1597 Freed, Ted Hardie, Russ Housley, Bert Wijnen, Bill Fenner, and Alex 1598 Zinin for their comments and suggestions. 1600 12. IANA Considerations 1602 VRRP for IPv6 needs an IPv6 link-local scope multicast address 1603 assigned by the IANA for this specification. The IPv6 multicast 1604 address should be of the following form: 1606 FF02:0:0:0:0:0:XXXX:XXXX 1608 The values assigned address should be entered into section 5.1.2.2. 1610 A convenient assignment of this link-local scope multicast would be: 1612 FF02:0:0:0:0:0:0:12 1614 as this would be consistent with the IPv4 assignment for VRRP. 1616 The IANA should also reserve a block of IANA Ethernet unicast 1617 addresses from: 1619 00-00-5E-00-02-00 to 00-00-5E-00-02-FF in hex 1621 for VRRP for IPv6. Similar assignments are documented in: 1623 http://www.iana.org/assignments/ethernet-numbers 1625 13. References 1627 13.1. Normative References 1629 [ISO.10038.1993] 1630 International Organization for Standardization, 1631 "Information technology - Telecommunications and 1632 information exchange between systems - Local area networks 1633 - Media access control (MAC) bridges", ISO Standard 10038, 1634 1993. 1636 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1637 Requirement Levels", BCP 14, RFC 2119, March 1997. 1639 [RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 1640 (IPv6) Specification", RFC 2460, December 1998. 1642 [RFC3768] Hinden, R., "Virtual Router Redundancy Protocol (VRRP)", 1643 RFC 3768, April 2004. 1645 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 1646 Architecture", RFC 4291, February 2006. 1648 [RFC4443] Conta, A., Deering, S., and M. Gupta, "Internet Control 1649 Message Protocol (ICMPv6) for the Internet Protocol 1650 Version 6 (IPv6) Specification", RFC 4443, March 2006. 1652 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, 1653 "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, 1654 September 2007. 1656 13.2. Informative References 1658 [I-D.ietf-vrrp-ipv6-spec] 1659 Hinden, R. and J. Cruz, "Virtual Router Redundancy 1660 Protocol for IPv6", draft-ietf-vrrp-ipv6-spec-08 (work in 1661 progress), March 2007. 1663 [IPSTB] Higginson, P. and M. Shand, "Development of Router 1664 Clusters to Provide Fast Failover in IP Networks", Digital 1665 Technology Journal, Volume 9 Number 3, Winter 1997. 1667 [IPX] Novell Incorporated, "IPX Router Specification Version 1668 1.10", October 1992. 1670 [RFC1071] Braden, R., Borman, D., Partridge, C., and W. Plummer, 1671 "Computing the Internet checksum", RFC 1071, 1672 September 1988. 1674 [RFC1256] Deering, S., "ICMP Router Discovery Messages", RFC 1256, 1675 September 1991. 1677 [RFC1469] Pusateri, T., "IP Multicast over Token-Ring Local Area 1678 Networks", RFC 1469, June 1993. 1680 [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", 1681 RFC 2131, March 1997. 1683 [RFC2281] Li, T., Cole, B., Morton, P., and D. Li, "Cisco Hot 1684 Standby Router Protocol (HSRP)", RFC 2281, March 1998. 1686 [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998. 1688 [RFC2338] Knight, S., Weaver, D., Whipple, D., Hinden, R., Mitzel, 1689 D., Hunt, P., Higginson, P., Shand, M., and A. Lindem, 1690 "Virtual Router Redundancy Protocol", RFC 2338, 1691 April 1998. 1693 [RFC2453] Malkin, G., "RIP Version 2", STD 56, RFC 2453, 1694 November 1998. 1696 [RFC3971] Arkko, J., Kempf, J., Zill, B., and P. Nikander, "SEcure 1697 Neighbor Discovery (SEND)", RFC 3971, March 2005. 1699 [TKARCH] IBM Incorporated, "IBM Token-Ring Network, Architecture 1700 Specificaton, Publication SC30-3374-02, Third Edition", 1701 September 1989. 1703 Appendix A. Operation over FDDI, Token Ring, and ATM LANE 1705 A.1. Operation over FDDI 1707 FDDI interfaces remove from the FDDI ring frames that have a source 1708 MAC address matching the device's hardware address. Under some 1709 conditions, such as router isolations, ring failures, protocol 1710 transitions, etc., VRRP may cause there to be more than one Master 1711 router. If a Master router installs the virtual router MAC address 1712 as the hardware address on a FDDI device, then other Masters' 1713 ADVERTISEMENTS will be removed from the ring during the Master 1714 convergence, and convergence will fail. 1716 To avoid this an implementation SHOULD configure the virtual router 1717 MAC address by adding a unicast MAC filter in the FDDI device, rather 1718 than changing its hardware MAC address. This will prevent a Master 1719 router from removing any ADVERTISEMENTS it did not originate. 1721 A.2. Operation over Token Ring 1723 Token ring has several characteristics that make running VRRP 1724 difficult. These include: 1726 o In order to switch to a new master located on a different bridge 1727 token ring segment from the previous master when using source 1728 route bridges, a mechanism is required to update cached source 1729 route information. 1731 o No general multicast mechanism supported across old and new token 1732 ring adapter implementations. While many newer token ring 1733 adapters support group addresses, token ring functional address 1734 support is the only generally available multicast mechanism. Due 1735 to the limited number of token ring functional addresses these may 1736 collide with other usage of the same token ring functional 1737 addresses. 1739 Due to these difficulties, the preferred mode of operation over token 1740 ring will be to use a token ring functional address for the VRID 1741 virtual MAC address. Token ring functional addresses have the two 1742 high order bits in the first MAC address octet set to B'1'. They 1743 range from 03-00-00-00-00-80 to 03-00-02-00-00-00 (canonical format). 1744 However, unlike multicast addresses, there is only one unique 1745 functional address per bit position. The functional addresses 03-00- 1746 00-10-00-00 through 03-00-02-00-00-00 are reserved by the Token Ring 1747 Architecture [TKARCH] for user-defined applications. However, since 1748 there are only 12 user-defined token ring functional addresses, there 1749 may be other non-IPvX protocols using the same functional address. 1750 Since the Novell IPX [IPX] protocol uses the 03-00-00-10-00-00 1751 functional address, operation of VRRP over token ring will avoid use 1752 of this functional address. In general, token ring VRRP users will 1753 be responsible for resolution of other user-defined token ring 1754 functional address conflicts. 1756 VRIDs are mapped directly to token ring functional addresses. In 1757 order to decrease the likelihood of functional address conflicts, 1758 allocation will begin with the largest functional address. Most non- 1759 IPvX protocols use the first or first couple user-defined functional 1760 addresses and it is expected that VRRP users will choose VRIDs 1761 sequentially starting with 1. 1763 VRID Token Ring Functional Address 1764 ---- ----------------------------- 1765 1 03-00-02-00-00-00 1766 2 03-00-04-00-00-00 1767 3 03-00-08-00-00-00 1768 4 03-00-10-00-00-00 1769 5 03-00-20-00-00-00 1770 6 03-00-40-00-00-00 1771 7 03-00-80-00-00-00 1772 8 03-00-00-01-00-00 1773 9 03-00-00-02-00-00 1774 10 03-00-00-04-00-00 1775 11 03-00-00-08-00-00 1777 Or more succinctly, octets 3 and 4 of the functional address are 1778 equal to (0x4000 >> (VRID - 1)) in non-canonical format. 1780 Since a functional address cannot be used as a MAC level source 1781 address, the real MAC address is used as the MAC source address in 1782 VRRP advertisements. This is not a problem for bridges since packets 1783 addressed to functional addresses will be sent on the spanning-tree 1784 explorer path [ISO.10038.1993]. 1786 The functional address mode of operation MUST be implemented by 1787 routers supporting VRRP on token ring. 1789 Additionally, routers MAY support unicast mode of operation to take 1790 advantage of newer token ring adapter implementations that support 1791 non-promiscuous reception for multiple unicast MAC addresses and to 1792 avoid both the multicast traffic and usage conflicts associated with 1793 the use of token ring functional addresses. Unicast mode uses the 1794 same mapping of VRIDs to virtual MAC addresses as Ethernet. However, 1795 one important difference exists. ND request/reply packets contain 1796 the virtual MAC address as the source MAC address. The reason for 1797 this is that some token ring driver implementations keep a cache of 1798 MAC address/source routing information independent of the ND cache. 1800 Hence, these implementations have to receive a packet with the 1801 virtual MAC address as the source address in order to transmit to 1802 that MAC address in a source-route bridged network. 1804 Unicast mode on token ring has one limitation that should be 1805 considered. If there are VRID routers on different source-route 1806 bridge segments and there are host implementations that keep their 1807 source-route information in the ND cache and do not listen to 1808 gratuitous NDs, these hosts will not update their ND source-route 1809 information correctly when a switch-over occurs. The only possible 1810 solution is to put all routers with the same VRID on the same source- 1811 bridge segment and use techniques to prevent that bridge segment from 1812 being a single point of failure. These techniques are beyond the 1813 scope this document. 1815 For both the multicast and unicast mode of operation, VRRP 1816 advertisements sent to 224.0.0.18 should be encapsulated as described 1817 in [RFC1469]. 1819 A.3. Operation over ATM LANE 1821 Operation of VRRP over ATM LANE on routers with ATM LANE interfaces 1822 and/or routers behind proxy LEC's are beyond the scope of this 1823 document. 1825 Author's Address 1827 Stephen Nadas (editor) 1828 Ericsson 1829 900 Chelmsford St., T3 4th Floor 1830 Lowell, MA 01851 1831 USA 1833 Phone: +1 978 275 7448 1834 Email: stephen.nadas@ericsson.com