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šį.
Įrenginių konfigūravimas
Teredo konfigūravimas Linux operacinėje sistemoje
Teredo tunelio sudarymui linux operacinėje sistemoje yra sukurtas miredo paketas.
Miredo konfigūracinis failas labai primityvus - tereikia nurodyti serverio adresą. Papildomai galima nurodyti sukuriamo interfeiso vardą, kliento naudojamą IP adresą, portą ir t.t. tačiau visų šių parametrų reikšmes miredo gali parinkti automatiškai. miredo.conf pavyzdys:
InterfaceName miredo ServerAddress teredo.litnet.lt
Teredo konfigūravimas Windows operacinėje sistemoje
Teredo tunelio mechanizmas ir protokolas yra sukurtas Microsoft korporacijos, todėl nenuostabu, kad Teredo Windows operacinėse sistemose yra automatiškai įdiegiamas kaip operacinės sistemos dalis.
Windows XP operacinėje sistemoje Teredo įjungiamas tik tuo atveju jei įdiegtas IPv6 palaikymas. Window Vista ir Windows 7 operacinėse sistemose IPv6 palaikymas įjungiamas automatiškai operacinės sistemos instaliacijos metu.
Patikrinti ar Teredo klientas veikia ir kokį Teredo serverį naudoja galite su komanda:
> netsh interface ipv6 show teredo Teredo Parameters --------------------------------------------- Type : client Server Name : teredo.litnet.lt. Client Refresh Interval : default Client Port : default State : qualified Type : teredo client Network : unmanaged NAT : restricted
Pagal nutylėjimą Teredo serveris būna nurodytas teredo.ipv6.microsoft.com.. Pakeisti naudojamą Teredo serverį galima su komanda:
> netsh interface ipv6 set teredo client teredo.litnet.lt. Ok.
Teredo išjungimas
> netsh interface ipv6 set teredo disable Ok.
Teredo įjungimas
> netsh interface ipv6 set teredo client Ok.
LITNET Teredo relay persiunčiamų duomenų statistika
Šiame grafike vaizduojami srautai ateinantys ir išeinantys iš LITNET teredo relay.
[diena] [savaitė] [mėnuo] [metai]
ir - teredo (IPv4) -> IPv6ir - teredo (IPv4) <- IPv6
- Protokolas veikia
- Protokolas tikrinamas
- Protokolas neveikia