IPv6 přes NAT jedním příkazem: technologie Teredo

18. 12. 2008
Doba čtení: 5 minut

Sdílet

Jedním z problémů současného nasazení IPv6 je poměrně komplikovaná tvorba tunelů, potřeba veřejné IPv4 adresy a nemožnost volně s připojeným zařízením cestovat. Řada uživatelů se přes tyto překážky nechce či nemůže přenést, a proto o novém protokolu ani neuvažují. Nasaďte IPv6 doslova jedním příkazem.

Ačkoliv standard IPv6 existuje už více než třináct let, stále se nedočkal masového nasazení. Poskytovatelé se o něj téměř nezajímají, protože od koncových uživatelů nepřichází dostatečná poptávka. Jednou z možností, jak protokol nasadit, je nejprve jej začít používat přímo na koncových zařízeních.

NAT a tunel

Zde ovšem přichází na řadu poměrně komplikovaný proces vytváření a udržování tunelu skrze klasický IPv4 internet. Velká část postupů je pro koncového uživatele velmi komplikovaná, což je hlavní faktor bránící širokému nasazení.

Druhý problém způsobuje samotný tunelovací mechanismus, který vyžaduje poměrně konkrétní situaci v síti, které obvykle vadí především nevhodný NAT systém, který brání v přímém posílání paketů mezi vnější a vnitřní sítí.

Tradiční tunel

Pokud vás technologie Teredo nezajímá a raději byste použili klasický tunel, doporučujeme k přečtení náš nedávný článek s názvem Návod: jak jednoduše a rychle na IPv6?, ve kterém naleznete konkrétní praktické postupy.

Teredo nastupuje

Oba hlavní problémy (NAT a komplikovanost) má za úkol řešit protokol Teredo. Hlavním problémem NATu je, že za normálních okolností nepropouští pakety odesílané z venčí směrem do vnitřní sítě. Jakákoliv komunikace tedy musí být zahájena směrem zevnitř ven.

Poznámka: Přesto neplatí, že NAT funguje jako bezpečnostní mechanismus. Jak je možné jej překonat a dostat se skrze něj do vnitřní síti, jsme si ukázali v článku Proč není NAT totéž co firewall.

Protokol Teredo (dříve Shipworm) byl navržen právě proto, aby zaNATovanou síť dokázal využít a připojit její koncová zařízení do IPv6. Jako pomyslný bonus navíc přidává naprosto pohodlné používání, které je téměř bezobslužné.

Jak to funguje?

Teredo musí v první řadě překonat NAT na routeru (pokud jej používáme). K tomu nevyužívá žádnou magii, ale řídí se zákony klasické maškarády: je třeba vyvolat komunikaci zevnitř. Klientský počítač (respektive Teredo klient) tedy „zavolá“ Teredo server a udržuje s ním spojení.

Celý úspěch ale závisí na tom, jaký NAT používáte. V podstatě můžeme jednotlivé implementace rozdělit do tří kategorií:

  1. trychtýřový NAT
  2. omezený NAT
  3. symetrický NAT

Trychtýřový NAT je nejjednodušší a pro naše účely nejlépe použitelný. Router totiž klientovi přidělí stabilní vnější adresu a port a poté už jen zprostředkovává „přehazování“ paketů. Omezený NAT je na tom hůře, ale také jej můžeme pro Teredo využít. U něj router navíc hlídá, zda pakety přicházejí skutečně z bodu, který jsme už dříve ke komunikaci vyzvali.

Poslední jmenovaný, symetrický NAT, přiděluje každé nově započaté komunikaci vlastní vnější IP adresu a port a s vnitřním počítačem tak není možné vůbec udržet trvalejší kontakt. Symetrický NAT je pro Teredo bohužel zcela nepoužitelný.

Je váš počítač za NAT?

K tunelování pomocí Teredo je používán UDP protokol, do kterého je balena veškerá IPv6 komunikace. Ta je z vašeho Teredo klienta přenášena na takzvaný Teredo server, který už zařídí vše podstatné, včetně přidělení IPv6 adresy, jejíž součástí je i IPv4 adresa vašeho NATujícího routeru. Vše funguje plně automaticky, jediné, co je třeba nakonfigurovat je IPv4 adresa Teredo serveru. Tím úloha uživatele končí.

Praktické nasazení Teredo

Z hlediska uživatele je potřeba jen nainstalovat klienta a nastavit mu Teredo server, který má být pro komunikaci využíván. Pro Linux, FreeBSD, NetBSD a Mac OS X je k dispozici open-source klient miredo, který funguje jako démon. Jeho konfiguračním souborem je /etc/miredo.conf. Nastavit v něm můžete jen název nového síťového rozhraní a váš Teredo server (položka ServerAdress). Je pravděpodobné, že balíček naleznete už předkonfigurovaný ve vaší distribuci. V distribuci Debian je balíček dostupný.

Poznámka: V operačních systémech Microsoftu je situace ještě jednodušší – počínaje Windows Vista totiž přímo Teredo klienta obsahují. Také Windows XP se service packem 1 disponují příslušným software, je však potřeba jej nejprve zapnout.

Bohužel veřejných Teredo serverů není mnoho, můžete využít například tyto tři:

  • debianí: teredo-debian.remlab.net
  • microsoftí: teredo.ipv6.mi­crosoft.com
  • nebo francouzský: teredo.remlab.net

Co se týče použitého serveru, nemusíte se nijak obávat jeho nevhodné volby. Mezi serverem a klientem probíhá relativně slabá komunikace, samotná data jsou mezi koncovými body přenášena přímo a Teredo server při tom není využíván (čtěte dále).

Po nastartování démona se software spojí s nastaveným serverem a je zahájena inicializační procedura. Její součástí je například ověření typu používaného NATu a přidělení IPv6 adresy. Na něm záleží, jak bude probíhat budoucí komunikace. Celý proces trvá několik sekund a pokud využíváte vhodný NAT, můžete rovnou začít komunikovat po šestce.

V případě trychtýřového NATu nic nebrání následné přímé komunikaci dvou Teredo klientů. Na otevřený port a IP adresu (obojí je součástí vaší nové IPv6 adresy) jsou přímo odesílány UDP pakety z druhé strany.

V případě omezeného NATu se přistupuje v podstatě ke stejnému mechanismu, který využívá aplikace nat-traverse (čtěte podrobný článek) pro sestavování UDP tunelu mezi dvěma IPv4 stroji – zasláním prázdných paketů se otevřou na routeru příslušné komunikační porty.

Samozřejmě není nutné komunikovat jen Teredo2Teredo, ale je možno kontaktovat i počítače ve zbytku IPv6 světa. K tomu slouží takzvaní zprostředkovatelé, kteří fungují jako automatické brány mezi IPv4 a IPv6 světy. Klient se k nim dokáže připojovat zcela automaticky, z hlediska uživatele jsou tak naprosto transparentní.

Zda vám vše funguje, můžete ověřit například na Kame.net (pohybující se želvička značí funkční IPv6) nebo na IPv6 check, který vám jednak pogratuluje, ale dozvíte se také například vlastní IPv6 adresu.

Nevýhody Tereda

Je zřejmé, že Teredo má proti klasickému přímému tunelu několik nevýhod. Komunikace pomocí něj je podstatně náročnější na režii, klient musí udržovat informace o otevřených portech a adresách protistran. Software také musí v některých případech průběžně udržovat komunikační kanál s Teredo serverem. Obecně je tedy jeho použití doporučováno jako poslední možnost, pokud selže komunikace s poskytovatelem, případně použití klasického tunelu.

Z uživatelského hlediska je nejvýraznějším problémem podstatně horší výkon proti jiným řešením. Rozdíl mezi IPv4 a IPv6 na stejné síti (při použití Tereda) je propastný. Zatímco klasický ping na mém počítači vrací proti Kame.net hodnotu 6 ms, na šestkovém protokolu se protáhne až na 220 ms. Některým uživatelům může vadit také měnící se IPv6 adresa, která je závislá na vnější adrese routeru a používaném portu.

ict ve školství 24

Proč ano?

Velkou výhodou Teredo je především naprosto snadné nasazení a použití a možnost využití i na mobilních zařízeních, která přecházejí mezi sítěmi. Pokud chcete IPv6 vyzkoušet či používat a váš poskytovatel tvrdošíjně odmítá nový protokol v síti nasadit, můžete Teredo vyzkoušet. Šestkový protokol můžete začít používat během několika sekund.

Další informace naleznete v knize Pavla Satrapy, kterou můžete zdarma stáhnout v naší elektronické knihovně.

Autor článku

Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. Studoval počítače a média, takže je rozpolcen mezi dva obory. Snaží se dělat obojí, jak nejlépe umí.