Adresní prostor se ,,trošku'' rozšířil na 128 bitů. To znamená že teoreticky připadá na každého člověka na přelidněné Zemi 3.4 x 10 na 28 adres pro notebooky, kapesní počítače, mobily, kalkulačky, televize, rádia, mikrovlnky či ledničky. V praxi ale pro běžné použití získá ,,jen'' 64-bitový adresní prostor (1.8x10^19, no nic moc...).
Adresní prostor byl dále rozdělen do tří kategorií:
Unicast (idividuální): jedno rozhraní nějakého zařízení.
Multicast (skupinové): adresy skupin nějakých zařízení. Paket se rozešle
všem členům skupiny. Používáno pro různé videokonference a tak, ale i místo
broadcastů, které již tak nejsou potřeba.
Anycast (výběrové): Paket je určen pro skupinu jako v Multicast, ale bude
doručen jen na jedno (nejbližší). Klient pošle požadavek serverům a jeden se jej
ujme...
Jednotlivé kategorie se rozlišují pomocí různých prefixů:
0000 0000 Většinou nepoioazeno...
0000 0001 Rezervováno.
001 Běžné IP adresy pro uživatele, identifikují celosvětově a
jednoznačně rozhraní
1111 1111 (FF) Multicast adresy...
1111 1110 10 (FEB) Lokální linkové adresy, jednoznačné jen v rámci fyzické sítě
1111 1110 11 (FEC) Místní lokální adresy, jednoznačné jen pro danou instituci
Kvůli trochu delším adresám byl zaveden nový způsob zápisu. IPv6 adresy
zapisujeme v 16-kové soustavě, čteoice cifer oddělujeme dvojtečkou.
Např: FED1:1234:ABDC:0000:0000:0045:6789:EF01
Nuly na začátku každé čtveřice můžeme vypustit: FED1:1234:ABCD:0:0:45:6789:EF01,
Po sobě jdoucí nulové skupiny lze nahradit dvojicí dvojteček:
FED1:1234:ABCD::45:6789:EF01, ale dvě dvojtečky můžeme zapsat pouze jednou.
A na konec, za lomítko přidáme délku adresního prefixu.
No, ještě že máme DNS.
jsou asi tou pro uživatele nejzajímavější částí, protože identifikují jednotlivá zařízení. Díky délce je směrování paketů docela složitá záležitost, tak aby se směrovačům ulehčilo, je kladen od začátku na pořádek.
Adresy jsou přidělovány systematicky tak, aby všichni zákazníci jednoho
poskytovatele měli stejný prefix. To výrazně usnadní směrování. Proto jsou taky
ip adresy strukturovány hierarchicky:
+---16 bitů----+---16 bitů----+---16 bitů----+---16 bitů----+--------64 bitů--------+ | prefix | poskytovatel | zákazník | podsíť | rozhraní | +--------------+--------------+--------------+--------------+-----------------------+
Část nazvaná rozhraní se vyplní při autmatickém získání adresy. Co se tam dosadí? Nějaké jednoznačné číslo. Nejlépe vygenerované z MAC adresy rozhraní. Tomuto generování se říká EUI-64 a pracuje tak, že se k 48 bitům MAC adresy přidá doprostřed číslo fffe. IPv6 ještě navíc modifikuje hodnotu předposledního bitu v prvním bajtu. Nulu na jedničku:
00:04:76:47:8e:81 -> 0 2 04:76 ff:fe 47:8e81Změny jsou omezerovány...
Hlavička stejně jako vše ostatní prodělala mnoho změn. Hlavně je poměrně krátká (pouhých 40B, avšak 32B zabírají adresy odesílatele a příjemce). Ve zbytku je jen to nejdůležitější (počet hopů - neco jako TTL) a pokud potřebujeme přibalit další informace, tak musíme sáhnout po rozšiřojících hlavičkách. Každá hlavička (základní i rozšiřující) obsahuje položku další hlavička, která říká, co dále následuje.
Hlavičky musí být řazeny podle zajímavosti pro směrovače, tak aby jim to co nejvíce usnadnilo práci.
Rozšiřující hlavičky jsou tyto: Volby pro všechny - informace, které by mohly zajímat směrovač; Směrování - adresy, kterými musí paket projít; Fragmentace - co s rozbitým paketem (fragmentovat může ale jenom odesílatel); Šifrování - obsah je šifrován, co je potřeba k rozšifrování; Autentizace - pro ověření pravosti obsahu a totožnosti odesílatele; Volby pro cíl - informace pro příjemce paketu; Mobilní - potřeba pro komunikaci s přenosným zařízením.
Detailní popis hlavičky poenechám odkazům dole.
IPv6 je narženo s ohledem na uživatele tak, aby nemuseli v podstatě nic konfigurovat (pěkná poedstava...). Takovému uživateli se hned nabízí dvě varianty automatické konfigurace: stavová a bezstavová.
Stavová konfigurace není nic nového. Jedná se v podstatě o DHCP verze 6.
Bezstavová konfigurace je na principu objevování sousedů a nepotřebuje tedy nic jako server. Každý směrovač zde vysílá v pravidelných intervalech tzv. ohlášení směrovače s základníma informacema o síti (prefix sítě či zda je default GW). To je sice pěkné, ale jak se z toho mám dozvědět něco o místních DNS serverech? Alespoň to nahrazuje stávající ARP.
Implementace zabezpečení je u IPv6 povinná. To je jistě výhoda. Kdyby ji jen programátoři nedkládali na později... Většinou máme tedy prostě smůlu.
Existují dva mechanizmy, použijeme je pomocí rozšiřujících hlaviček. Je to šifrování a ověření odesílatele.
Základem pro bezpečnost je datová struktura bezpečnostních politik, soubor pravidel říkající, který paket musí být podroben jakou bezpečnostní prověrkou. Existují to základní pravidla: zahodit, prověřit, pustit bez prověření. Taková pravidla potom např. říkají, že vše od stroje A prověřit a zbytek zahodit...
Podpora mobilních zařízení existuje. A je prostá. Každé zařízení má svoji domácí síť a tedy i domácí IP adresu. Ta je zanesena v DNS a na ni přicházejí spojení. Pokud je stroj zrovna na cestách, je zastoupen svým domácím agentem (nějakým směrovačem v domácí síti). Tento domácí agent převezme roli naší cestující kalkulačky a odpovídá na vše za ni a data pošle na kalkulačku, která průběžně informuje, kde se zrovna nachází.
Nyní nám již nic nebrání v nastavení statické ipadresy pro rozhraní na serveru. To se provede pomocí příkazu ip s parametry.
ip addr add 7a5e:14:ad9e::5a/prefix dev sitovka
Ale co stanice? Tam je lepší nechat nastavování na autokonfiguraci. S tou nám výrazně pomůže program radvd, který rozesílá patřičná oznámení o síti po síti. jeho konfigurace je poměrně jednoduchá, provádí se souborem /etc/radvd.conf.
Zde je jeden opsaný příklad:# Posíláme do vnitřní sítě interface eth1 { # Povolíme odesílání AdvSendAdvert on; # Nastavíme prefix prefix 3ffe:ffff:1234::/64 { # Platnost adresy bude 1 hodina AdvValidLifetime 3600; }; };
Další volby jsou v manuálové stránce a pro ladění existuje program radvdump.
Na stanicích není samozřejmě nutné nic nastavovat.
Podpora ze strany poskutovatelů a správců sítě zatím není moc růžová. Málokde můžeme vybudovat pořídnou IPv6 síť. Proto je nutné si tu a tam pomoc malým tunýlkem mezi dvěma IPv6 stroji přes IPv4 síť.
Na začátku tunelu se IPv6 paket zabalí do svého staršího bráchy, protáhne se až na druhý konec, kde se zase vybalí a nechá putovat tak jak byl. Cesta se zabalenému paketu zdá dlouhá jako jeden HOP.
Pro vytvoření tunelu nám slouží již dříve použitý program ip:
ip tunnel add bahamy mode sit local 12.34.56.78 remote 87.65.43.21 ttl 64Tunel se jmenuje bahany a je z našeho PC pod stolem 12.34.56.78 až na druhou stranu, stroj 87.65.54.32.21. Nyni jej ještě aktivujeme.
ip link set bahamy upA už můžeme testovat.
Dále je potřeba mít globální IPv6 adresu a nastavit si routování a firewall. Zde musím upozornit, že pakety IPv6 zabalené do IPv4 běhají na portu 41. Bylo by tedy záhodno si jej povolit. Pro nastavení firewallu pro IPv6 slouží program ip6tables, který má stejné použití jako verze pro starší protokol.
Jak si nastavit routování nechám jen v odkazech dole.