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.
Dit document beschrijft hoe IPv4-fragmentatie en Path Maximum Transmission Unit Discovery (PMTUD) werken.
Ook worden scenario's besproken die het gedrag van PMTUD wanneer gecombineerd met verschillende combinaties van IPv4 tunnels impliceren.
Hoewel de maximale lengte van een IPv4-datagram 65535 is, dwingen de meeste transmissielinks een lagere limiet voor maximale pakketlengte af: de MTU. De waarde MTU hangt af van de transmissielink.
Het ontwerp van IPv4 past MTU verschillen aan omdat het routers toestaat om IPv4 datagrammen zonodig te fragmenteren.
Het ontvangststation is verantwoordelijk voor de hermontage van de fragmenten in het originele IPv4 datagram van volledige grootte.
IPv4 fragmentatie breekt een datagram in stukken die later opnieuw worden geassembleerd.
De IPv4 bron, bestemming, identificatie, totale lengte, en fragment offset velden, samen met "meer fragmenten" (MF) en "niet fragment" (DF) vlaggen in de IPv4 header, worden gebruikt voor IPv4 fragmentatie en herassemblage.
Zie RFC 791 voor meer informatie over de technische achtergrond van IPv4-fragmentatie en het opnieuw samenstellen van het datagram.
Deze afbeelding toont de indeling van een IPv4-header.
De identificatie is 16 bits en is een waarde die wordt toegewezen door de afzender van een IPv4-datagram. Dit helpt bij de hermontage van de fragmenten van een datagram.
De fragment-offset is 13 bits en geeft aan waar een fragment hoort in het oorspronkelijke IPv4-datagram. Deze waarde is een veelvoud van 8 bytes.
Er zijn 3 bits voor besturingsvlaggen in het vlaggenveld van de IPv4-header. Het "do not fragment" (DF)-bit bepaalt of een pakket al dan niet gefragmenteerd mag worden.
Bit 0 is gereserveerd en wordt altijd op 0 ingesteld.
Bit 1 is de DF bit (0 = "kan fragment", 1 = "niet fragment fragmenteren").
Bit 2 is de MF-bit (0 = ‘laatste fragment’, 1 = ‘meer fragmenten’).
Waarde | Bit 0 gereserveerd | Bit 1 DF | Bit 2 MF |
---|---|---|---|
0 | 0 | Mag wel | Laatste |
1 | 0 | Mag niet | Meer |
Als de lengten van de IPv4 fragmenten worden toegevoegd, overschrijdt de waarde de originele IPv4 datagramlengte door 60.
Dat komt doordat de totale lengte met 60 bytes is toegenomen omdat drie aanvullende IPv4-headers zijn gemaakt: één voor elk fragment na het eerste fragment.
Het eerste fragment heeft een offset van 0, de lengte van dit fragment is 1500; dit omvat 20 bytes voor de enigszins aangepaste oorspronkelijke IPv4-header.
Het tweede fragment heeft een offset van 185 (185 x 8 = 1480); het gegevensgedeelte van dit fragment begint met 1480 bytes in het oorspronkelijke IPv4-datagram.
De lengte van dit fragment is 1500; dit omvat de extra IPv4-header die voor dit fragment is gemaakt.
Het derde fragment heeft een offset van 370 (370 x 8 = 2960); het gegevensgedeelte van dit fragment begint met 2960 bytes in het oorspronkelijke IPv4-datagram.
De lengte van dit fragment is 1500; dit omvat de extra IPv4-header die voor dit fragment is gemaakt.
Het vierde fragment heeft een offset van 555 (555 x 8 = 4440). Het datagedeelte van dit fragment begint dus na 4440 bytes in het oorspronkelijke IPv4-datagram.
De lengte van dit fragment is 700 bytes. Hiertoe behoort de extra IPv4-header die voor dit fragment is gemaakt.
De grootte van het oorspronkelijke IPv4-datagram kan pas worden bepaald wanneer het laatste fragment is ontvangen.
De fragment-offset in het laatste fragment (555) levert een data-offset op van 4440 bytes in het oorspronkelijke IPv4-datagram.
De som van de data bytes van het laatste fragment (680 = 700 - 20) levert 5120 bytes op, wat het gegevensgedeelte is van het oorspronkelijke IPv4 datagram.
De toevoeging van 20 bytes voor een IPv4-header is gelijk aan de grootte van het oorspronkelijke IPv4 datagram (440 + 680 + 20 = 5140) zoals weergegeven in de afbeeldingen.
IPv4 fragmentatie resulteert in een kleine toename in CPU en geheugen overhead om een IPv4 datagram te fragmenteren. Dit is waar voor de afzender en voor een router in de weg tussen een afzender en een ontvanger.
De creatie van fragmenten impliceert de verwezenlijking van fragmentkopballen en kopieert het originele datagram in de fragmenten.
Dit wordt efficiënt gedaan omdat de informatie die nodig is om de fragmenten te maken onmiddellijk beschikbaar is.
Fragmentatie leidt tot meer overhead voor de ontvanger bij het opnieuw samenstellen van het datagram aan de hand van de fragmenten, omdat de ontvanger geheugen moet toewijzen voor de gestuurde fragmenten en deze weer tot één datagram moet samenstellen nadat alle fragmenten zijn ontvangen.
De hermontage op een host wordt niet als een probleem gezien omdat de host de tijd en het geheugen heeft om aan deze taak te besteden.
De hermontage is echter inefficiënt op een router wiens primaire taak is om pakketten zo snel mogelijk door te sturen.
Een router is niet ontworpen om pakketten gedurende enige tijd vast te houden.
Een router die de herassemblage doet kiest de grootste beschikbare buffer (18K), omdat het geen manier heeft om de grootte van het originele IPv4 pakket te bepalen tot het laatste fragment wordt ontvangen.
Een ander fragmentatieprobleem heeft te maken met hoe er met afgewezen fragmenten wordt omgegaan.
Als één fragment van een IPv4 datagram wordt gelaten vallen, dan moet het volledige originele IPv4 datagram aanwezig zijn en het is ook gefragmenteerd.
Dit is te zien met Network File System (NFS). NFS heeft een lees- en schrijfblokgrootte van 8192.
Daarom is een NFS IPv4/UDP-datagram ongeveer 8500 bytes (inclusief NFS-, UDP- en IPv4-headers).
Een verzendende post die met een Ethernet (MTU 1500) wordt verbonden moet het datagram van 8500 bytes in zes (6) stukken fragmenteren; Vijf (5) 1500 bytesfragmenten en één (1) 1100 bytesfragment.
Als om het even welke zes fragmenten wegens een verstopte verbinding worden gelaten vallen, moet het volledige originele datagram worden opnieuw gebracht over. Dit resulteert in nog zes fragmenten die moeten worden gecreëerd.
Als deze link één op de zes pakketten verzwakt, is de kans klein dat NFS-gegevens via deze link worden overgebracht, omdat ten minste één IPv4-fragment van elk NFS 8500-byte origineel IPv4-datagram wordt verwijderd.
Firewalls die pakketten filteren of manipuleren op basis van Layer 4 (L4) door Layer 7 (L7)-informatie hebben problemen met de juiste verwerking van IPv4-fragmenten.
Als de IPv4-fragmenten niet goed werken, blokkeert een firewall de niet-initiële fragmenten omdat deze niet de informatie hebben die overeenkomt met het pakketfilter.
Dit betekent dat het oorspronkelijke IPv4 datagram niet kon worden geassembleerd door de ontvangende host.
Als de firewall zo is geconfigureerd dat niet-initiële fragmenten met onvoldoende informatie goed op het filter kunnen worden afgestemd, is een niet-initiële fragmentaanval via de firewall mogelijk.
Netwerkapparaten zoals Content Switch Engines direct pakketten gebaseerd op L4 tot L7 informatie, en als een pakket meerdere fragmenten overspant, dan heeft het apparaat problemen met het afdwingen van zijn beleid.
De Transmission Control Protocol (TCP) Maximum Segment Size (MSS) definieert de maximale hoeveelheid gegevens die een host in één TCP/IPv4-datagram accepteert.
Dit TCP/IPv4 datagram is mogelijk gefragmenteerd in de IPv4-laag. De MSS-waarde wordt alleen als optie in de TCP-header verzonden in TCP SYN-segmenten.
Elke kant van een TCP-verbinding meldt zijn MSS-waarde aan de andere kant. De MSS waarde wordt niet tussen hosts onderhandeld.
De verzendende host moet de hoeveelheid data in één TCP-segment beperken tot een waarde die lager is dan of gelijk is aan de MSS-waarde die door de ontvangende host is gemeld.
Oorspronkelijk gaf de MSS-waarde aan hoe groot de buffer was (groter dan of gelijk aan 65496 bytes) die aan een ontvangend station werd toegekend om de TCP-data in één IPv4-datagram te kunnen opslaan.
MSS was het maximale gegevenssegment dat de TCP-ontvanger wilde accepteren. Dit TCP-segment kan zo groot zijn als 64K en gefragmenteerd op de IPv4-laag om naar de ontvangende host te worden verzonden.
De ontvangende host stelde het IPv4-datagram opnieuw samen voordat het volledige TCP-segment werd overgedragen aan de TCP-laag.
Hoe MSS-waarden worden ingesteld en gebruikt om de grootte van TCP-segment en IPv4-datagrammen te beperken.
Voorbeeld 1 illustreert de manier waarop MSS voor het eerst werd geïmplementeerd.
Host A heeft een buffer van 16K bytes en host B van 8K bytes. De hosts verzenden en ontvangen hun MSS-waarden en passen hun MSS-waarde voor verzenden van data op elkaar af.
Host A en Host B moeten de IPv4-datagrammen fragmenteren die groter zijn dan de interface MTU, maar nog minder dan de Send MSS omdat de TCP-stack 16K of 8K bytes van gegevens door de stack naar IPv4 doorgeeft.
In het geval van Host B zijn pakketten gefragmenteerd om op Token Ring LAN te geraken en opnieuw op Ethernet LAN te geraken.
Om IPv4 fragmentatie op de eindpunten van de TCP-verbinding te voorkomen, is de selectie van de MSS-waarde gewijzigd in de minimale buffergrootte en de MTU van de uitgaande interface (- 40).
MSS-getallen zijn 40 bytes kleiner dan MTU-getallen omdat MSS (de TCP-gegevensgrootte) geen 20-bytes IPv4-header en de 20-bytes TCP-header omvat.
MSS is gebaseerd op standaard headergrootte; de afzenderstack moet de juiste waarden voor de IPv4 header aftrekken en de TCP header hangt af van welke TCP- of IPv4-opties worden gebruikt.
MSS werkt momenteel op een manier waarbij elke host eerst zijn uitgaande interface MTU met zijn eigen buffer vergelijkt en de laagste waarde kiest als de MSS om te verzenden.
De hosts vergelijken vervolgens de ontvangen MSS-grootte met hun eigen interface MTU en kiezen opnieuw de laagste van de twee waarden.
Voorbeeld 2 illustreert deze extra stap die door de afzender wordt genomen om fragmentatie op de lokale en externe bedradingen te voorkomen.
De MTU van de uitgaande interface wordt door elke host meegenomen voordat de hosts elkaar hun MSS-waarden sturen. Dit helpt fragmentatie te voorkomen.
1460 is de waarde die door beide hosts wordt gekozen als de MSS-waarde voor verzenden naar elkaar. Vaak is de waarde voor verzenden MSS hetzelfde aan elk uiteinde van een TCP-verbinding.
In Voorbeeld 2, komt de fragmentatie niet op de eindpunten van een verbinding van TCP voor omdat beide uitgaande interface MTUs door de gastheren in rekening worden gebracht.
Pakketten worden nog steeds gefragmenteerd in het netwerk tussen router A en router B als ze een link tegenkomen met een lagere MTU dan die van de uitgaande interface van beide hosts.
TCP MSS richt fragmentatie op de twee eindpunten van een TCP verbinding, maar het behandelt geen gevallen waar er een kleinere MTU verbinding in het midden tussen deze twee eindpunten is.
PMTUD werd ontwikkeld om fragmentatie op het pad tussen de endpoints te vermijden. Het wordt gebruikt om dynamisch de laagste MTU langs de weg van een pakketbron aan zijn bestemming te bepalen.
Opmerking: PMTUD wordt alleen ondersteund door TCP en UDP. Andere protocollen ondersteunen PMTUD niet. Als PMTUD op een host is ingeschakeld, hebben alle TCP- en UDP-pakketten van de host de DF-bitset.
Wanneer een host een volledig MSS-datapakket verzendt met de DF-bit, verlaagt de PMTUD de MSS-waarde voor verzenden voor de verbinding als informatie wordt ontvangen dat het pakket moet worden gefragmenteerd.
Een host registreert de MTU-waarde voor een bestemming omdat er een host (/32)-ingang wordt gemaakt in de routeringstabel met deze MTU-waarde.
Als een router probeert een IPv4 datagram (met de DF bit-set) door te sturen naar een link met een lagere MTU dan de grootte van het pakket, laat de router het pakket vallen en geeft een ICMP-bericht (Internet Control Message Protocol) "Bestemming onbereikbaar" naar de IPv4 datagrambron terug met de code die "fragmentatie nodig en DF-set" (type 3, code 4) aangeeft.
Wanneer het bronstation het ICMP-bericht ontvangt, verlaagt het de verzend-MSS, en wanneer TCP het segment opnieuw overbrengt, gebruikt het de kleinere segmentgrootte.
debug ip icmp
Hier is een voorbeeld van een ICMP "fragmentatie nodig en DF set" bericht gezien op een router nadat de opdracht is ingeschakeld:
ICMP: dst (10.10.10.10) frag. needed and DF set unreachable sent to 10.1.1.1
Dit diagram toont de indeling van de ICMP-header van het bericht ‘Bestemming onbereikbaar’ met de code voor ‘Fragmentatie nodig maar DF-bit ingesteld’.
Vanaf RFC 1191 moet een router die een ICMP-bericht stuurt met ‘Fragmentatie nodig maar DF-bit ingesteld’ de MTU van het netwerk van de volgende hop bevatten in de lage 16 bits van het aanvullende ICMP-headerveld dat in ICMP-specificatie RFC 792 het label ‘ongebruikt’ heeft.
Vroegere implementaties van RFC 1191 boden geen MTU-informatie voor de volgende hop. Zelfs wanneer de informatie wel werd geboden, werd deze door sommige hosts genegeerd.
Voor dit geval bevat RFC 1191 ook een tabel met de voorgestelde waarden waarmee de MTU tijdens PMTUD wordt verlaagd.
Het wordt gebruikt door hosts om sneller tot een redelijke waarde te komen voor de verstuurde MSS en zoals in dit voorbeeld wordt getoond.
PMTUD wordt voortdurend op alle pakketten uitgevoerd omdat het pad tussen afzender en ontvanger dynamisch kan veranderen.
Telkens wanneer een afzender ICMP-berichten ontvangt die niet kunnen worden gefragmenteerd, wordt de routerinformatie bijgewerkt (waar de PMTUD wordt opgeslagen).
Tijdens PMTUD kunnen twee dingen gebeuren:
1. Het pakket kan helemaal tot aan de ontvanger worden gebracht zonder te worden gefragmenteerd.
Opmerking: een router kan de CPU beschermen tegen DoS-aanvallen door het aantal onbereikbare ICMP-berichten te beperken tot twee per seconde. Daarom, in deze context, als u een netwerkscenario hebt waarin u verwacht dat de router met meer dan twee ICMP berichten (type = 3, code = 4) per seconde (kunnen verschillende gastheren zijn) zou moeten antwoorden, schakel de verstikking van ICMP berichten met het no ip icmp rate-limit unreachable [df] interface
bevel uit.
2. De afzender krijgt ICMP "Cannot Fragment" berichten van hop langs het pad naar de ontvanger.
PMTUD vindt onafhankelijk plaats voor beide richtingen van een TCP-stroom.
Er zijn gevallen waar PMTUD in de ene richting van een stroom een van de eindstations activeert om te verlagen verzenden MSS en het andere eindstation houdt het origineel verzenden MSS omdat het nooit een IPv4 datagram groot genoeg heeft verzonden om PMTUD te activeren.
Een voorbeeld is de HTTP-verbinding die in voorbeeld 3 is afgebeeld. De TCP-client verzendt kleine pakketten en de server verzendt grote pakketten.
In dit geval worden alleen de grote pakketten vanaf de server (groter dan 576 bytes) geactiveerd als PMTUD.
De pakketten van de cliënt zijn klein (minder dan 576 bytes) en brengen geen PMTUD teweeg omdat zij geen fragmentatie vereisen om over de 576 MTU verbinding te krijgen.
Voorbeeld 4 toont een asymmetrisch routeringsvoorbeeld waar een van de paden een kleinere minimum MTU heeft dan de andere.
Asymmetrische routing vindt plaats wanneer verschillende paden worden gebruikt om data te verzenden en ontvangen tussen twee endpoints.
In dit voorbeeld, leidt PMTUD tot het verlagen van verzend MSS slechts in één richting van een stroom van TCP.
Het verkeer van de TCP-client naar de server gaat via router A en router B. Het retourverkeer van de server naar de client gaat via router D en router C.
Wanneer de TCP server pakketten naar de client verzendt, activeert PMTUD de server om het verzenden van MSS te verlagen omdat router D de 4092 byte pakketten moet fragmenteren voordat het ze naar router C kan verzenden.
Omgekeerd, ontvangt de client nooit een ICMP "Bestemming Onbereikbaar" bericht met de code die "fragmentatie nodig en PDF-set" aangeeft, omdat router A geen pakketten hoeft te fragmenteren wanneer deze via router B naar de server worden verzonden.
Opmerking: de opdracht IP TCP-pad-mtu-detectie wordt gebruikt om TCP-MTU-paddetectie in te schakelen voor TCP-verbindingen die worden gestart door routers (BGP en Telnet bijvoorbeeld).
Dit zijn dingen die PMTUD kunnen doorbreken.
Een router laat een pakket vallen en verzendt geen ICMP-bericht. (Ongebruikelijk)
Een router genereert en verstuurt een ICMP-bericht, maar het ICMP-bericht wordt geblokkeerd door een router of firewall tussen deze router en de afzender. (Gebruikelijk)
Een router genereert en verstuurt een ICMP-bericht, maar de afzender negeert het bericht. (Ongebruikelijk)
De eerste en laatste van de drie kogels hier zijn meestal het gevolg van een fout, maar de middelste kogel beschrijft een algemeen probleem.
Die die ICMP pakketfilters uitvoeren neigen ertoe om alle ICMP berichttypes te blokkeren eerder dan slechts bepaalde ICMP berichttypes te blokkeren.
Het is mogelijk voor pakketfilter om alle ICMP berichttypes behalve die te blokkeren die "onbereikbaar"of "tijd-overschreden zijn."
Het succes of falen van PMTUD hangt af van ICMP onbereikbare berichten die door naar de afzender van een TCP/IPv4 pakket.
ICMP-berichten ‘tijd verstreken’ zijn van belang voor andere IPv4-problemen.
Hier wordt een voorbeeld getoond van een dergelijk pakketfilter, geïmplementeerd op een router.
access-list 101 permit icmp any any unreachable access-list 101 permit icmp any any time-exceeded access-list 101 deny icmp any any access-list 101 permit ip any any
Er zijn andere technieken die kunnen worden gebruikt om het probleem van een volledig geblokkeerde ICMP te verlichten.
Schakel de DF-bit op de router uit en sta fragmentatie toe. (Dit is echter geen goed idee.) zie Problemen met IPv4-fragmentatie voor meer informatie).
Manipuleer de TCP MSS-optiewaarde MSS met de interfaceopdracht ip tcp adjust-mss <500-1460>
.
In het volgende voorbeeld, router A en router B zijn in het zelfde administratieve domein. Router C is ontoegankelijk en blokkeert ICMP, waardoor PMTUD niet werkt.
Een tijdelijke oplossing is om de DF-bit in beide richtingen op router B te wissen om fragmentatie toe te staan. Dit kan worden bewerkstelligd via beleidsroutering.
De syntaxis voor het wissen van de DF-bit is beschikbaar in Cisco IOS®-softwarerelease 12.1(6) en hoger.
interface serial0 ... ip policy route-map clear-df-bit route-map clear-df-bit permit 10 match ip address 111 set ip df 0 access-list 111 permit tcp any any
Een andere optie is om de TCP MSS-waarde te wijzigen bij SYN-pakketten die de router passeren (beschikbaar in Cisco IOS®-versie 12.2(4)T en hoger).
Dit verlaagt de MSS-optiewaarde in het TCP/SYN-pakket zodat deze kleiner is dan de waarde (1460) in de ip tcp adjust-mss
opdracht.
Het resultaat is dat de TCP-afzender segmenten niet groter dan deze waarde verstuurt.
De IPv4-pakketgrootte is 40 bytes groter (1500) dan de MSS-waarde (1460 bytes) om rekening te houden met de TCP-header (20 bytes) en de IPv4-header (20 bytes).
U kunt de MSS van TCP SYN-pakketten aanpassen met de ip tcp adjust-mss
opdracht. Deze syntaxis vermindert de MSS-waarde op TCP-segmenten tot 1460.
Deze opdracht heeft betrekking op zowel inkomend als uitgaand verkeer op interface serial0.
int s0 ip tcp adjust-mss 1460
Problemen met IPv4-fragmentatie komen vaker voor als gevolg van bredere implementatie van IPv4-tunnels.
Tunnels veroorzaken meer fragmentatie omdat de tunnelinsluiting "overhead" aan de grootte van een pakket toevoegt.
Bijvoorbeeld, voegt de toevoeging van Generieke Router Encapsulation (GRE) 24 bytes aan een pakket toe, en na deze verhoging, moet het pakket worden gefragmenteerd omdat het groter is dan uitgaande MTU.
PMTUD is vereist in netwerksituaties waarbij tussenliggende links lagere MTU-waarden hebben dan de MTU van de eindlinks. Enkele gangbare redenen voor het bestaan van deze links met een lagere MTU zijn:
Via Token Ring (of FDDI) verbonden eindhosts met een Ethernet-verbinding tussen de hosts. De MTU’s voor Token Ring (of FDDI) aan de uiteinden zijn groter dan de Ethernet-MTU in het midden.
PPPoE (vaak gebruikt met ADSL) heeft 8 bytes nodig voor de header. Hierdoor wordt de effectieve Ethernet-MTU verlaagd tot 1492 (1500 – 8).
Tunnelprotocollen zoals GRE, IPv4sec en L2TP hebben ook ruimte nodig voor hun respectievelijke headers en trailers. Dit vermindert ook de effectieve MTU van de uitgaande interface.
Een tunnel is een logische interface op een Cisco-router die een manier biedt om passenger-pakketten in te kapselen in een transportprotocol.
Deze architectuur is ontwikkeld om services te bieden voor de implementatie van een point-to-point inkapselingsschema. Tunnelinterfaces hebben deze drie primaire componenten:
Passenger-protocol (AppleTalk, Banyan VINES, CLNS, DECnet, IPv4 of IPX)
Carrier-protocol – één van de volgende inkapselingsprotocollen:
GRE - Cisco multiprotocol transportprotocol. Zie RFC 2784 en RFC 1701 voor meer informatie.
IPv4 in IPv4-tunnels – zie RFC 2003 voor meer informatie.
Transportprotocol – het protocol dat wordt gebruikt voor het overdragen van het ingekapselde protocol.
De pakketten in deze sectie illustreren de concepten van IPv4-tunneling waarbij GRE het inkapselingsprotocol is en IPv4 het transportprotocol.
IPv4 is ook het passenger-protocol. In dit geval is IPv4 zowel het transport- als het passenger-protocol.
Normaal pakket
IPv4 | TCP | Telnet |
Tunnelpakket
IPv4 | GRE | IPv4 | TCP | Telnet |
IPv4 is het transportprotocol.
GRE is het inkapselingsprotocol.
IPv4 is het passenger-protocol.
In het volgende voorbeeld wordt de inkapseling getoond met IPv4 en DECnet als passenger-protocollen en GRE als carrier.
Dit illustreert de mogelijkheid dat de dragerprotocollen meerdere passagiersprotocollen zoals getoond in het beeld inkapselen.
Een netwerkbeheerder overweegt het tunnelen in een situatie waar er twee discontiguous niet-IPv4 netwerken zijn die door een IPv4 backbone worden gescheiden.
Als de discontiguous netwerken DECnet uitvoeren, kan de beheerder ervoor kiezen om ze samen (of niet om) te verbinden door DECnet in de backbone te configureren.
De beheerder wil niet toestaan dat DECnet Routing backbone bandbreedte verbruikt omdat dit de prestaties van het IPv4 netwerk zou kunnen storen.
Een haalbaar alternatief is tunneling van DECnet via de IPv4-backbone. De tunneloplossing kapselt de DECnet-pakketten in IPv4 in en stuurt ze over de backbone naar het tunneleindpunt waar de inkapseling wordt verwijderd en de DECnet-pakketten via DECnet naar hun bestemming worden verstuurd.
Er zijn voordelen om verkeer binnen een ander protocol in te kapselen:
De endpoints gebruiken privé-adressen (RFC 1918) en de backbone ondersteunt geen routing van deze adressen.
Virtual Private Networks (VPN’s) zijn toegestaan op WAN’s of het internet.
Opgedeelde multiprotocol netwerken worden samengevoegd via een backbone met één protocol.
Verkeer wordt versleuteld via de backbone of het internet.
Hierna wordt IPv4 gebruikt als het passagiersprotocol en IPv4 als het transportprotocol.
De volgende overwegingen zijn van toepassing bij tunneling.
Fast switching van GRE-tunnels werd geïntroduceerd in Cisco IOS® versie 11.1 en CEF-switching in versie 12.0.
CEF-switching voor multipoint GRE-tunnels werd geïntroduceerd in versie 12.2(8)T.
Inkapseling en ontkapseling bij tunnel-endpoints waren langzame processen in eerdere versies van Cisco IOS® wanneer alleen proces-switching werd ondersteund.
Er zijn beveiligings- en topologieproblemen bij de tunneling van pakketten. Tunnels kunnen toegangscontrolelijsten (ACL’s) en firewalls omzeilen.
Als u door een firewall tunnelt, passeert u het passagiersprotocol dat wordt getunneld. Het is daarom raadzaam firewallfunctionaliteit op te nemen aan de tunnel-endpoints om beleid af te dwingen op de passenger-protocollen.
Tunneling leidt tot problemen met vervoerprotocollen die tijdopnemers (bijvoorbeeld, DECnet) wegens verhoogde latentie hebben beperkt.
Tunneling over omgevingen met verschillende snelheidskoppelingen, zoals snelle FDDI-ringen en door langzame 9600 Gbps telefoonlijnen, introduceert problemen bij het opnieuw ordenen van pakketten. Sommige passenger-protocollen werken slecht op netwerken met verschillende media.
Point-to-point tunnels verbruiken bandbreedte op een fysieke link. Over meerdere point-to-point tunnels heeft elke tunnelinterface een bandbreedte en de fysieke interface waarover de tunnel loopt heeft een bandbreedte. Stel de tunnelbandbreedte bijvoorbeeld in op 100 Kb als er 100 tunnels over een 10 Mb-verbinding lopen. De standaardbandbreedte voor een tunnel is 9 Kb.
Routing-protocollen geven de voorkeur aan een tunnel boven een echte link, omdat de tunnel op bedrieglijke wijze een één-hop-link met de laagste-kosten-route lijkt te zijn, hoewel er meer hop mee gemoeid is en het daardoor duurder is dan een ander pad. Dit wordt verlicht met juiste configuratie van het routeringsprotocol. Overweeg het uitvoeren van een ander routingprotocol via de tunnelinterface dan het routingprotocol dat op de fysieke interface wordt uitgevoerd.
Problemen met recursieve routing worden vermeden door de juiste statische routes naar de tunnelbestemming te configureren. Er is sprake van een recursieve route wanneer het beste pad naar de tunnelbestemming via de tunnel zelf loopt. In deze situatie is de tunnelinterface niet stabiel. Deze fout wordt gezien wanneer er een recursief routeringsprobleem is.
%TUN-RECURDOWN Interface Tunnel 0 temporarily disabled due to recursive routing
De router heeft twee verschillende PMTUD-rollen wanneer de route het endpoint van een tunnel is.
In de eerste rol is de router het doorsturende apparaat van een hostpakket. Bij PMTUD-verwerking moet de router de DF-bit en pakketgrootte van het oorspronkelijke datapakket controleren en waar nodig gepaste actie ondernemen.
De tweede rol wordt vervuld nadat de router het oorspronkelijke IPv4-pakket heeft ingekapseld in het tunnelpakket. In deze fase fungeert de router meer als host voor PMTUD en het IPv4-tunnelpakket.
Wanneer de router in de eerste rol (een router die IPv4 pakketten door:sturen) handelt, komt deze rol in spelen alvorens de router het gastheer IPv4 pakket binnen het tunnelpakket inkapselt.
Als de router deelneemt als doorgeefster van een hostpakket, voltooit het deze acties:
Controleren of de DF-bit is ingesteld.
Controleren welke pakketgrootte de tunnel kan verwerken.
Fragment (als pakket te groot is en DF-bit niet is ingesteld), fragmenten inkapselen en verzenden; of
Het pakket afwijzen (als pakket te groot is en de DF-bit is ingesteld) en een ICMP-bericht naar de verzender sturen.
Inkapselen (als pakket niet te groot is) en verzenden.
Er kan dus worden gekozen tussen inkapseling en vervolgens fragmentatie (verzending van twee inkapselfragmenten) of fragmentatie en vervolgens inkapseling (verzending van twee ingekapselde fragmenten).
Twee voorbeelden die de interactie van PMTUD en pakketten tonen die voorbeeldnetwerken doorkruisen worden in deze sectie gedetailleerd.
In het eerste voorbeeld wordt getoond wat er gebeurt met een pakket wanneer de router (bij de tunnelbron) de rol van doorsturende router vervult.
Om PMTUD te verwerken, moet de router het DF-bit en de pakketgrootte van het oorspronkelijke gegevenspakket controleren en de juiste actie ondernemen.
In dit voorbeeld is er sprake van GRE-inkapseling voor de tunnel. GRE doet fragmentatie voor inkapseling.
In latere voorbeelden vindt fragmentatie plaats na inkapseling.
In voorbeeld 1 is de DF-bit niet ingesteld (DF = 0) en is de IPv4-MTU van de GRE-tunnel 1476 (1500 – 24).
Voorbeeld 1
1. De verzendende router (bij de tunnelbron) ontvangt een datagram van 1500 bytes met het DF-bit helder (DF = 0) van de verzendende host.
Dit datagram bestaat uit een IP-header van 20 bytes en een TCP-payload van 1480 bytes.
IPv4 | 1480 bytes TCP + data |
2. Omdat het pakket te groot is voor de IPv4 MTU nadat de GRE-overhead (24 bytes) is toegevoegd, breekt de doorstuurrouter het datagram in twee fragmenten van 1476 (20 bytes IPv4 header + 1456 bytes IPv4 payload) en 44 bytes (20 bytes van IPv4 header + 24 bytes van IPv4 payload)
Nadat de GRE-insluiting is toegevoegd, is het pakket niet groter dan de uitgaande fysieke interface MTU.
IP0 | 1456 bytes TCP + data |
IP1 | 24 bytes data |
3. De router voor doorsturen voegt GRE-inkapseling, die een GRE-header van 4 bytes plus een IPv4-header van 20 bytes omvat, toe aan elk fragment van het oorspronkelijke IPv4-datagram.
Deze twee IPv4-datagrammen hebben nu lengtes van 1500 en 68 bytes en worden beschouwd als afzonderlijke IPv4-datagrammen, niet als fragmenten.
IPv4 | GRE | IP0 | 1456 bytes TCP + data |
IPv4 | GRE | IP1 | 24 bytes data |
4. De router van de tunnelbestemming verwijdert de inkapseling GRE uit elk fragment van het originele datagram, dat twee IPv4 fragmenten van lengtes 1476 en 24 bytes verlaat.
Deze IPv4-datagramfragmenten worden afzonderlijk door deze router doorgestuurd naar de ontvangende host.
IP0 | 1456 bytes TCP + data |
IP1 | 24 bytes data |
5. De ontvangende host brengt deze twee fragmenten weer samen in het oorspronkelijke datagram.
IPv4 | 1480 bytes TCP + data |
Voorbeeld 2 schildert de rol van de door:sturen router in de context van een netwerktopologie af.
De router werkt in dezelfde rol van het doorsturen van router, maar dit keer wordt het DF bit ingesteld (DF = 1).
Voorbeeld 2
1. De verzendende router bij de tunnelbron ontvangt een datagram van 1500 bytes met DF = 1 van de verzendende host.
IPv4 | 1480 bytes TCP + data |
2. Aangezien het DF-bit is ingesteld en de grootte van het datagram (1500 bytes) groter is dan de GRE-tunnel IPv4 MTU (1476), laat de router het datagram vallen en verstuurt een "ICMP fragmentatie nodig maar DF bit set"-bericht naar de bron van het datagram.
Het ICMP bericht waarschuwt de afzender dat de MTU 1476 is.
IPv4 | ICMP MTU 1476 |
3. De verzendende host ontvangt het ICMP bericht en wanneer het de oorspronkelijke gegevens opnieuw verstuurt gebruikt het een 1476-byte IPv4 datagram.
IPv4 | 1456 bytes TCP + data |
4. Deze IPv4 datagramlengte (1476 bytes) is nu gelijk in waarde aan de GRE-tunnel IPv4 MTU, zodat de router de GRE-insluiting aan het IPv4 datagram toevoegt.
IPv4 | GRE | IPv4 | 1456 bytes TCP + data |
5. De ontvangende router (op de tunnelbestemming) verwijdert de GRE-insluiting van het IPv4-datagram en stuurt deze naar de ontvangende host.
IPv4 | 1456 bytes TCP + data |
Dit is wat er gebeurt wanneer de router in de tweede rol als verzendende gastheer met betrekking tot PMTUD en met betrekking tot het tunnel IPv4 pakket handelt.
Deze rol komt in spel nadat de router het originele IPv4 pakket binnen het tunnelpakket heeft ingekapseld.
Opmerking: standaard voert een router geen PMTUD uit op de GRE-tunnelpakketten die worden gegenereerd. tunnel path-mtu-discovery
De opdracht kan worden gebruikt om PMTUD voor GRE-IPv4-tunnelpakketten in te schakelen.
In voorbeeld 3 wordt beschreven wat er gebeurt wanneer de host IPv4-datagrammen verzendt die klein genoeg zijn om in de IPv4-MTU van de GRE-tunnelinterface te passen.
In dit geval kan de DF-bit wel of niet zijn ingesteld (1 of 0).
tunnel path-mtu-discovery
De GRE-tunnelinterface heeft de opdracht niet geconfigureerd, zodat de router geen PMTUD instelt op het GRE-IPv4-pakket.
Voorbeeld 3
1. De verzendende router bij de tunnelbron ontvangt een datagram van 1476 bytes van de verzendende host.
IPv4 | 1456 bytes TCP + data |
2. Deze router kapselt het 1476-byte IPv4 datagram in GRE in om een 1500-byte GRE IPv4 datagram te krijgen.
De DF-bit in de GRE IPv4-header wordt gewist (DF = 0). Deze router stuurt dit pakket vervolgens door naar de tunnelbestemming.
IPv4 | GRE | IPv4 | 1456 bytes TCP + data |
3. Stel dat er een router is tussen de tunnelbron en de bestemming met een koppeling MTU van 1400.
Deze router fragmenteert het tunnelpakket aangezien het DF-bit helder is (DF = 0).
Vergeet niet dat dit voorbeeld de buitenste IPv4 fragmenten, zodat de GRE, binnenste IPv4, en TCP-headers alleen in het eerste fragment verschijnen.
IP0 | GRE | IP | 1352 bytes TCP + data |
IP1 | 104 bytes data |
4. De router van de tunnelbestemming moet het GRE-tunnelpakket opnieuw assembleren.
IP | GRE | IP | 1456 bytes TCP + data |
5. Nadat het GRE-tunnelpakket opnieuw is geassembleerd, verwijdert de router de GRE IPv4-header en verstuurt het oorspronkelijke IPv4-datagram onderweg.
IPv4 | 1456 bytes TCP + data |
Voorbeeld 4 laat zien wat er gebeurt wanneer de router in de rol van een verzendende host optreedt met betrekking tot PMTUD en met betrekking tot het IPv4-pakket van de tunnel.
tunnel path-mtu-discovery
Ditmaal wordt het DF-bit ingesteld (DF = 1) in de oorspronkelijke IPv4-header en is de opdracht zodanig geconfigureerd dat het DF-bit wordt gekopieerd van de interne IPv4-header naar de externe (GRE + IPv4)-header.
Voorbeeld 4
1. De verzendende router bij de tunnelbron ontvangt een datagram van 1476 bytes met DF = 1 van de verzendende host.
IPv4 | 1456 bytes TCP + data |
2. Deze router kapselt het 1476-byte IPv4 datagram in GRE in om een 1500-byte GRE IPv4 datagram te krijgen.
Deze GRE IPv4 header heeft de DF bit set (DF = 1) omdat de originele IPv4 datagram de DF bit set had.
Deze router stuurt dit pakket vervolgens door naar de tunnelbestemming.
IPv4 | GRE | IPv4 | 1456 bytes TCP |
3. Opnieuw, veronderstel er een router tussen de tunnelbron en de bestemming met een verbinding MTU van 1400 is.
Deze router fragmenteert het tunnelpakket niet omdat het DF-bit is ingesteld (DF=1).
Deze router moet het pakket laten vallen en een ICMP-foutbericht naar de tunnelbronrouter sturen, omdat dat het IPv4-bronadres op het pakket is.
IPv4 | ICMP MTU 1400 |
4. De verzendende router bij de tunnelbron ontvangt deze "ICMP"-foutmelding en verlaagt de GRE-tunnel IPv4 MTU tot 1376 (1400 - 24).
De volgende keer dat de verzendende host de gegevens opnieuw verzendt in een IPv4-pakket van 1476 bytes, kan dit pakket te groot zijn en deze router verstuurt vervolgens een "ICMP"-foutmelding naar de afzender met een MTU-waarde van 1376.
Wanneer de verzendende host de gegevens opnieuw verzendt, wordt deze verzonden in een IPv4-pakket van 1376 bytes. Dit pakket maakt de gegevens door de GRE-tunnel naar de ontvangende host.
Dit voorbeeld illustreert GRE-fragmentatie. Fragment voor insluiting voor GRE, dan doe PMTUD voor het gegevenspakket, en het DF-bit wordt niet gekopieerd wanneer het IPv4-pakket door GRE wordt ingekapseld.
Het DF-bit is niet ingesteld. De IPv4-MTU van de GRE-tunnelinterface is standaard 24 bytes minder dan de IPv4-MTU van de fysieke interface. De IPv4-MTU van de GRE-interface is dus 1476, zoals aangegeven in de afbeelding.
Dit voorbeeld is vergelijkbaar met Voorbeeld 5, maar deze keer wordt het DF-bit ingesteld. De router is geconfigureerd om PMTUD te doen op GRE + IPv4 tunnelpakketten met de tunnel path-mtu-discovery
opdracht, en de DF-bit wordt gekopieerd van de oorspronkelijke IPv4-header naar de GRE IPv4-header.
Als de router een ICMP-foutbericht ontvangt voor het GRE + IPv4-pakket, verlaagt deze de IPv4-MTU voor de GRE-tunnelinterface.
De GRE Tunnel IPv4 MTU is standaard ingesteld op 24 bytes minder dan de fysieke interface MTU, dus de GRE IPv4 MTU hier is 1476. Er is een 1400 MTU-verbinding in het GRE-tunnelpad zoals in de afbeelding.
debug tunnel
opdracht gebruikt; het kan niet gezien worden in de uitvoer van de show ip interface tunnel<#>
opdracht.Opmerking: Als het tunnel path-mtu-discovery
commando niet is geconfigureerd op de doorsturen router in dit scenario en het DF-bit is ingesteld in de pakketten die door de GRE-tunnel zijn doorgestuurd, is Host 1 er nog steeds in geslaagd TCP/IPv4-pakketten naar Host 2 te verzenden, maar ze worden gefragmenteerd in het midden bij de 1400 MTU-link. Ook de GRE tunnelpeer moet ze opnieuw monteren voordat ze kunnen decapsuleren en doorsturen.
Het IPv4sec-protocol (IPv4 Security) is een op standaarden gebaseerde methode die de privacy, integriteit en authenticiteit garandeert van informatie die via IPv4-netwerken wordt overgedragen.
IPv4sec biedt IPv4-encryptie op de netwerklaag. IPv4sec verlengt het IPv4-pakket door ten minste één IPv4-header toe te voegen (tunnelmodus).
De toegevoegde header(s) varieert in lengte afhankelijk van de IPv4sec-configuratiemodus, maar ze overschrijden niet ~58 bytes (Encapsulating Security payload (ESP) en ESP-verificatie (ESPauth) per pakket.
IPv4sec heeft twee modi: tunnelmodus en transportmodus.
mode transport
, in de transformatiedefinitie) wordt alleen de payload van het oorspronkelijke IPv4-pakket beveiligd (versleuteld, geverifieerd, of beide). De payload wordt ingekapseld door de IPv4sec-headers en ‑trailers. De oorspronkelijke IPv4-headers blijven intact, maar het IPv4-protocolveld wordt gewijzigd naar ESP (50). De oorspronkelijke protocolwaarde wordt opgeslagen in de IPv4sec-trailer en wordt hersteld wanneer het pakket wordt ontsleuteld. De transportmodus wordt alleen gebruikt wanneer het te beschermen IPv4-verkeer tussen de IPv4sec-peers zelf plaatsvindt en de IPv4-adressen voor bron en bestemming in het pakket gelijk zijn aan de adressen van de IPv4sec-peers. Normaliter wordt de IPv4sec-transportmodus alleen gebruikt wanneer een ander tunnelingprotocol (zoals GRE) wordt gebruikt om eerst het IPv4-datapakket in te kapselen, waarna IPv4sec wordt gebruikt om de GRE-tunnelpakketten te beschermen.IPv4sec voert altijd PMTUD uit voor datapakketten en voor de eigen pakketten. Er zijn IPv4sec-configuratieopdrachten om PMTUD-verwerking voor het IPv4sec IPv4-pakket aan te passen. IPv4 kan de DF-bit wissen, instellen of kopiëren van de IPv4-header in het datapakket naar de IPv4sec IPv4-header. Dit wordt de ‘Functionaliteit voor negeren van DF-bit’ genoemd.
Opmerking: fragmentatie na inkapseling voorkomen wanneer hardware-encryptie met IPv4sec is uitgevoerd. Hardware encryptie geeft je doorvoersnelheid van ongeveer 50 Mbps die afhankelijk is van de hardware, maar als het IPv4sec pakket gefragmenteerd is verlies je 50 tot 90 procent van de doorvoersnelheid. Dit verlies wordt veroorzaakt doordat proces-switching wordt toegepast op de gefragmenteerde IPv4sec-pakketten voor het opnieuw samenstellen ervan, waarna ze voor decryptie worden overgedragen aan de engine voor hardware-encryptie. Dit verlies aan doorvoersnelheid kan ertoe leiden dat de snelheid van hardware-encryptie wordt verlaagd tot het prestatieniveau van software-encryptie (2–10 MB).
In dit scenario wordt IPv4sec-fragmentatie in actie getoond. De MTU langs het gehele pad is 1500. In dit scenario is de DF-bit niet ingesteld.
Dit voorbeeld is vergelijkbaar met Voorbeeld 6 behalve dat in dit geval het DF-bit is ingesteld in het originele gegevenspakket en er een koppeling is in het pad tussen de IPv4sec-tunnelpeers die een lagere MTU heeft dan de andere koppelingen.
Dit voorbeeld laat zien hoe de peer router IPv4sec beide PMTUD-rollen uitvoert, zoals beschreven in The Router als een PMTUD-deelnemer aan het eindpunt van een tunnelsectie.
IPv4sec PMTU verandert in een lagere waarde als gevolg van de behoefte aan fragmentatie.
Het DF-bit wordt gekopieerd van de interne IPv4-header naar de externe IPv4-header wanneer IPv4sec een pakket versleutelt.
De MTU- en PMTU-waarde van de media worden opgeslagen in de IPv4sec Security Association (SA).
De MTU van de media is gebaseerd op de MTU van de uitgaande routerinterface; de PMTU is gebaseerd op de minimale MTU in het pad tussen de IPv4sec-peers.
IPv4sec kapselt/versleutelt het pakket voordat wordt geprobeerd het te fragmenteren zoals in de afbeelding.
Complexere interacties voor fragmentatie en PMTUD treden op wanneer IPv4sec wordt gebruikt om GRE-tunnels te versleutelen.
IPv4sec en GRE worden op deze manier gecombineerd omdat IPv4sec geen ondersteuning biedt voor multicast IPv4-pakketten, waardoor geen protocol voor dynamische routing kan worden uitgevoerd via het IPv4sec-VPN.
GRE-tunnels ondersteunen multicast wel, zodat een GRE-tunnel kan worden gebruikt om het multicast pakket eerst via het protocol voor dynamische routing in te kapselen in een unicast GRE IPv4-pakket dat vervolgens door IPv4sec kan worden versleuteld.
Wanneer u dit doet, wordt IPv4sec vaak geïmplementeerd in transportmodus boven op GRE omdat de IPv4sec-peers en de GRE-tunnelendpoints (de routers) hetzelfde zijn en in transportmodus 20 bytes van IPv4sec-overhead worden opgeslagen.
Het wordt interessant wanneer een IPv4-pakket is opgedeeld in twee fragmenten en ingekapseld door GRE.
In dit geval ziet IPv4sec twee onafhankelijke GRE + IPv4-pakketten. Vaak in een standaardconfiguratie is een van deze pakketten groot genoeg dat het moet worden gefragmenteerd nadat het is versleuteld.
De IPv4sec peer moet dit pakket opnieuw assembleren voordat het kan worden gedecrypteerd. Deze ‘dubbele fragmentatie’ (een keer vóór GRE en opnieuw na IPv4sec) op de verzendende router vergroot de latentie en verlaagt de doorvoersnelheid.
De hermontage is proces-switched, zodat is er een CPU-hit op de ontvangende router wanneer dit gebeurt.
Deze situatie kan worden vermeden door de ‘ip mtu’ van de GRE-tunnelinterface laag genoeg in te stellen om rekening te houden met de overhead van zowel GRE als IPv4sec (standaard is de ‘ip mtu’ van de GRE-tunnelinterface ingesteld op de MTU van de werkelijke uitgaande interface – GRE-overheadbytes).
Deze tabel geeft de voorgestelde MTU-waarden voor elke tunnel/moduscombinatie die ervan uitgaat dat de uitgaande fysieke interface een MTU van 1500 heeft.
Tunnelcombinatie | Specifiek benodigde MTU | Aanbevolen MTU |
GRE + IPv4sec (transportmodus) | 1440 bytes | 1400 bytes |
GRE + IPv4sec (tunnelmodus) | 1420 bytes | 1400 bytes |
Opmerking: de MTU-waarde van 1400 wordt aanbevolen omdat deze de meest gebruikelijke combinaties van GRE + IPv4sec-modus dekt. Bovendien is er geen duidelijk nadeel verbonden aan de extra overhead van 20 of 40 bytes. Het is eenvoudiger om slechts één waarde te onthouden en in te stellen die van toepassing is op bijna alle scenario’s.
IPv4sec wordt geïmplementeerd bovenop GRE. De MTU van de uitgaande fysieke interface is 1500, de IPv4sec-PMTU is 1500 en de GRE IPv4-MTU is 1476 (1500 – 24 = 1476).
TCP/IPv4-pakketten zijn daarom twee keer gefragmenteerd, één keer voor GRE en één keer na IPv4sec.
Het pakket is gefragmenteerd voor GRE-insluiting en een van deze GRE-pakketten wordt opnieuw gefragmenteerd na IPv4sec-encryptie.
Door ‘ip mtu 1440’ (IPv4sec-transportmodus) of ‘ip mtu 1420’ (IPv4sec-tunnelmodus) te configureren op de GRE-tunnel wordt in dit scenario de kans op dubbele fragmentatie weggenomen.
Scenario 10 is vergelijkbaar met scenario 8 met dit verschil dat zich nu een link met een lagere MTU in het tunnelpad bevindt. In dit scenario is sprake van het slechtste geval voor het eerste pakket dat van host 1 naar host 2 wordt verzonden. Na de laatste stap in dit scenario stelt Host 1 de juiste PMTU voor Host 2 in en alles is goed voor de TCP-verbindingen tussen Host 1 en Host 2. TCP-stromen tussen host 1 en andere hosts (bereikbaar via de IPv4sec + GRE-tunnel) hoeven alleen door de laatste drie stappen van Scenario 10 te gaan.
tunnel path-mtu-discovery
In dit scenario wordt de opdracht ingesteld op de GRE-tunnel en wordt de DF-bit ingesteld op TCP/IPv4-pakketten die afkomstig zijn van host 1.
show ip interface tunnel<#>
opdracht. U ziet deze verandering alleen als u de debug tunnel
opdracht gebruikt.Het configureren van de tunnel path-mtu-discovery
opdracht op een tunnelinterface kan de interactie tussen GRE en IPv4sec vergemakkelijken wanneer ze op dezelfde router zijn geconfigureerd.
Zonder het tunnel path-mtu-discovery
commando geconfigureerd zou het DF-bit altijd gewist worden in de GRE IPv4-header.
Hierdoor kan het GRE IPv4-pakket worden gefragmenteerd ook al is de DF-bit ingesteld in de ingekapselde data-IPv4-header (waardoor normaliter het pakket niet kan worden gefragmenteerd).
tunnel path-mtu-discovery
Als de opdracht op de GRE-tunnelinterface is geconfigureerd:
tunnel path-mtu-discovery
De opdracht helpt de GRE-interface om zijn IPv4 MTU dynamisch in te stellen, in plaats van statisch met de ip mtu
opdracht. Het wordt aanbevolen beide opdrachten te gebruiken.
ip mtu
De opdracht wordt gebruikt om ruimte te bieden voor de GRE- en IPv4sec-overhead ten opzichte van de lokale fysieke uitgaande interface IPv4 MTU.
tunnel path-mtu-discovery
Met de opdracht kan de GRE-tunnel IPv4 MTU verder worden gereduceerd als er een lagere IPv4 MTU-verbinding is in het pad tussen de IPv4sec-peers.
Hierna volgen enkele oplossingen voor als u problemen ondervindt met PMTUD in een netwerk met geconfigureerde GRE + IPv4sec-tunnels.
De lijst begint met de oplossing die de voorkeur heeft.
ip tcp adjust-mss
op de tunnelinterfaces, zodat de router de TCP MSS-waarde in het TCP/SYN-pakket vermindert. Dit helpt de twee eindgastheren (de afzender en de ontvanger van TCP) om pakketten te gebruiken klein genoeg zodat PMTUD niet nodig is.tunnel path-mtu-discovery
opdracht op de GRE-tunnelinterface configureren. Hierdoor kan de doorvoersnelheid aanzienlijk afnemen omdat opnieuw samenstellen van het IPv4-pakket op de IPv4sec-peer wordt uitgevoerd in de modus proces-switching.Revisie | Publicatiedatum | Opmerkingen |
---|---|---|
4.0 |
17-May-2023 |
Werkte het gedeelte Verwante informatie bij. |
3.0 |
20-Dec-2022 |
Alt Tekst aan afbeeldingen toegevoegd.
Veranderde afbeeldingen .gif naar .png.
Bijgewerkte Inleiding fouten, machinevertaling, stijlvereisten, gerondes en opmaak. |
1.0 |
29-Jul-2002 |
Eerste vrijgave |