De documentatie van dit product is waar mogelijk geschreven met inclusief taalgebruik. Inclusief taalgebruik wordt in deze documentatie gedefinieerd als taal die geen discriminatie op basis van leeftijd, handicap, gender, etniciteit, seksuele oriëntatie, sociaaleconomische status of combinaties hiervan weerspiegelt. In deze documentatie kunnen uitzonderingen voorkomen vanwege bewoordingen die in de gebruikersinterfaces van de productsoftware zijn gecodeerd, die op het taalgebruik in de RFP-documentatie zijn gebaseerd of die worden gebruikt in een product van een externe partij waarnaar wordt verwezen. Lees meer over hoe Cisco gebruikmaakt van inclusief taalgebruik.
Cisco heeft dit document vertaald via een combinatie van machine- en menselijke technologie om onze gebruikers wereldwijd ondersteuningscontent te bieden in hun eigen taal. Houd er rekening mee dat zelfs de beste machinevertaling niet net zo nauwkeurig is als die van een professionele vertaler. Cisco Systems, Inc. is niet aansprakelijk voor de nauwkeurigheid van deze vertalingen en raadt aan altijd het oorspronkelijke Engelstalige document (link) te raadplegen.
In dit document wordt beschreven wat Generic Routing Encapsulation (GRE)-levenden zijn en hoe ze werken.
Een GRE-tunnel is een logische interface op een router die een manier biedt om netwerkprotocolpakketten in een transportprotocol in te kapselen. Het is een mechanisme om netwerkverkeer via een point-to-point-inkapselingssysteem te vervoeren.
GRE-tunnels zijn ontworpen om volledig staatloos te zijn. Dit betekent dat elk tunneleindpunt geen informatie bijhoudt over de status of beschikbaarheid van het externe tunneleindpunt. Een gevolg hiervan is dat de router voor het eindpunt van de lokale tunnel niet in staat is om het lijnprotocol van de GRE Tunnel-interface naar beneden te brengen als het externe uiteinde van de tunnel onbereikbaar is. De mogelijkheid om een interface te markeren als down wanneer het externe uiteinde van de link niet beschikbaar is, wordt gebruikt om routes (met name statische routes) in de routeringstabel te verwijderen die die interface gebruiken als de uitgaande interface. Specifiek, als het lijnprotocol voor een interface wordt gewijzigd in down, worden statische routes die erop wijzen dat de interface wordt verwijderd uit de routeringstabel. Dit maakt de installatie van een alternatieve (zwevende) statische route of voor Policy Based Routing (PBR) mogelijk om een alternatieve next-hop of interface te selecteren.
Normaal gesproken komt een GRE Tunnel-interface naar boven zodra deze is geconfigureerd en blijft deze omhoog zolang er een geldig tunnelbronadres of een tunnelbroninterface is die zich in een up-status bevindt. Het IP-adres van de tunnelbestemming moet ook routeerbaar zijn. Dit is zelfs het geval als de andere kant van de tunnel niet is geconfigureerd. Dit betekent dat een statische route of PBR-verzending van pakketten via de GRE-tunnelinterface van kracht blijft, ook al bereiken de GRE-tunnelpakketten het andere uiteinde van de tunnel niet.
Voordat GRE keepalives werden geïmplementeerd, waren er alleen manieren om lokale problemen op de router te bepalen en geen manier om problemen in het transportnetwerk te bepalen. Bijvoorbeeld het geval waarin de GRE-tunnelpakketten met succes worden doorgestuurd, maar verloren gaan voordat ze het andere uiteinde van de tunnel bereiken. Dergelijke scenario's zouden ervoor zorgen dat gegevenspakketten die door de GRE-tunnel gaan "zwarte gaten" zijn, hoewel een alternatieve route die PBR gebruikt of een zwevende statische route via een andere interface beschikbaar was. Keepalives op de GRE-tunnelinterface worden gebruikt om dit probleem op dezelfde manier op te lossen als keepalives worden gebruikt op fysieke interfaces.
Opmerking: GRE keepalives worden in geen geval ondersteund in combinatie met IPsec-tunnelbescherming. In dit document wordt deze kwestie besproken.
Het GRE-tunnelkeepalive-mechanisme is vergelijkbaar met PPP keepalives, omdat het de mogelijkheid biedt voor één zijde om keepalive-pakketten van en naar een externe router te ontvangen, zelfs als de externe router GRE keepalives niet ondersteunt. Aangezien GRE een pakkettunnelmechanisme is voor het tunnelen van IP binnen IP, kan een GRE IP-tunnelpakket worden gebouwd in een ander GRE IP-tunnelpakket. Voor GRE keepalives bouwt de afzender het keepalive-antwoordpakket vooraf op in het oorspronkelijke keepalive-verzoekpakket, zodat het externe einde alleen de standaard GRE-decapsulatie van de buitenste GRE IP-header hoeft te doen en vervolgens het binnenste IP GRE-pakket naar de afzender terugstuurt. Deze pakketten illustreren de IP tunneling concepten waarbij GRE het inkapselingsprotocol is en IP het transportprotocol. Het passagiersprotocol is ook IP (hoewel het een ander protocol kan zijn zoals NHRP ).
Normaal pakket:
IP-header |
TCP-header |
Telnet |
Pakket met tunnel:
GRE IP-header |
GRE |
|
Hier is een voorbeeld van een keepalive-pakket dat afkomstig is van Router A en bestemd is voor Router B. De keepalive-reactie die Router B terugkeert naar Router A bevindt zich al in de Inner IP-header. Router B decapsuleert eenvoudig het keepalive-pakket en stuurt het terug naar de fysieke interface (S2). Het verwerkt het GRE keepalive-pakket net als elk ander GRE IP-gegevenspakket.
GRE Keepalives:
GRE IP-header |
GRE |
|
|||||||
Bron A | Bestemming B | PT=IP |
Dit mechanisme zorgt ervoor dat de keepalive-respons wordt doorgestuurd naar de fysieke interface in plaats van de tunnelinterface. Dit betekent dat het GRE keepalive-responspakket niet wordt beïnvloed door outputfuncties op de tunnelinterface, zoals "tunnelbescherming ..." QoS, Virtual Routing and Forwarding (VRF), enzovoort.
Opmerking: Als een inkomende toegangscontrolelijst (ACL) op de GRE-tunnelinterface is geconfigureerd, moet het GRE-tunnelpakket dat het tegenovergestelde apparaat verzendt, actief blijven. Als dat niet het geval is, wordt het tegenovergestelde apparaat GRE-tunnel neergehaald. (toegangslijst <nummer> GRE-host <tunnel-source> host <tunnel-destination>toestaan)
Een ander kenmerk van GRE tunnel keepalives is dat de keepalive timers aan elke kant onafhankelijk zijn en niet hoeven te matchen, vergelijkbaar met PPP keepalives.
Tip: Het probleem met de configuratie van keepalives aan slechts één kant van de tunnel is dat alleen de router die keepalives heeft geconfigureerd zijn tunnelinterface markeert als down als de keepalive-timer verloopt. De GRE-tunnelinterface aan de andere kant, waar keepalives niet zijn geconfigureerd, blijft omhoog, zelfs als de andere kant van de tunnel naar beneden is. De tunnel kan een zwart gat worden voor pakketten die vanaf de zijkant naar de tunnel worden geleid en die geen levendgeborenen hadden geconfigureerd.
Tip: In een groot hub-and-spoke GRE-tunnelnetwerk kan het passend zijn om alleen GRE-keepalives aan de spaakzijde en niet aan de hubzijde te configureren. Dit komt omdat het voor de speaker vaak belangrijker is om te ontdekken dat de hub onbereikbaar is en daarom switch is naar een back-uppad (bijvoorbeeld een back-up via kiesschijf).
Met Cisco IOS® Software Release 12.2(8)T is het mogelijk om keepalives te configureren op een point-to-point GRE-tunnelinterface. Met deze verandering wordt de tunnelinterface dynamisch afgesloten als de keepalives gedurende een bepaalde periode uitvallen.
Voor meer informatie over hoe andere vormen van keepalives werken, raadpleegt u Overzicht van Keepalive Mechanisms op Cisco IOS.
Opmerking: GRE tunnel keepalives worden alleen ondersteund op point-to-point GRE tunnels. Tunnel keepalives zijn configureerbaar op multipoint GRE (mGRE) tunnels, maar hebben geen effect.
Opmerking: Over het algemeen kunnen tunnelkleven niet werken wanneer VRF's worden gebruikt op de tunnelinterface en de fVRF (tunnel vrf ...) en iVRF (ip vrf forwarding ... op tunnelinterface) niet overeenkomen. Dit is van cruciaal belang voor het tunneleindpunt dat de reanimatie naar de aanvrager weergeeft. Wanneer het keepalive-verzoek is ontvangen, wordt het ontvangen in de fVRF en gedecapsuleerd. Dit onthult het vooraf gemaakte keepalive-antwoord, dat vervolgens moet worden teruggestuurd naar de afzender, MAAR dat doorsturen gebeurt in de context van de iVRF op de tunnelinterface. Daarom, als de iVRF en de fVRF niet overeenkomen, wordt het keepalive-antwoordpakket niet teruggestuurd naar de afzender. Dit geldt zelfs als u iVRF en/of fVRF vervangt door globale.
Deze uitvoer toont de opdrachten die u gebruikt om keepalives te configureren in GRE-tunnels.
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.
Om beter te begrijpen hoe het tunnelkeepalive-mechanisme werkt, kunt u dit voorbeeld van tunneltopologie en -configuratie bekijken:
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 dit scenario voert router A de volgende stappen uit:
IP-header |
GRE |
|
Bron: 192 168 1 2 | Bestemming: 192 168 1 1 1 | PT=0 |
Verzendt dat pakket uit de tunnelinterface, wat resulteert in de inkapseling van het pakket met de buitenste IP-header waarbij:
GRE IP-header |
GRE |
|
|||||||
Bron: 192 168 1 1 1 | Bestemming: 192 168 1 2 | PT=IP |
IP-header |
GRE |
|
Bron: 192 168 1 2 | Bestemming: 192 168 1 1 1 | PT=0 |
Als Router B onbereikbaar is, blijft Router A keepalive-pakketten en normaal verkeer maken en verzenden. Als de keepalives niet terugkomen, blijft het tunnellijnprotocol overeind zolang de tunnel keepalive-teller kleiner is dan het aantal pogingen, dat in dit geval vier is. Als die voorwaarde niet waar is, wordt de volgende keer dat Router A probeert een keepalive naar Router B te sturen, het lijnprotocol naar beneden gehaald.
Opmerking: In de up/down-toestand stuurt of verwerkt de tunnel geen dataverkeer door. Het blijft echter keepalive-pakketten verzenden. Op de ontvangst van een keepalive-reactie, met de implicatie dat het tunneleindpunt weer bereikbaar is, wordt de tunnel keepalive-teller gereset naar 0 en komt het lijnprotocol op de tunnel naar boven.
Om keepalives in actie te zien, schakelt u debug tunnel en debug tunnel keepalive in.
Voorbeeldfouten van 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) is een beveiligingsfunctie die helpt bij het detecteren en laten vallen van vervalst IP-verkeer met een validatie van het pakketbronadres tegen de routeringstabel. Wanneer Unicast RPF in de strikte modus wordt uitgevoerd (ip verifieert unicast-bron bereikbaar via rx), moet het pakket worden ontvangen op de interface die de router zou gebruiken om het retourpakket door te sturen. Als de strikte modus of de losse modus Unicast RPF is ingeschakeld op de tunnelinterface van de router die de GRE-pakketten ontvangt, worden de keepalives-pakketten na tunneldecapsulatie door RPF gedropt omdat de route naar het bronadres van het pakket (eigen tunnelbronadres van de router) niet via de tunnelinterface loopt. RPF-pakketdruppels kunnen als volgt worden waargenomen in de uitvoer van het weergegeven ip-verkeer:
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
Als gevolg hiervan haalt de initiatiefnemer van de tunnel keepalives de tunnel naar beneden vanwege gemiste keepalives-retourpakketten. Dus Unicast RPF mag niet worden geconfigureerd in strikte of losse modus voor GRE tunnel houdt levenden om te werken. Voor meer informatie over Unicast RPF, zie Inzicht in Unicast omgekeerde pad doorsturen.
GRE-tunnels worden soms gecombineerd met IPsec omdat IPsec geen IP-multicastpakketten ondersteunt. Hierdoor kunnen dynamische routeringsprotocollen niet succesvol worden uitgevoerd via een IPsec VPN-netwerk. Aangezien GRE-tunnels IP-multicast ondersteunen, kan een dynamisch routeringsprotocol over een GRE-tunnel worden uitgevoerd. De GRE IP-unicastpakketten die daaruit voortvloeien, kunnen worden gecodeerd door IPsec.
Er zijn twee verschillende manieren waarop IPsec GRE-pakketten kan coderen:
Beide methoden specificeren dat IPsec-codering wordt uitgevoerd na de toevoeging van de GRE-inkapseling. Er zijn twee belangrijke verschillen tussen wanneer u een cryptografische kaart gebruikt en wanneer u tunnelbescherming gebruikt:
Gezien de twee manieren om encryptie toe te voegen aan GRE-tunnels, zijn er drie verschillende manieren om een gecodeerde GRE-tunnel in te stellen:
De configuratie beschreven in scenario's 1 en 2 wordt vaak gedaan in een hub-and-spoke ontwerp. De tunnelbeveiliging is geconfigureerd op de hub-router om de configuratie te verkleinen en op elke spaak wordt een statische cryptografische kaart gebruikt.
Overweeg elk van deze scenario's met GRE-keepalives ingeschakeld op Peer B (spoke) en waar de tunnelmodus wordt gebruikt voor codering.
Configuratie:
In dit scenario, aangezien de GRE-keepalives zijn geconfigureerd op Peer B, zijn de sequentiegebeurtenissen wanneer een keepalive wordt gegenereerd als volgt:
IP-header |
ESP-koptekst |
GRE IP-header |
GRE-koptekst |
|
ESP-aanhangwagen |
|||||||
Bron B | Bestemming A | Bron B | Bestemming A | PT=IP |
GRE IP-header |
GRE |
|
|||||||
Bron B | Bestemming A | PT=IP |
IP-header |
GRE |
|
Bron A | Bestemming B | PT=0 |
IP-header |
GRE |
|
Bron A | Bestemming B | PT=0 |
Opmerking: de keepalive is niet gecodeerd.
Daarom, hoewel de Peer A reageert op de keepalives en de router Peer B de antwoorden ontvangt, verwerkt het ze nooit en verandert het uiteindelijk het lijnprotocol van de tunnelinterface in de staat down.
Resultaat:
Keepalives ingeschakeld op Peer B omdat de tunnelstatus op Peer B verandert in omhoog/omlaag.
Configuratie:
In dit scenario, aangezien de GRE-keepalives zijn geconfigureerd op Peer B, zijn de sequentiegebeurtenissen wanneer een keepalive wordt gegenereerd als volgt:
IP-header |
ESP-koptekst |
GRE IP-header |
GRE-koptekst |
|
ESP-aanhangwagen |
|||||
Bron B | Bestemming A | Bron B | Bestemming A | PT=IP |
GRE IP-header |
GRE |
|
|||||||
Bron B | Bestemming A | PT=IP |
IP-header |
GRE |
|
Bron A | Bestemming B | PT=0 |
IP-header |
ESP-koptekst |
|
ESP-aanhangwagen |
|||||||
Bron B | Bestemming A |
Opmerking: de keepalive-respons is gecodeerd.
IP-header |
GRE |
|
Bron A | Bestemming B | PT=0 |
Resultaat:
Keepalives ingeschakeld op Peer B bepalen met succes wat de tunnelstatus kan zijn op basis van de beschikbaarheid van de tunnelbestemming.
Configuratie:
Dit scenario is vergelijkbaar met Scenario 1 in die zin dat wanneer Peer A de gecodeerde keepalive ontvangt, deze wordt ontcijferd en gedecapsuleerd. Wanneer het antwoord echter weer wordt doorgestuurd, wordt het niet gecodeerd omdat Peer A tunnelbescherming gebruikt op de tunnelinterface. Peer B laat dus de niet-versleutelde keepalive-respons vallen en verwerkt deze niet.
Resultaat:
Keepalives ingeschakeld op Peer B omdat de tunnelstatus op Peer B verandert in omhoog/omlaag.
In dergelijke situaties waarin de GRE-pakketten moeten worden gecodeerd, zijn er drie mogelijke oplossingen:
Revisie | Publicatiedatum | Opmerkingen |
---|---|---|
3.0 |
18-Apr-2025
|
Opmaak bijgewerkt en enkele grammatica- en spellingsfouten gecorrigeerd. |
2.0 |
19-Dec-2022
|
Alt-tekst toegevoegd.
Bijgewerkte inleiding, achtergronden, stijlvereisten en opmaak. |
1.0 |
31-Oct-2014
|
Eerste vrijgave |