Algoritmus pro překlad IP a ICMP mezi verzemi 4 a 6 představuje základ všech mechanismů pro přechod mezi těmito dvěma světy. Původně nesl název Stateless IP/ICMP Translation (SIIT) a byl definován v RFC 2765. V roce 2011 byla tato specifikace nahrazena RFC 6145, která je součástí skupiny definic kolem DNS64 a pojem SIIT příliš nepoužívá.
Základním přínosem algoritmu je, že definuje univerzální pravidla pro překlad jednotlivých hlaviček IP datagramů a ICMP zpráv mezi verzemi 4 a 6. Postupuje při tom bezstavově - neukládá si žádné informace, každý datagram překládá zcela samostatně, bez vazeb na předchozí provoz.
Překladová pravidla mají svá omezení, například nepodporují žádná rozšíření - volby ze strany IPv4 a rozšiřující hlavičky ze strany IPv6. Tyto informace se při překladu ztratí, nelze proto například provozovat IPsec či podporu mobilních zařízení mezi dvěma stroji hovořícími odlišným protokolem.
Proti původní verzi byl z textu vypuštěn IPv6 adresa s vloženou IPv4 (IPv4-Embedded IPv6 Address), kterému je nyní věnováno samostatné RFC 6052. Mapování adres může probíhat dvěma způsoby - buď bezstavově, kdy jsou adresy vzájemně převáděny jednoduchým fixním výpočtem, nebo stavově, kdy si zařízení udržuje tabulku vztahů mezi adresami. Může se jednat i o kombinaci obou přístupů - například NAT64 převádí IPv4 adresy na IPv6 bezstavově podle RFC 6052, zatímco opačný převod je stavový.
Verze | = 6 |
Třída provozu | = TOS |
Značka toku | = 0 |
Délka obsahu | = Celková délka z IPv4 hlavičky - délka IPv4 hlavičky |
Další hlavička | = Protokol, hodnotu 1 (ICMPv4) změnit na 58 (ICMPv6) |
Max. skoků | = TTL - 1 |
Adresa odesilatele | = podle mapování |
Cílová adresa | = podle mapování |
Speciální ošetření vyžaduje Fragmentace. Pokud je zakázáno fragmentovat původní IPv4 datagram (příznak Don't Fragment), přeloží se datagram 1:1 a pokud je výsledný IPv6 datagram větší než MTU odchozí linky, pošle odesilateli standardní ICMPv4 chybu. Je-li fragmentace povolena, měl by překladač generovat IPv6 datagramy velikosti maximálně 1280 B, a tedy případně fragmentovat. Doporučuje se přidávat hlavičku Fragmentace i nefragmentovaným datagramům jako indikaci, že odesilatel ji povolil. RFC 6145 doporučuje, aby maximální velikost datagramů i vkládání nepotřebných fragmentačních hlaviček byly konfigurovatelné.
Verze | = 4 |
Délka hlavičky | = 5 |
TOS | = Třída provozu |
Celková délka | = Délka obsahu z IPv6 hlavičky + 20 |
Identifikace | = 0 (nebo Identifikace z hlavičky Fragmentace) |
Příznaky | MF=0, DF=1 (nebo MF=M z Fragmentace a DF=0) |
Posun fragmentu | = 0 (nebo Posun fragmentu z Fragmentace) |
TTL | = Max. skoků - 1 |
Protokol | = transportní protokol z IPv6 hlaviček, hodnotu 58 (ICMPv6) změnit na 1 (ICMPv4) |
Kontrolní součet | = vypočíst |
Adresa odesilatele | = podle mapování |
Cílová adresa | = podle mapování |
Práce s fragmentací je v tomto případě jednodušší. Pokud IPv6 datagram neobsahuje hlavičku Fragmentace, příslušné položky se vynulují a IPv4 datagramu se zakáže fragmentace (příznak DF=1). V opačném případě se údaje do položek souvisejících s fragmentací převezmou z příslušné rozšiřující hlavičky. V tomto případě je další fragmentace povolena.
Pravidla pro vzájemný překlad obou verzí ICMP jsou zatížena řadou výjimek, protože některé typy zpráv existují jen v jedné verzi. Jejich základ však tvoří podobně přímočarý převod mezi odpovídajícími položkami ICMP hlaviček jako v případě IP datagramů.
CESNET, z. s. p. o.
Generála Píky 26
160 00 Praha 6
Tel: +420 234 680 222
Fax: +420 224 320 269
info@cesnet.cz
Tel: +420 234 680 222
GSM: +420 602 252 531
Fax: +420 224 313 211
support@cesnet.cz