# Virtual Router Redundancy Protocol

VRRP (Virtual Router Redundancy Protocol) :
| Familie: | Internetprotokollfamilie |
| Einsatzgebiet: | Hochverfügbarkeit von Routern |
| VRRP im TCP/IP-Protokollstapel Vermittlung VRRP IP Netzzugang Ethernet Token Bus Token Ring FDDI … ||
| Standards: | RFC 3768 (2004) RFC 5798 (2010) |
Das Virtual Router Redundancy Protocol (VRRP) ist ein Verfahren zur Steigerung der Verfügbarkeit wichtiger Gateways in lokalen Netzen durch redundante Router.
Das VRRP wurde von Ascend Communications, DEC, IBM, Microsoft und Nokia im Jahr 1998 entwickelt. Heute ist es aber auch in den Routern vieler anderer Hersteller wie Alcatel, Cisco oder DrayTek verfügbar. Ziel war es, einen offenen Standard zu etablieren, der sich dem Problem der Ausfallsicherheit von Datenwegen widmet, nämlich der Verfügbarkeit des sogenannten Standardgateways in lokalen Netzen.

## Funktionsweise Active/Standby

Beim Routen von Datenpaketen durch Netzwerke wird dem Ausfall von Teilstrecken auf dem Weg zum Ziel normalerweise durch dynamisches Routing entgegengewirkt. Fällt jedoch der erste Router auf einer Strecke aus, so ist dieser Fehler nicht durch dynamisches Routing zu beheben, da ein Host im Normalfall nur ein statisches Standardgateway kennt und meist auch nur eines unterstützt.
Durch einen Ausfall des ersten Routers, des Standardgateways, sind die betroffenen Hosts von der Kommunikation mit der Außenwelt abgeschnitten, selbst dann, wenn noch aktive Router im selben Teilnetz verfügbar sind.
An dieser Stelle setzt das VRRP an. Mehrere physische Router werden zu einer logischen Gruppe zusammengefasst, die sich im Netzwerk nun als ein logischer virtueller Router präsentiert.
Hierzu wird dem logischen Router eine virtuelle IP-Adresse und eine virtuelle MAC-Adresse zugeordnet. Einer der Router innerhalb der Gruppe wird als der virtuelle Master-Router definiert. Dieser bindet daraufhin die virtuelle MAC- und die virtuelle IP-Adresse an sein Netzwerkinterface und informiert die anderen Router der Gruppe, die als virtuelle Backup-Router agieren.
Fällt der Master-Router aus, werden die virtuelle IP-Adresse und die virtuelle MAC-Adresse innerhalb von (Milli-)Sekunden auf einen der Backup-Router übertragen, der damit zum neuen Master-Router wird. Sowohl die MAC- als auch die IP-Adresse werden transferiert, damit die betroffenen Hosts ihren ARP-Cache nicht aktualisieren müssen. Die Folgen des Ausfalls des ersten Routers auf der Route können somit reduziert werden. Dieses Redundanzprinzip wird Hot Standby genannt.

## Funktionsweise Active/Active

Diese Funktionsweise Active/Active ist abhängig vom Hersteller, da diese nicht standardisiert ist und dadurch kein einheitlicher Standard vorherrscht. Der Unterschied zwischen Active/Standby VRRP (begrifflich korrekt Master/Backup) besteht darin, dass Active/Active VRRP den Lastausgleich ermöglichen soll. Einige Hersteller sind Citrix, Extreme Networks, Fortinet und andere.

## Verwendung mehrerer VRRP Setups in einem Layer-2-Segment

Um eine Koexistenz mehrerer Cluster innerhalb einer Broadcastdomäne (z. B. eines VLANs) zu ermöglichen, konfiguriert man zusammengehörige Router über die Virtual Router ID (VRID). So können z. B. bis zu 255 unabhängige VRRP-Setups in einem VLAN benutzt werden. Das können Router sein, aber auch Firewalls oder Servercluster, die sich über VRRP absichern. Die VRID ist Teil des VRRP-Paketes, damit jedes am VRRP teilnehmende Gerät feststellen kann, ob das Paket verarbeitet werden muss oder zu einem anderen Cluster gehört. Zudem ist die VRID Teil der virtuellen MAC-Adresse, damit die einzelnen VRRP-Cluster nicht die gleiche MAC-Adresse benutzen. Stellt ein Routerverbund mehr als ein IP-Netz zur Verfügung, nutzt man in der Regel ebenfalls eine VRID je IP-Netz bzw. virtueller IP, auch wenn das VRRP grundsätzlich mehrere virtuelle IPs in einer VRID abbilden kann.

## Prioritäten und Failoverlogik

Neben der VRID wird auf jedem Router eine Priorität zwischen 1 und 254 konfiguriert. Nach dem Start der VRRP-Funktion horcht das Gerät erst für einige Sekunden, ob es VRRP-Pakete anderer Geräte empfängt.
Sofern es Pakete mit der eigenen VRID und einer Priorität größer oder gleich der eigenen empfängt, wechselt das Gerät in den Backup-Modus. Empfängt das Gerät keine VRRP Pakete, wird es zum Master. Empfängt das Gerät VRRP Pakete mit einer Priorität kleiner der eigenen, wird es Master, sofern die Preemption (Einstellung, ob ein bestehender Master abgelöst werden soll) aktiviert ist.
Der Übergang zum Master-Status bedeutet, dass das Gerät zum einen damit beginnt, selbst VRRP-Pakete zu versenden. Zum anderen wird ein Gratuitous-ARP-Paket für die virtuelle IP mit der virtuellen MAC-Adresse als Source versendet.
Der bisherige Master geht fortan in den Backup-Status, versendet keine VRRP-Pakete mehr und fährt die virtuelle MAC-Adresse herunter.
Empfängt ein Backup-Router keine VRRP-Pakete für einen Zeitraum von mehr als 3 erwarteten Paketen, wird von einem Ausfall ausgegangen. Der Backup-Router wird zum Master.
Die Zeitintervalle (Advertisement Interval) sind definierbar, per default wird ein Paket pro Sekunde versendet.
Je höher die Priorität des jeweiligen Routers ist, desto früher übernimmt er. Die Dauer beträgt 3 * Advertisement Interval + ((256 – Priorität) / 256) Sekunden. Ein Backup-Router mit 500 ms Advertisement Interval und einer Priorität von 192 würde also zum Master-Status wechseln, wenn er 1,75 Sekunden (3*0,5 + (256-192)/256) kein VRRP-Paket empfängt.
Sofern mehr als 2 Router verwendet werden, sollte man die Priorität entsprechend weit auseinander legen, um zu verhindern, dass bei einem Failover mehrere Backup-Router zum Master werden.

## Verwendete Adressen (Ethernet)

VRRP benutzt virtuelle IP-Adressen wie auch virtuelle MAC-Adressen. Die virtuellen IP-Adressen sind frei konfigurierbar.
Das VRRP-Paket wird mit der fest konfigurierten Source IP des Interfaces (bei IPv6 wird die Link-local-Adresse verwendet) und der Destination IP 224.0.0.18 (IPv4 Multicast) bzw. ff02::12 (IPv6 Multicast) versendet.
Als virtuelle MAC wird eine Multicast-Adresse aus dem Bereich 00:00:5E:00:01:01 bis 00:00:5E:00:01:FF benutzt, die letzte 8 bit sind dabei die VRID. Bei IPv6 wird analog dazu 00:00:5E:00:02:01 bis 00:00:5E:00:02:FF verwendet.
Die Source MAC der VRRP Pakete ist die virtuelle MAC, die Destination MAC lautet 01:00:5E:00:00:12 (IPv4) bzw. 33:33:00:00:00:12 (IPv6).
VRRP ist ein eigener IP-Protokolltyp mit der Nummer 112. Sofern Version 2 mit MD5-Authentication benutzt wird, wird abweichend allerdings Protokollnummer 51 (Authentication Header) verwendet.

## Versionen

Es gibt 2 Protokollversionen, die nicht kompatibel zueinander sind, VRRPv2 und VRRPv3.
VRRPv3 erweitert das Protokoll um IPv6 Support (und potentiell folgende IP-Versionen) und streicht im Gegenzug die integrierte Authentifizierungsfunktion, die sich als weitgehend nutzlos erwies.

## Einschränkungen

Jeder Router benötigt eine feste IP-Adresse je IP-Netz, welches per VRRP angebunden werden soll. Ein Setup basierend aus 2 Routern braucht also 2 feste IPs für die Router, dazu die virtuelle IP. Das führt dazu, dass im Falle von IPv4 incl. der Netz-IP und Broadcast-IP 5 IPs benötigt werden. Speziell bei kleinen Netzen führt das zu einem hohen Adressverschnitt. Transfernetze zwischen Routern und Firewalls müssen z. B. mindestens als /29 ausgelegt werden, wo ohne VRRP eventuell schon ein /30 funktionieren würde.

## Verwendung und Alternativen

Da VRRP Patente der Firma Cisco verwendet, haben die Entwickler des freien OpenBSD-Betriebssystems ein alternatives Protokoll CARP entwickelt. Die Webserversoftware Nginx Plus hat das VRRP-Protokoll mit dem Release R6 implementiert, wodurch eine Hochverfügbarkeit der Webserver erreicht werden soll. Im Providerbereich wird teilweise Ethernet VPN (EVPN) als Alternative benutzt, weil hier keine statischen IP-Adressen je Router benötigt werden.