IP i IP

IP i IP  er en IP-tunnelingsprotokol, der indkapsler en IP-pakke i en anden IP-pakke. Indkapsling af en IP-pakke i en anden IP-pakke er at tilføje en ydre header med SourceIP som tunnelindgangspunkt og Destination som tunneludgangspunkt. Samtidig blev den interne pakke ikke ændret (bortset fra TTL-feltet, som faldt). Felterne Don't Fragment og The Type of Service skal kopieres til den eksterne pakke. Hvis pakkestørrelsen er større end Path MTU , er pakken fragmenteret i indkapslingen, dette skal være i den ydre header. Dekapsulatoren skal samle pakken igen.

IP i IP-indkapsling

Ydre IP-header Intern IP-header Brugbar information


Den ydre IP-header har følgende
versionsfelter: 4 bit
Dette felt indeholder protokollens versionsnummer. Altid 4, fordi IP i IP kun understøttes for IPv4.
Header Længde: 4 bit
Dette felt indeholder længden af ​​den eksterne IP-header.
Tjenestetype (TOS): 8 bit
Dette felt er kopieret fra den interne IP-header.
Samlet længde: 16 bit
Dette felt indeholder længden af ​​den indkapslede IP-header (inklusive den ydre IP-header, indre IP-header, nyttelast)
Identifikation: 16 bit
Dette felt bruges til at identificere de datagramfragmenter, der er nødvendige for, at indkapslingen kan samle fragmenterne igen. For den ydre IP-header er dette det nye genererede nummer.
Flag: 3 bits

R D.F. MF

R:1bit
Denne bit er reserveret og skal sættes til 0.
DF: 1bit
Dette felt angiver om datagrammet må være fragmenteret eller ej. Hvis en bit er sat til 1 i den indre header, så skal den også sættes til 1 i den ydre header, hvilket indikerer at datagrammet ikke kan fragmenteres. Hvis en bit er sat til 0 i den indre header, så kan den være 1/0 i den ydre header.
MF: 1 bit
Dette felt bruges når datagrammet er fragmenteret, indikerer at datagrammet indeholder flere fragmenter, dette felt er ikke kopieret fra den indre header.
Fragment Offset: 13 bit
Dette felt bruges, når fragmenter indsamles.
Time To Live (TTL): 8 bit
Dette felt bruges til at holde styr på datagrammets levetid. Den interne TTL-header reduceres før indkapsling og ændres ikke i dekapsulatoren. Den ydre header indstiller TTL-værdien, således at datagrammet leveres til tunnelens endepunkt.
Protokol: 8 bit
Dette felt specificerer den næste datagramprotokol efter det. Værdien er sat til 4. I de fleste tilfælde vil det være IPv4, hvis der ikke er yderligere headere til den indkapslede pakke.
Header Checksum: 16 bit
Dette felt indeholder IP checksummen for den ydre header.
Kilde IP-adresse: 32 bit
Dette felt indeholder IP-adressen på encapsulatoren.
Destinations-IP-adresse: 32 bit
Dette felt indeholder IP-adressen på dekapsulatoren
Valgmuligheder: Variabel længde
Dette felt er ikke kopieret fra den interne IP-header. Nye muligheder kan tilføjes.
Padding: Variabel længde
Dette felt bruges til at udfylde datagrammet, så nyttelasten starter på en 32 bit grænse.

Håndtering af ICMP-meddelelser

Efter modtagelse af datagrammet er der en chance for, at indkapslingsmaskinen vil modtage en ICMP-meddelelse fra mellemliggende noder. Indkapslen foretager handling på en ICMP-meddelelse afhængigt af typen og koden for ICMP-meddelelsen. Følgende ICMP-meddelelser med type og kode, og den handling, som indkapsleren foretager.

Sløjfehåndtering i tunneler

Sløjfer i tunneler kan forekomme af følgende årsager

  1. Når datagrammets kilde-IP-adresse er den samme som IP-adressen på routeren på en hvilken som helst grænseflade
  2. Når datagrammets kilde-IP er den samme som tunnelens endepunkt.

I begge tilfælde SKAL routeren ikke sende datagrammet. I stedet skal datagrammet kasseres.

Tunnel Management

For ICMP-meddelelser returnerer mellemroutere et 64 bit datagram over IP-headeren, hvilket ikke er tilstrækkeligt til at kopiere den indre header. Dette forhindrer indkapslen i at videresende den tilsvarende besked til den oprindelige afsender. Men det kan behandles af tunnelsoftwaren. Den skal understøtte følgende

Links