Virtual Router Redundancy Protocol
The Virtual Router Redundancy Protocol (VRRP) is a computer networking protocol that provides for automatic assignment of available Internet Protocol (IP) routers to participating hosts. This increases the availability and reliability of routing paths via automatic default gateway selections on an IP subnetwork.
The protocol achieves this by creation of virtual routers, which are an abstract representation of multiple routers, i.e. master and backup routers, acting as a group. The default gateway of a participating host is assigned to the virtual router instead of a physical router. If the physical router that is routing packets on behalf of the virtual router fails, another physical router is selected to automatically replace it. The physical router that is forwarding packets at any given time is called the master router.
VRRP provides information on the state of a router, not the routes processed and exchanged by that router. Each VRRP instance is limited, in scope, to a single subnet. It does not advertise IP routes beyond that subnet or affect the routing table in any way. VRRP can be used in Ethernet, MPLS and token ring networks with Internet Protocol Version 4 (IPv4), as well as IPv6.
The protocol is described in IETF publication RFC 5798, which is an open standard, but Cisco claims that a similar protocol with essentially the same facility is patented and licensed; however in reply to a direct request Robert Barr of Cisco replied in 2001 that they will not assert any patent claims unless someone tried to assert a claim against Cisco. IBM also claims covering patents and their statement is readable on the IETF webpage. [clarification needed]
A virtual router must use 00-00-5E-00-01-XX as its Media Access Control (MAC) address. The last byte of the address (XX) is the Virtual Router IDentifier (VRID), which is different for each virtual router in the network. This address is used by only one physical router at a time, and it will reply with this MAC address when an ARP request is sent for the virtual router's IP address. The destination MAC address for VRRP 'hello' messages (sent between routers participating in a VRRP-group) is set to the Ethernet multicast MAC address 01-00-5E-00-00-12
Routers have a priority of between 1-255 and the router with the highest priority will become the master. When a planned withdrawal of a master router is to take place, its priority can be lowered which means a backup router will pre-empt the master router status rather than having to wait for the hold time to expire. This reduces the black hole period. The default priority is 100 for backups and 255 for a master.
Elections of master routers
A failure to receive a multicast packet from the master router for a period longer than three times the advertisement timer causes the backup routers to assume that the master router is dead. The virtual router then transitions into an unsteady state and an election process is initiated to select the next master router from the backup routers. This is fulfilled through the use of multicast packets.
Backup router(s) are only supposed to send multicast packets during an election process. One exception to this rule is when a physical router is configured with a higher priority than the current master, which means that on connection to the network it will preempt the master status. This allows a system administrator to force a physical router to the master state immediately after booting, for example when that particular router is more powerful than others within the virtual router. The backup router with the highest priority becomes the master router by raising its priority above that of the current master. It will then take responsibility for routing packets sent to the virtual gateway's MAC address. In cases where backup routers all have the same priority, the backup router with the highest IP address becomes the master router.
All physical routers acting as a virtual router must be in the same LAN segment. Communication within the virtual router takes place periodically. This period can be adjusted by changing advertisement interval timers. The shorter the advertisement interval, the shorter the black hole period, though at the expense of more traffic in the network. Security is achieved by responding only to first hop packets, though other mechanisms are provided to reinforce this, particularly against local attacks. Election process is made orderly through the use of skew time, derived from a router's priority and used to reduce the chance of the thundering herd problem occurring during election. The skew time is given by the formula (expressed in milliseconds) RFC 3768 .
Backup router utilization can be improved by load sharing. For more on this, see RFC 5798.
VRRP is based on Cisco's proprietary Hot Standby Router Protocol (HSRP) concepts. The protocols, while similar in concept, are not compatible.
- Common Address Redundancy Protocol (CARP) - A non-proprietary, patent-free, and unrestricted alternative to HSRP and VRRP.
- Gateway Load Balancing Protocol - A Cisco Systems proprietary router redundancy protocol providing load balancing
- Hot Standby Routing Protocol - A Cisco Systems proprietary router redundancy protocol
- First Hop Redundancy Protocols - Lists of default gateway redundancy protocols
- IETF source
- Alexandre Cassen (2001-11-30). "[VRRP & OpenSource] Cisco answer". LVS mailing list. Retrieved 2013-11-28.
Robert Barr, from CISCO Systems: Cisco will not assert any patent claims against anyone for an implementation of IETF standard for VRRP unless a patent claim is asserted against Cisco, in which event Cisco reserves the right to assert patent claims defensively.
- Chuck Adams, IBM (2003-04-15). "IBM Patent Disclosure and Licensing Statement Regarding IETF RFC 2338". IETF. Retrieved 2013-11-28.
- Section 5.2.4. Protocol
- The current VRRP RFC (RFC 5798 - VRRPv3 for IPv4 and IPv6) which obsoletes RFC3768
- The IETF VRRP mailing list archive
- VRRPd - A GPL licensed implementation of VRRP designed for Linux operating systems development stalled in November 2011 but forked by Bourgeois Frédéric Advanced VRRPd - A GPL licensed implementation of VRRP designed for Linux operating systems
- Keepalived - A GPL licensed implementation of VRRPv2 for Linux operating systems