In dem Dokumentationssatz für dieses Produkt wird die Verwendung inklusiver Sprache angestrebt. Für die Zwecke dieses Dokumentationssatzes wird Sprache als „inklusiv“ verstanden, wenn sie keine Diskriminierung aufgrund von Alter, körperlicher und/oder geistiger Behinderung, Geschlechtszugehörigkeit und -identität, ethnischer Identität, sexueller Orientierung, sozioökonomischem Status und Intersektionalität impliziert. Dennoch können in der Dokumentation stilistische Abweichungen von diesem Bemühen auftreten, wenn Text verwendet wird, der in Benutzeroberflächen der Produktsoftware fest codiert ist, auf RFP-Dokumentation basiert oder von einem genannten Drittanbieterprodukt verwendet wird. Hier erfahren Sie mehr darüber, wie Cisco inklusive Sprache verwendet.
Cisco hat dieses Dokument maschinell übersetzen und von einem menschlichen Übersetzer editieren und korrigieren lassen, um unseren Benutzern auf der ganzen Welt Support-Inhalte in ihrer eigenen Sprache zu bieten. Bitte beachten Sie, dass selbst die beste maschinelle Übersetzung nicht so genau ist wie eine von einem professionellen Übersetzer angefertigte. Cisco Systems, Inc. übernimmt keine Haftung für die Richtigkeit dieser Übersetzungen und empfiehlt, immer das englische Originaldokument (siehe bereitgestellter Link) heranzuziehen.
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 Cisco Router, über die Passagierpakete in ein Transportprotokoll gekapselt werden können. Es handelt sich um eine Architektur, die darauf ausgelegt ist, die Services bereitzustellen, um ein Punkt-zu-Punkt-Kapselungsschema zu implementieren.
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 Schnittstelle verfügbar 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.
Vor der Implementierung von GRE-Keepalives gab es nur Möglichkeiten, lokale Probleme auf dem Router zu ermitteln, nicht aber Probleme im dazwischen liegenden Netzwerk. Dies ist beispielsweise der Fall, wenn GRE-getunnelte Pakete erfolgreich weitergeleitet werden, aber verloren gehen, bevor sie das andere Ende des Tunnels erreichen. Solche Szenarien würden dazu führen, dass Datenpakete, die den GRE-Tunnel durchlaufen, "schwarz durchlöchert" werden, obwohl eine alternative Route, die PBR verwendet, oder eine variable statische Route über eine andere Schnittstelle verfügbar war. Keepalives an der GRE-Tunnelschnittstelle werden verwendet, um dieses Problem auf die gleiche Weise zu lösen wie Keepalives an physischen Schnittstellen.
Hinweis: GRE-Keepalives werden unter keinen Umständen zusammen mit IPsec-Tunnelschutz unterstützt. In diesem Dokument wird dieses Problem behandelt.
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 ebenfalls IP (obwohl es auch ein anderes Protokoll wie Decnet, Internetwork Packet Exchange (IPX) oder Appletalk 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 die Keepalive-Antwort, die physische Schnittstelle und nicht die Tunnelschnittstelle weiterzuleiten. Das bedeutet, dass das GRE-Keepalive-Antwortpaket nicht durch Ausgabefunktionen an der Tunnelschnittstelle beeinflusst wird, z. B. Tunnelschutz, QoS, Virtual Routing and Forwarding (VRF) usw.
Hinweis: Wenn eine eingehende Zugriffskontrollliste (ACL) auf der GRE-Tunnelschnittstelle konfiguriert ist, muss das vom gegenüberliegenden Gerät gesendete GRE-Tunnel-Keepalive-Paket zugelassen werden. Andernfalls wird der GRE-Tunnel des anderen Geräts ausfallen. (access-list <Nummer> permit gre host <tunnel-source> host <tunnel-destination>)
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.
Tipp: Das Problem bei der Konfiguration von Keepalives nur auf einer Seite des Tunnels besteht darin, dass nur der Router mit konfiguriertem Keepalives seine Tunnelschnittstelle als ausgefallen markiert, wenn der Keepalive-Timer abläuft. Die GRE-Tunnelschnittstelle auf der anderen Seite, auf der keine Keepalives konfiguriert sind, bleibt auch dann aktiv, wenn die andere Seite des Tunnels ausgefallen ist. Der Tunnel kann zu einem schwarzen Loch für Pakete werden, die von der Seite in den Tunnel geleitet werden und für die keine Keepalives konfiguriert wurden.
Tipp: In einem großen Hub-and-Spoke-GRE-Tunnelnetzwerk kann es sinnvoll sein, GRE-Keepalives nur auf der Spoke-Seite und nicht auf der Hub-Seite zu konfigurieren. Dies liegt daran, dass es für die Spoke-Topologie oft wichtiger ist, festzustellen, dass der Hub nicht erreichbar ist, und daher auf einen Backup-Pfad umzuschalten (z. B. Einwahl-Backup).
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.
Hinweis: GRE-Tunnel-Keepalives werden nur auf Punkt-zu-Punkt-GRE-Tunneln unterstützt. Tunnel-Keepalives können für mGRE-Tunnel (Multipoint GRE) konfiguriert werden, haben jedoch keine Auswirkungen.
Hinweis: Tunnel-Keepalives können im Allgemeinen nicht funktionieren, wenn VRFs an der Tunnelschnittstelle verwendet werden und fVRF ("tunnel vrf ...’) und iVRF ("ip vrf forwarding ...’ an der Tunnelschnittstelle) nicht übereinstimmen. Dies ist für den Tunnelendpunkt, der die Keepalive-Nachricht an den Anforderer zurückgibt, von entscheidender Bedeutung. Wenn die Keepalive-Anfrage eingeht, wird sie in der fVRF-Instanz empfangen und entkapselt. Daraus ergibt sich die vorgefertigte Keepalive-Antwort, die dann zurück an den Absender weitergeleitet werden muss. Die Weiterleitung erfolgt JEDOCH im Kontext der iVRF-Instanz an der Tunnelschnittstelle. Wenn also iVRF und fVRF nicht übereinstimmen, wird das Keepalive-Antwortpaket nicht an den Absender zurückgeleitet. Dies gilt auch dann, wenn Sie iVRF und/oder fVRF durch "global" ersetzen.
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 |
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.
Hinweis: Im Status "Auf/Ab" leitet und verarbeitet der Tunnel keinen Datenverkehr weiter. Es werden jedoch weiterhin Keepalive-Pakete gesendet. Beim Empfang einer Keepalive-Antwort mit der Implikation, dass der Tunnel-Endpunkt wieder erreichbar ist, wird der Tunnel-Keepalive-Zähler auf 0 zurückgesetzt, und das Leitungsprotokoll auf dem Tunnel wird aktiviert.
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 erkannt und mithilfe einer Validierung der Paketquellenadresse anhand der Routing-Tabelle gelöscht wird. 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 zum Weiterleiten des Rückgabepakets verwenden würde. 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.
Einstellung:
-----------
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 |
Hinweis: Der Keepalive ist nicht verschlüsselt.
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.
Einstellung:
-----------
Da in diesem Szenario die GRE-Keepalives auf 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 |
Hinweis: Die Keepalive-Antwort ist verschlüsselt.
IP-Header |
GRE |
|
QuelleA | ZielB | PT = 0 |
Ergebnis:
----------
Mit den auf Peer B aktivierten Keepalives wird anhand der Verfügbarkeit des Tunnelziels erfolgreich bestimmt, welcher Tunnelzustand möglich ist.
Einstellung:
-----------
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 |
---|---|---|
2.0 |
19-Dec-2022 |
Alternativer Text hinzugefügt.
Aktualisiert Einführung, Gerunds, Stilvorgaben und Formatierung. |
1.0 |
31-Oct-2014 |
Erstveröffentlichung |