IP i IP

IP i IP  är ett IP-tunnlingsprotokoll som kapslar in ett IP-paket i ett annat IP-paket. Att kapsla in ett IP-paket i ett annat IP-paket är att lägga till en yttre rubrik med SourceIP som tunnelingångspunkt och Destination som tunnelutgångspunkt. Samtidigt ändrades inte det interna paketet (förutom TTL-fältet, som minskade). Fälten Don't Fragment och The Type of Service måste kopieras till det externa paketet. Om paketstorleken är större än Path MTU fragmenteras paketet i inkapslaren, detta måste finnas i den yttre rubriken. Dekapsulatorn måste sätta ihop förpackningen igen.

IP i IP-inkapsling

Yttre IP-huvud Intern IP-header Användbar information


Den yttre IP-huvudet har följande
versionsfält: 4 bitar
Detta fält innehåller versionsnumret för protokollet. Alltid 4 eftersom IP i IP endast stöds för IPv4.
Rubriklängd: 4 bitar
Detta fält innehåller längden på den externa IP-huvudet.
Typ av tjänst (TOS): 8 bitar
Detta fält är kopierat från den interna IP-huvudet.
Total längd: 16 bitar
Det här fältet innehåller längden på det inkapslade IP-huvudet (inklusive det yttre IP-huvudet, det inre IP-huvudet, nyttolast)
Identifiering: 16 bitar
Det här fältet används för att identifiera de datagramfragment som behövs för att inkapslaren ska kunna återmontera fragmenten. För den yttre IP-huvudet är detta det nya genererade numret.
Flaggor: 3 bitar

R D.F. MF

R:1bit
Denna bit är reserverad och måste sättas till 0.
DF: 1bit
Detta fält indikerar om datagrammet kan vara fragmenterat eller inte. Om en bit är satt till 1 i den inre rubriken, måste den också sättas till 1 i den yttre rubriken, vilket indikerar att datagrammet inte kan fragmenteras. Om en bit är satt till 0 i den inre rubriken kan den vara 1/0 i den yttre rubriken.
MF: 1 bit
Detta fält används när datagrammet är fragmenterat, indikerar att datagrammet innehåller fler fragment, detta fält är inte kopierat från den inre rubriken.
Fragment Offset: 13 bitar
Detta fält används när fragment samlas in.
Time To Live (TTL): 8 bitar
Detta fält används för att hålla reda på datagrammets livslängd. Det interna TTL-huvudet reduceras före inkapsling och ändras inte i dekapsulatorn. Den yttre rubriken ställer in TTL-värdet så att datagrammet levereras till tunnelns slutpunkt.
Protokoll: 8 bitar
Detta fält specificerar nästa datagramprotokoll efter det. Värdet är satt till 4. I de flesta fall blir det IPv4 om det inte finns några ytterligare rubriker för det inkapslade paketet.
Header Checksum: 16 bitar
Detta fält innehåller IP-kontrollsumman för den yttre rubriken.
Källa IP-adress: 32 bitar
Detta fält innehåller IP-adressen för inkapslaren.
Destinations-IP-adress: 32 bitar
Detta fält innehåller IP-adressen för dekapsulatorn.
Alternativ: Variabel längd
Detta fält är inte kopierat från den interna IP-huvudet. Nya alternativ kan läggas till.
Utfyllnad: Variabel längd
Detta fält används för att utfylla datagrammet så att nyttolasten börjar på en 32-bitarsgräns.

Hantera ICMP-meddelanden

Efter att ha tagit emot datagrammet finns det en chans att inkapslaren kommer att ta emot ett ICMP-meddelande från mellanliggande noder. Inkapslaren vidtar åtgärder på ett ICMP-meddelande beroende på typen och koden för ICMP-meddelandet. Följande ICMP-meddelanden med typ och kod, och den åtgärd som vidtagits av inkapslaren.

Slinghantering i tunnlar

Slingor i tunnlar kan uppstå av följande anledningar

  1. När källans IP-adress för datagrammet är densamma som IP-adressen för routern på vilket gränssnitt som helst
  2. När datagrammets käll-IP är samma som tunnelns slutpunkt.

I båda fallen MÅSTE inte routern skicka datagrammet. Istället måste datagrammet kasseras.

Tunnelhantering

För ICMP-meddelanden returnerar mellanroutrar ett 64-bitars datagram över IP-huvudet, vilket inte räcker för att kopiera den inre rubriken. Detta förhindrar inkapslaren från att vidarebefordra motsvarande meddelande till den ursprungliga avsändaren. Men det kan bearbetas av tunnelmjukvaran. Den måste stödja följande

Länkar