In diesem Dokument wird beschrieben, was Generic Routing Encapsulation (GRE) Keepalives sind und wie sie funktionieren.
Ein GRE-Tunnel ist eine logische Schnittstelle auf einem Router, die eine Möglichkeit bietet, Netzwerkprotokollpakete in ein Transportprotokoll zu kapseln. Hierbei handelt es sich um einen Mechanismus, der den Netzwerkverkehr über ein Punkt-zu-Punkt-Kapselungsschema transportiert.
GRE-Tunnel sind vollständig stateless. Das bedeutet, dass jeder Tunnelendpunkt keine Informationen über den Status oder die Verfügbarkeit des entfernten Tunnelendpunkts speichert. Dies hat zur Folge, dass der lokale Tunnel-Endpunkt-Router nicht in der Lage ist, das Leitungsprotokoll der GRE-Tunnelschnittstelle herunterzufahren, wenn das Remote-Ende des Tunnels nicht erreichbar ist. Die Möglichkeit, eine Schnittstelle als ausgefallen zu markieren, wenn das Remote-Ende der Verbindung nicht verfügbar ist, wird verwendet, um Routen (insbesondere statische Routen) in der Routing-Tabelle zu entfernen, die diese Schnittstelle als ausgehende Schnittstelle verwenden. Wenn das Leitungsprotokoll für eine Schnittstelle in "Down" (Heruntergefahren) geändert wird, werden alle statischen Routen, die auf diese Schnittstelle hinweisen, aus der Routing-Tabelle entfernt. Dies ermöglicht die Installation einer alternativen (schwebenden) statischen Route oder eines richtlinienbasierten Routing (Policy Based Routing, PBR), um einen alternativen Next-Hop oder eine alternative Schnittstelle auszuwählen.
Normalerweise wird eine GRE-Tunnelschnittstelle sofort nach ihrer Konfiguration aktiviert und bleibt aktiv, solange eine gültige Tunnelquellenadresse oder eine Tunnelquellenschnittstelle im Status "up" (aktiv) vorhanden ist. Die IP-Adresse des Tunnelziels muss ebenfalls routbar sein. Dies gilt auch dann, wenn die andere Seite des Tunnels nicht konfiguriert wurde. Dies bedeutet, dass eine statische Route oder PBR-Weiterleitung von Paketen über die GRE-Tunnelschnittstelle in Kraft bleibt, obwohl die GRE-Tunnelpakete das andere Ende des Tunnels nicht erreichen können.
Vor der Implementierung von GRE-Keepalives gab es aufgrund lokaler Probleme auf dem Router und nicht aufgrund von Problemen im Transportnetzwerk nur Möglichkeiten, eine Tunnelschnittstelle auszuschalten. Dies ist beispielsweise der Fall, wenn GRE-getunnelte Pakete erfolgreich weitergeleitet werden, aber verloren gehen, bevor sie das andere Ende des Tunnels erreichen. Bei solchen Szenarien werden Datenpakete, die den GRE-Tunnel durchlaufen, "schwarz durchlöchert", obwohl eine alternative Route, die PBR verwendet, oder eine statische Floating-Route über eine andere Schnittstelle verfügbar ist. Keepalives an der GRE-Tunnelschnittstelle werden verwendet, um dieses Problem auf die gleiche Weise zu lösen wie Keepalives an physischen Schnittstellen.
Der GRE-Tunnel-Keepalive-Mechanismus ähnelt PPP-Keepalives, da er es einer Seite ermöglicht, Keepalive-Pakete von und an einen Remote-Router zu senden und zu empfangen, auch wenn der Remote-Router keine GRE-Keepalives unterstützt. Da GRE ein Paket-Tunneling-Mechanismus für das Tunneling von IP innerhalb von IP ist, kann ein GRE-IP-Tunnelpaket in einem anderen GRE-IP-Tunnelpaket erstellt werden. Bei GRE-Keepalives erstellt der Absender das Keepalive-Antwortpaket im ursprünglichen Keepalive-Anforderungspaket vorab, sodass das Remote-Ende nur die standardmäßige GRE-Entkapselung des äußeren GRE-IP-Headers durchführen muss und das innere IP-GRE-Paket dann an den Absender zurücksetzt. Diese Pakete veranschaulichen die IP-Tunneling-Konzepte, wobei GRE das Kapselungsprotokoll und IP das Transportprotokoll ist. Das Passagierprotokoll ist auch IP (obwohl es ein anderes Protokoll wie NHRP sein kann).
Normales Paket:
| IP-Header |
TCP-Header |
Telnet |
Getunneltes Paket:
| GRE IP-Header |
GRE |
|
Das folgende Beispiel zeigt ein Keepalive-Paket, das von Router A stammt und für Router B bestimmt ist. Die Keepalive-Antwort, die Router B an Router A zurückgibt, befindet sich bereits im inneren IP-Header. Router B entkapselt einfach das Keepalive-Paket und sendet es zurück an die physische Schnittstelle (S2). Er verarbeitet das GRE-Keepalive-Paket genau wie jedes andere GRE-IP-Datenpaket.
GRE-Keepalive:
| GRE IP-Header |
GRE |
|
|||||||
| Quelle A | Ziel B | PT = IP | |||||||
Dieser Mechanismus veranlasst, dass die Keepalive-Antwort von der physischen Schnittstelle an die Tunnelschnittstelle weitergeleitet wird. Das bedeutet, dass das GRE-Keepalive-Antwortpaket nicht durch Ausgabefunktionen an der Tunnelschnittstelle beeinflusst wird, z. B. "tunnel protection ..." (Tunnelschutz ...). QoS, Virtual Routing and Forwarding (VRF) usw.
Ein weiteres Attribut von GRE-Tunnelkeepalives ist, dass die Keepalive-Timer auf jeder Seite unabhängig sind und nicht übereinstimmen müssen, ähnlich wie PPP-Keepalives.
Mit der Cisco IOS® Software-Version 12.2(8)T ist es möglich, Keepalives auf einer Punkt-zu-Punkt-GRE-Tunnelschnittstelle zu konfigurieren. Mit dieser Änderung wird die Tunnelschnittstelle dynamisch heruntergefahren, wenn die Keepalives für eine bestimmte Zeit fehlschlagen.
Weitere Informationen zur Funktionsweise anderer Formen von Keepalives finden Sie unter Übersicht über die Keepalive-Mechanismen in Cisco IOS.
Diese Ausgabe zeigt die Befehle, die Sie verwenden, um Keepalives in GRE-Tunneln zu konfigurieren.
Router#configure terminal
Router(config)#interface tunnel0
Router(config-if)#keepalive 5 4
!--- The syntax of this command is keepalive [seconds [retries]].
!--- Keepalives are sent every 5 seconds and 4 retries.
!--- Keepalives must be missed before the tunnel is shut down.
!--- The default values are 10 seconds for the interval and 3 retries.
Um besser zu verstehen, wie der Tunnel-Keepalive-Mechanismus funktioniert, sollten Sie sich folgendes Beispiel für die Tunneltopologie und -konfiguration ansehen:

Router A:
interface loopback 0
ip address 192.168.1.1 255.255.255.255
!
interface tunnel 0
ip address 10.10.10.1 255.255.255.252
tunnel source loopback0
tunnel destination 192.168.1.2
keepalive 5 4
Router B:
interface loopback 0
ip address 192.168.1.2 255.255.255.255
!
interface tunnel 0
ip address 10.10.10.2 255.255.255.252
tunnel source loopback0
tunnel destination 192.168.1.1
keepalive 5 4
In diesem Szenario führt Router A die folgenden Schritte aus:
| IP-Header |
GRE |
|
| Quelle: 192.168.1.2 | Ziel:192.168.1.1 | PT = 0 |
Sendet das Paket aus seiner Tunnelschnittstelle, was zur Kapselung des Pakets mit dem äußeren IP-Header führt, wobei:
| GRE IP-Header |
GRE |
|
|||||||
| Quelle: 192.168.1.1 | Ziel: 192.168.1.2 | PT = IP | |||||||
| IP-Header |
GRE |
|
| Quelle: 192.168.1.2 | Ziel:192.168.1.1 | PT = 0 |
Wenn Router B nicht erreichbar ist, erstellt und sendet Router A weiterhin Keepalive-Pakete sowie normalen Datenverkehr. Wenn die Keepalives nicht zurückkommen, bleibt das Tunnelleitungsprotokoll so lange aktiv, wie der Tunnel-Keepalive-Zähler kleiner ist als die Anzahl der Wiederholungsversuche, die in diesem Fall vier beträgt. Wenn diese Bedingung nicht zutrifft, wird das Leitungsprotokoll deaktiviert, wenn Router A das nächste Mal versucht, einen Keepalive an Router B zu senden.
Um Keepalives in Aktion zu sehen, aktivieren Sie debug tunnel und debug tunnel keepalive.
Beispiel für Debugging von Router A:
debug tunnel keepalive
Tunnel keepalive debugging is on
01:19:16.019: Tunnel0: sending keepalive, 192.168.1.1->192.168.1.2
(len=24 ttl=0), counter=15
01:19:21.019: Tunnel0: sending keepalive, 192.168.1.1->192.168.1.2
(len=24 ttl=0), counter=16
01:19:26.019: Tunnel0: sending keepalive, 192.168.1.1->192.168.1.2
(len=24 ttl=0), counter=17
Unicast RPF (Unicast Reverse Path Forwarding) ist eine Sicherheitsfunktion, mit der gefälschter IP-Datenverkehr mithilfe einer Validierung der Paketquelladresse anhand der Routing-Tabelle erkannt und verworfen werden kann. Wenn Unicast RPF im strikten Modus ausgeführt wird (ip verify unicast source reachable-via rx), muss das Paket über die Schnittstelle empfangen werden, die der Router für die Weiterleitung der Rückgabe verwenden würde. Paket. Wenn Unicast-RPF im strikten Modus oder im losen Modus auf der Tunnelschnittstelle des Routers aktiviert ist, der die GRE-Keepalive-Pakete empfängt, werden die Keepalives-Pakete nach der Tunnelentkapselung von RPF verworfen, da die Route zur Quelladresse des Pakets (tunneleigene Adresse des Routers) nicht durch die Tunnelschnittstelle verläuft. RPF-Paketverluste können in der Ausgabe von show ip traffic wie folgt beobachtet werden:
Router#show ip traffic | section Drop
Drop: 0 encapsulation failed, 0 unresolved, 0 no adjacency
0 no route, 156 unicast RPF, 0 forced drop
0 options denied
Der Initiator des Tunnel-Keepalives stürzt den Tunnel aufgrund von fehlenden Keepalives-Rückgabepaketen ab. Unicast-RPF darf daher nicht im strikten oder losen Modus konfiguriert werden, damit GRE-Tunnel-Keepalives funktionieren. Weitere Informationen zu Unicast RPF finden Sie unter Understanding Unicast Reverse Path Forwarding.
GRE-Tunnel werden manchmal mit IPsec kombiniert, da IPsec IP-Multicast-Pakete nicht unterstützt. Daher können dynamische Routing-Protokolle nicht erfolgreich über ein IPsec-VPN-Netzwerk ausgeführt werden. Da GRE-Tunnel IP-Multicast unterstützen, kann ein dynamisches Routing-Protokoll über einen GRE-Tunnel ausgeführt werden. Die resultierenden GRE-IP-Unicast-Pakete können mit IPsec verschlüsselt werden.
Es gibt zwei verschiedene Möglichkeiten, wie IPsec GRE-Pakete verschlüsseln kann:
Beide Methoden geben an, dass die IPsec-Verschlüsselung nach dem Hinzufügen der GRE-Kapselung ausgeführt wird. Wenn Sie eine Crypto Map verwenden, und wenn Sie den Tunnelschutz verwenden, bestehen zwei Hauptunterschiede:
Wenn GRE-Tunnel verschlüsselt werden sollen, gibt es drei Möglichkeiten, einen verschlüsselten GRE-Tunnel einzurichten:
Die in Szenario 1 und 2 beschriebene Konfiguration erfolgt häufig in einem Hub-and-Spoke-Design. Der Tunnelschutz wird auf dem Hub-Router konfiguriert, um die Größe der Konfiguration zu reduzieren. Außerdem wird eine statische Crypto Map für jede Spoke verwendet.
Betrachten Sie jedes dieser Szenarien mit GRE-Keepalives, die auf Peer B(Spoke) aktiviert sind, und bei denen der Tunnelmodus für die Verschlüsselung verwendet wird.
Konfiguration:
Da in diesem Szenario die GRE-Keepalives für Peer B konfiguriert sind, werden beim Generieren eines Keepalive folgende Sequenzereignisse generiert:
| IP-Header |
ESP-Header |
GRE IP-Header |
GRE-Header |
|
ESP-Trailer |
|||||||
| QuelleB | ZielA | QuelleB | ZielA | PT = IP | ||||||||
| GRE IP-Header |
GRE |
|
|||||||
| QuelleB | ZielA | PT = IP | |||||||
| IP-Header |
GRE |
|
| QuelleA | ZielB | PT = 0 |
| IP-Header |
GRE |
|
| QuelleA | ZielB | PT = 0 |
Obwohl also Peer A auf die Keepailves reagiert und Router Peer B die Antworten empfängt, werden diese niemals verarbeitet, und schließlich wird das Leitungsprotokoll der Tunnelschnittstelle in den deaktivierten Zustand geändert.
Ergebnis:
Keepalives, die für Peer B aktiviert sind, bewirken, dass der Tunnelstatus für Peer B in "up/down" (aktiv/inaktiv) geändert wird.
Konfiguration:
Da in diesem Szenario die GRE-Keepalives für Peer B konfiguriert sind, werden beim Generieren eines Keepalive folgende Sequenzereignisse generiert:
| IP-Header |
ESP-Header |
GRE IP-Header |
GRE-Header |
|
ESP-Trailer |
|||||
| QuelleB | ZielA | QuelleB | ZielA | PT = IP |
| GRE IP-Header |
GRE |
|
|||||||
| QuelleB | ZielA | PT = IP | |||||||
| IP-Header |
GRE |
|
| QuelleA | ZielB | PT = 0 |
| IP-Header |
ESP-Header |
|
ESP-Trailer |
|||||||
| QuelleB | ZielA | |||||||||
| IP-Header |
GRE |
|
| QuelleA | ZielB | PT = 0 |
Ergebnis:
Mit den auf Peer B aktivierten Keepalives kann anhand der Verfügbarkeit des Tunnelziels erfolgreich bestimmt werden, welcher Tunnelstatus zulässig ist.
Konfiguration:
Dieses Szenario ähnelt Szenario 1 insofern, als Peer A den verschlüsselten Keepalive entschlüsselt und entkapselt. Wenn die Antwort jedoch wieder nach außen weitergeleitet wird, ist sie nicht verschlüsselt, da Peer A den Tunnelschutz an der Tunnelschnittstelle verwendet. Daher verwirft Peer B die unverschlüsselte Keepalive-Antwort und verarbeitet sie nicht.
Ergebnis:
Keepalives, die für Peer B aktiviert sind, bewirken, dass der Tunnelstatus für Peer B in "up/down" (aktiv/inaktiv) geändert wird.
In solchen Situationen, in denen die GRE-Pakete verschlüsselt werden müssen, gibt es drei mögliche Lösungen:
| Überarbeitung | Veröffentlichungsdatum | Kommentare |
|---|---|---|
4.0 |
15-Jun-2026
|
Rezertifizierung |
3.0 |
18-Apr-2025
|
Formatierung aktualisiert und einige Grammatik- und Rechtschreibfehler korrigiert. |
2.0 |
19-Dec-2022
|
Alternativer Text hinzugefügt.
Aktualisiert Einführung, Gerunds, Stilvorgaben und Formatierung. |
1.0 |
31-Oct-2014
|
Erstveröffentlichung |