Teredo tunelis
Prisijungimas prie IPv6 tinklo panaudojant Teredo tunelį
Teredo tunelis, tai dar vienas iš IPv4->IPv6 perėjimo mechanizmų leidžiantis prisijungti prie IPv6 Internet tinklo įrenginiams turintiems priėjimą tik prie IPv4 tinklo.
Teredo tuneliu gali naudotis praktiškai visi - tam nebūtina turėti viešo IPv4 adreso (priešingai nei 6to4 tuneliui). Tai buvo vienas iš esminių reikalavimų kuriant Teredo protokolą. Dėl šios savybės Teredo tunelį gali sudaryti ir naudotis įrenginiai esantys už vieno ar daugiau maršrutizatorių atliekančių NAT.
Veikimo principas
Teredo klientas pasinaudodamas Teredo serveriu gauna Teredo IPv6 adresą ir sužino savo viešą IPv4 adresą, bei NAT įrenginio tipą. Su kitais Teredo tunelio naudotojais klientas bando užmegzti tiesioginį ryšį per IPv4. Į IPv6 tinklą Teredo klientai patenką per Teredo relay įrenginius. IPv6 paketai enkapsuliuojami į IPv4 UDP paketus.
Adresai
Teredo tuneliams yra išskirtas specialus IPv6 prefiksas 2001:0::/32. Sutrumpintai šį prefiską galima užrašyti 2001::/32, tačiau reikia atkreipti dėmesį, kad prefikso ilgis yra 32, o ne 16 bitų. Tai reiškia, kad Teredo adresai visada bus 2001:0:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx, o ne 2001:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx. Likę 96 bitai priskiriami taip:
- 32 bitai serverio IPv4 adresui
- 16 bitų Teredo vėliavėlėms (Cxxx xx00 xxxx xxxx, čia C parodo ar įrenginys yra už "cone" tipo NAT, x žymi atsitiktinai parenkamas reikšmes, 0 - fiksuota reikšmė)
- 16 bitų paslėptam kliento portui
- 32 bitai paslėptam kliento IPv4 adresui
Kliento portas ir IPv4 adresas paslepiamas atliekant xor operaciją su reikšme 0xffffffffff.
Teredo kliento adreso pavyzdys: 2001:0:c1db:3d39:34dc:4b83:5601:9021.
- 2001:0 - parodo, kad tai Teredo adresas
- c1db:3d39 - naudojamo Teredo serverio IPv4 adresas (0xc1db3d39 = 193.219.61.57)
- 34dc - Teredo vėliavėlės (0x34dc = 0011 0100 1101 1100)
- 4b86 - paslėptas kliento portas (0x4b86 xor 0xffff = 0xb479 = 46201)
- 5601:9021 - paslėptas kliento IPv4 adresas (0x56019021 xor 0xffffffff = 0xa9fe6fde = 169.254.111.222)
Teredo serveris yra naudojamas tik porto ugniasienėje atidarymui ir Teredo relay įrenginių paieškai, todėl duomenų srautas siunčiamas į Teredo serverį yra pakankamai mažas. Nepaisant to nauji ryšiai per Teredo užmezgami greičiau jei naudojamas Teredo serveris su kuriuo turite gerą ryšį.