Teredo tuneliavimo protokolas
Apibrėžimas
Teredo – tai vienas iš IPv4->IPv6 perėjimo mechanizmų leidžiantis prisijungti prie IPv6 Internet tinklo įrenginiams turintiems priėjimą tik prie IPv4 tinklo. Šis protokolas užtikrina ryšį IPv6 per NAT (Network Address Translation - Tinklo adresų vertimas) tipo įrenginį nepalaikančio IPv6 protokolo versijos. Teredo protokolo aprašymas yra pateiktas IETF RFC-4380 dokumente.
Teredo tuneliu gali naudotis praktiškai visi - tam nebūtina turėti viešo IPv4 adreso (priešingai nei 6to4tuneliui). 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. Teredo protokolas naudoja UDP 3544 prievadą.
Tikslai
Standartinė inkapsuliacija IPv6 į IPv4 reikalauja, kad ir serveris, ir klientas turėtų viešą IP adresą. Tačiau dabar daugelis įrenginių yra prijungti prie interneto IPv4 per vieną ar kelis NAT įrenginius, tik dėl to, kad yra IPv4 adresų stoka. Esant tokiai situacijai vienintelis prieinamas IPv4 adresas priklauso NAT įrenginiui. Teredo protokolas suteikia prieigą prie IPv6 tinklų esant tokiai tinklo konfigūracijai.
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 patenka per Teredo relay įrenginius. IPv6 paketai inkapsuliuojami į IPv4 UDP paketus.
Teredo protokole IPv6 paketai inkapsuliuojami du kartus: pirmą kartą inkapsuliacijai iš IPv6 į IPv4 paketą su nustatyta IPv4 protokolo laukelio reikšme 41, o antrą kartą yra talpinami rezultate gauti IPv4 pakeitai į žinutę paketo IPv4 UDP. Toks dviejų etapų inkapsuliacijos procesas leidžia pereiti pro NAT, tačiau atsigrežia labai padidėjusiom pridėtinėm išlaidom. Be to, Teredo tunelis atlieka tinklo mazgo išpuolių skenavimą, nes tunelinis adapteris Teredo, taip pat atidaro tinklo mazgo prievadą objektams, kurie skverbiasi per užkardą. Taigi šis prievadas gali būti aptiktas ir užpultas. Todėl, dėl padidėjusių pridėtinių išlaidų ir saugumo problemų, tuneliavimo protokolas Teredo yra naudojamas tik kaip kraštutinė priemonė.
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:4b86: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šį.
Apžvalga
Teredo protokolas numato:
• UDP jungimosi patikrinimą per IPv4 (UDPv4) ir NAT aptikimą, jei jis yra junginyje.
• Priskiria galiniam įrenginiui unikalų IPv6 adresą.
• Pakuoja (inkapsuliuoja) IPv6 paketus į deitagramas UDPv4 perdavimui per IPv4 tinklus.
• Atlieka maršrutizavimo funkciją tarp Teredo ir IPv6 tinklo mazgų.
Visi tinklo mazgai su Teredo palaikymu skirstomi į:
• Teredo klientas – tai įprastas IPv4 tinklo mazgas, kuris turi išėjimą į internetą, yra už NAT ir naudoja tuneliavimo protokolą Teredo prisijungimui prie IPv6 tinklo
• Teredo serveris.
• Teredo relay.
• Host-specific-relay Teredo.
Saugumas
Šiuo metu aktyviai diskutuojama apie Teredo protokolo saugumą. Pagrindinė grėsmė yra tai, jog šiuo momentu ne visos užkardos gali filtruoti teredo srautą, kas gali sukelti neleistiną prieigą prie IPv6 tinklo.
LITNET Teredo relay persiunčiamų duomenų statistika
Šiame grafike vaizduojami srautai ateinantys ir išeinantys iš LITNET teredo relay: