Portál AbcLinuxu, 25. dubna 2024 17:05

IPv6 - nový Internet

7. 3. 2008 | Pavel Šimerda
Články - IPv6 - nový Internet  

Počítače současného Internetu spolu komunikují převážně pomocí protokolu IPv4. Tato verze sloužila dlouho a prokázala svoji robustnost a použitelnost. Přesto se už dlouhou dobu projevují její omezení. A bude už jenom hůř.

Největším kamenem úrazu IPv4 (RFC 791, Internet Protocol version 4, z roku 1981) je 32bitový adresový prostor. Každý počítač na Internetu má svou veřejnou IP adresu. Takových počítačů může být teoreticky okolo čtyř miliard. Takové číslo zní hezky, ale nezapomeňte, že některé rozsahy jsou vyhrazeny specifickým účelům a jiné jsou přidělené organizacím, které je zdaleka nevyužívají. Rovněž se rozšiřuje množství různých jednoúčelových zařízení s vlastní IP adresou (tiskárny, kamery, síťové disky a další).

Protože je změna velikosti adresového prostoru velmi náročná a drahá, hledala se nejdřív opatření, která se obejdou bez ní. Jedním z nich bylo zavedení agregace po bitech místo po třídách, které nabízely adresový prostor jednoho až tří celých bajtů (RFC 4632, Classless Inter-Domain Routing). Toto opatření problém výrazně oddálilo. Jedinou další možností, jak získat z IPv4 prostoru další adresy, je začít odebírat rozsahy subjektům, které je nevyužívají. Nejenže by to opět jen oddalovalo řešení, ale navíc vyvolalo negativní reakci dotyčných subjektů.

Za dnes velmi populárním způsobem obcházení nedostatku adres stojí myšlenka, že není potřeba přidávat tolik dalších počítačů a zařízení na Internet. Počítá s konzumním modelem využívání Internetu, při kterém koncový uživatel buď musí za jednotlivé adresy platit (pokud jsou vůbec k dispozici), nebo se musí spokojit s tím, že jeho počítač není součástí veřejného Internetu. Takovému přístupu se pak říká IP maškaráda nebo zjednodušeně (a mnohem častěji) NAT. Adresování vnitřní sítě se pak řeší některým z privátních rozsahů (RFC 1918, Address Allocation for Private Internets). Pokud má zákazník to štěstí, že má aspoň jednu veřejnou IP adresu, může směrováním portů a dalšími technikami obcházet omezení, které absence dalších veřejných adres způsobuje.

Asi nepřirozenějším řešením je použít novou verzi IP (RFC 2460, Internet Protocol, Version 6). Ta nám, kromě zvětšení adresového prostoru, přinese i další vylepšení a zjednodušení. Na druhou stranu nám přinese problémy spojené s přechodem od IPv4 k IPv6 a také s provozováním obou sítí zároveň (což jistě bude na dlouhou dobu nutnost). Nová verze protokolu řeší stejné problémy a slouží stejnému účelu jako předchozí, ale je lépe přizpůsobena dnešní podobě Internetu a především jeho rozsahu. Proto také zachovává většinu rysů původního IP protokolu, některé jen mírně vylepšuje.

Struktura paketu

Hlavička IPv4 paketu zabírá 160 nebo více bitů (20 nebo více bajtů), podle počtu rozšiřujících polí (Options) a zahrnuje, mimo jiné, dvě 32bitové adresy, verzi protokolu, velikost hlavičky, informace o fragmentaci a velikost paketu. IPv6 zabírá vždy 320 bitů (40 bajtů), což není tak zlé, vzhledem ke čtyřnásobným (128bitovým) adresám. Odpadají informace o fragmentaci, stejně už se dnes fragmentují pakety v koncových bodech a ne na routerech. Také samozřejmě odpadá délka hlavičky a místo pole Protocol se používá Next Header, které navíc umožňuje vkládat rozšiřující hlavičky (náhrada za options). Zajímavostí je, že se nepoužívá kontrolní součet hlavičky, ale spoléhá se na linkovou vrstvu. Tím se zjednodušuje práce routerů, které ho už nemusí přepočítávat kvůli změnám pole Hop Limit (dříve TTL, počet uzlů, do kolika smí paket při pokusu o doručení ještě vstoupit).

IPv6 header
Zdroj obrázku Wikipedia, licence FDL.

Adresování sítí

Už víme, že je IPv6 adresa dlouhá 128 bitů (počet možných adres, porovnávání s počtem hvězd ve vesmíru a podobné hříčky přenechám čtenáři). Taková délka umožňuje adresy lépe strukturovat. Adresy uzlů se zapisují jako skupina osmi 16bitových hexadecimálních čísel oddělených dvojtečkami.

2001:0db8:85a3:08d3:1319:8a2e:0370:7344

Adresy sítí se zapisují stejně, jen se na konec přidá lomítko a počet společných bitů, ostatní se dávají nulové (následující dva zápisy označují stejnou adresu).

2001:0db8:85a3:08d3:0000:0000:0000:0000/64
2001:0db8:85a3:08d3::/64

Adresa uzlu se dá rovněž zapisovat společně s adresou sítě.

2001:0db8:85a3:08d3:1319:8a2e:0370:7344/64

Nevýznamové nuly se mohou vynechávat, jeden blok nulových čísel jde nahradit čtyřtečkou (i na začátku nebo na konci adresy). Následuje několik různých zápisů téže adresy.

2001:0db8:0000:0000:0000:0000:1428:57ab
2001:0db8:0000:0000:0000::1428:57ab
2001:0db8:0:0:0:0:1428:57ab
2001:0db8:0:0::1428:57ab
2001:0db8::1428:57ab
2001:db8::1428:57ab

Adresy se přidělují jednotlivým síťovým rozhraním, ne uzlům a dělí se na tři typy: unicast (adresa s jedním konkrétním cílem), anycast (adresa, která slouží k nalezení nejbližšího odpovídajícího cíle) a multicast (adresa, která slouží k dosažení celé skupiny cílů). Vedle těchto typů je také důležitý rozsah platnosti (scope); důležité jsou především globální (global) a lokální, používaný v rámci jednoho spoje (link-local). Adresový prostor je hierarchicky organizovaný (RFC 4291, IP Version 6 Addressing Architecture).

Rozdělení adresového prostoru

Z adresového prostoru IPv6 jsou vyděleny speciální adresy a rozsahy. Adresa se samými nulami (0:0:0:0:0:0:0:0 nebo zkráceně ::) se používá jako speciální hodnota a značí nevyplněnou adresu. Jedna jednička, která následuje za samými nulami (0:0:0:0:0:0:0:1, zkráceně ::1) je adresou místní smyčky (jako IPv4 127.0.0.1). Multicast má vyhrazený rozsah ff00/8, link-local unicast je fe80::/10. Ostatní adresy jsou global unicast. Na IPv6 anycast adresy jsem nezapomněl, ty se nachází ve stejném rozsahu jako unicast a zatím jsem narazil na jejich použití pouze u mobility (adresa sítě je zároveň anycast adresou jejích routerů) a redundance.

Link-local unicast adresy

Každé IPv6 rozhraní má svoji link-local IPv6 adresu, která slouží ke komunikaci s ostatními stroji na stejném ethernetovém segmentu. Ta zůstává platná bez ohledu na globální adresy. Link-local adresy se používají k routování, sdílení služeb po místní síti a dalším věcem. Při používání link-local adres nezapomeňte uvádět síťové zařízení, to nejde z adres zjistit.

Globální unicast adresy

S výjimkou speciálních (začínajících bity 000) mají druhou polovinu vyhrazenou pro 64bitový identifikátor síťového rozhraní. Takový identifikátor se získává z EUI-64 (Extended Unique Identifier) převrácením bitu, který určuje, jestli je identifikátor globálně unikátní. Rovněž je možné získat EUI-64 doplněním bajtů FF:FF doprostřed MAC-48 (ethernetová adresa) nebo FF:FE doprostřed EUI-48. Zajímavostí je, že pro účely IPv6 se i MAC-48 považuje za EUI-48. Protože tyto identifikátory sdílejí adresový prostor, nemůže to ničemu vadit. Více o automatické konfiguraci a používání EUI-64 v IPv6 se dozvíte příště.

První část adresy se typicky dělí na 48 bitů globálního routovacího prefixu, a 16 bitů pro místní rozdělování na podsítě. Zákazník tedy v lepším případě získá 48bitový prefix a zbývá mu 16 bitů pro podsítě a 64 bitů pro identifikátor rozhraní.

Multicast

Popis multicastu by vydal na samostatný článek. Multicast jednak nahrazuje dřívější broadcasty, jednak umožňuje efektivní provozování některých služeb (vysílání rozhlasových nebo televizních stanic, objevování koncových počítačů, routerů a služeb na síti.

Mobilní IPv6

Mobilita spočívá v tom, že mobilní uzel (koncový počítač) používá pořád stejnou IPv6 adresu, bez ohledu na to, ke které síti se připojí. Toho se docílí směrováním komunikace přes domácího agenta, který danou adresu obhospodařuje. Směrování přes domácího agenta se docílí přidáním routovací hlavičky (Type 2 Routing Header).

IPsec

IP security je povinnou součástí IPv6 a nepovinným rozšířením IPv4. Zajišťuje šifrování a integritu paketů, autentizaci komunikujících subjektů a ochranu proti replay útokům. Může pracovat v transportním módu (transport mode) a tunelovém módu (tunnel mode). V prvním případě se šifrují a autentizují data (autentizace si hlídá navíc adresy) a je určený ke komunikaci jednotlivých uzlů. Druhý slouží k propojování sítí a šifrují a autentizují se pak celé pakety.

Historie podpory IPv6 v některých OS

Zatímco první náznaky podpory IPv6 v Linuxu se objevují v roce 1996 (kernel 2.1.8), následované podporou v IBM AIX, Microsoft přichází s první ukázkou v roce 1998. Systémy z rodiny BSD se dočkaly v roce 2000, stejně jako Sun Solaris. Cisco nabízí IPv6 od roku 2001. Windows XP SP1 (2002) a Windows Server 2003 už počítají s jeho reálným nasazením. S povolením IPv6 ve výchozím nastavení je předběhl o čtyři roky Apple Mac OS X Panther (2003), než přišly Windows Vista (2007).

Zajímavosti

Vlády některých zemí (například USA) vyžadují od sítí svých úřadů připravenost na IPv6. Zajímavým hráčem na tomto poli je také Čína. Zatímco USA má zhruba třetinu IPv4 prostoru, v Číně je více uživatelů vysokorychlostního Internetu než veřejných IPv4 adres. Svoje síťové schopnosti chtějí předvést na letošních letních olympijských hrách, kde plánují k sesíťování zařízení používat výhradně IPv6. Tuto informaci berte prosím s rezervou, mám ji jen z Wikipedie.

IPv6 URL

Tak jako existují URL, která mají místo hostname IPv4 adresu, používají se i URL s IPv6 adresou, která se ale dává do hranatých závorek (http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]/cesta/k/něčemu, https://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]:443/). Podobně je to samozřejmě i u jíných protokolů než HTTP a HTTPS.

Co nás čeká příště?

Už jsem prozradil, že se podíváme na automatickou konfiguraci IPv6 adres. Ta je však velmi jednoduchá. Mnohem více se budeme zabývat tunelováním IPv6 po stávající infrastruktuře, protože velká část z vás nemá přístup k nativní IPv6 síti.

Seriál IPv6 (dílů: 5)

První díl: IPv6 - nový Internet, poslední díl: Architektura IPv6 – konfigurace adres a objevování sousedů (2).
Následující díl: IPv6 - konfigurace sítě, tunely

Související články

Jemný úvod do adresace v protokolu IP verze 4
DHCP - 1 (instalace a konfigurace serveru)
DHCP - 2 (DDNS, relay agent, klient)

Odkazy a zdroje

Wikipedia: IPv6

Další články z této rubriky

PowerDNS – přívětivý a jednoduchý DNS server
Bootování ze sítě: pxelinux a kořenový adresář na NFS
Těžký život Do Not Track
OpenAFS – servery
Architektura IPv6 – konfigurace adres a objevování sousedů (2)

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.