Technologie internetu (3.): Internet Protocol verze 6

20. 8. 2007

Sdílet

Zásadním a doufejme i definitivním lékem na nedostatek IP adres, o němž byla řeč již minule, je razantní zvýšení jejich počtu cestou zvýšení počtu adresových bitů. Tato změna byla realizována v podobě nové verze protokolu IP. A protože stávající verze má číslo 4, byla nová verze označena jako IP verze 6 neboli IPv6.

Zásadním a doufejme i definitivním lékem na nedostatek IP adres, o němž byla řeč již minule, je razantní zvýšení jejich počtu cestou zvýšení počtu adresových bitů. Tato změna byla realizována v podobě nové verze protokolu IP. A protože stávající verze má číslo 4, byla nová verze označena jako IP verze 6 neboli IPv6.

Chybějící verze IPv5 zmizela v propadlišti dějin – v 70. letech minulého století tak byl dost nešťastně označen pokusný protokol ST (Internet Streaming Protocol), který měl sloužit k přenosu hlasu, videa a distribuovaných simulací. IPv6 je vcelku velmi konzervativním rozšířením stávající verze 4. Kromě délky IP adres zavádí jen několik zásadnějších změn, jimiž se budeme postupně zabývat také v dalších pokračováních seriálu.

Adresy IPv6 sestávají ze 128 bitů a jejich celkový počet je věru úctyhodný: 3,4x1038. Pro představu, na každý čtvereční centimetr zemského povrchu včetně moří připadá přes 66 trilionů adres (to je řád s 19 nulami).

Přínos těchto závratných čísel spočívá především v tom, že dávají dostatečný prostor pro jednoduché a jednotné strukturování IP adres, jež je v současné době vtěleno do následujících pravidel:
1. Celá pravá polovina adresy IPv6 – tedy 64 bitů nejnižších řádů – je vyhrazena pro identifikátor rozhraní.
2. Šestnáct bitů nalevo od identifikátoru rozhraní je identifikátor podsítě.
3. Zbývajících 48 bitů nejvyšších řádů představuje globální směrovací prefix.

Tato pravidla v praxi znamenají, že libovolný zákazník dostane od svého poskytovatele připojení prefix o délce 48 bitů. Z nich může podle potřeby 16 bitů použít na rozdělení své vnitřní sítě do podsítí a 64 bitů musí být použito na identifikátory rozhraní. Pro většinu zákazníků (snad s výjimkou mamutích společností, jimž nestačí prefix /48) tak odpadne povinnost zdůvodnit své požadavky na přidělení adres.

Dobrá, takže 80 adresových bitů do každé rodiny. Není to ale zbytečné plýtvání, které nás může znovu přivést k předčasnému vyčerpání adres? RFC 3177, které postuluje výše uvedená pravidla, dovozuje, že takové obavy jsou zbytečné. Pokud by efektivita využití adresového prostoru byla podobná jako u IPv4, jsou uvedená pravidla schopna i s velmi komfortní rezervou případně zajistit 80 bitů pro každého obyvatele Země, a to i v roce 2050, kdy kvalifikované odhady počítají s 10 miliardami lidí. Navíc je zde další pojistka: z celého adresového prostoru IPv6 se zatím rozděluje jen jedna osmina - adresy začínající bity 001, tj. prefix 2000::/3. Pokud by se tedy v budoucnu predikce RFC 3177 ukázala jako mylná, je možné další části adresového prostoru rozdělovat podle jiných pravidel. Doposud se rozdělují pouze adresy v rámci prefixu 2001::/16.

Trochu extravagantně vypadá také identifikátor rozhraní. Proč se na něj vyplýtvalo 64 bitů, když jeho primárním účelem je rozlišení počítačů v rámci lokální sítě? První důvod je technický: hardware současných směrovačů neumí efektivně pracovat s prefixy delšími než 64 bitů, takže druhých 64 bitů tak jako tak zbývá. Dlouhý identifikátor rozhraní ale také dovoluje uvažovat o tom, že by se s jeho pomocí realizoval globálně jednoznačný lokátor sloužící pro identifikaci koncové stanice. To by mohlo být využitelné třeba pro mobilní uživatele, kteří by mohli přecházet mezi sítěmi a přitom bez přerušení komunikovat. Dosud sice nikdo nepřišel na to, jak by se měl globální lokátor definovat, 64 bitů, ale pro tuto ideu v každém případě poskytuje dostatečný prostor. RFC 4291 prozatím vyžaduje, aby se identifikátory rozhraní v IPv6 adresách tvořily ve formátu zvaném EUI-64. V nejběžnějším případě ethernetových rozhraní to stručně řečeno znamená, že se šestibajtová MAC adresa rozšíří o dva fixní bajty.

Pro úplnost ještě dodejme, že aktuální politika všech pěti regionálních internetových registrů (RIR) předpokládá přidělování adresových bloků podřízeným lokálním internetovým registrům (LIR) po prefixech délky 32 bitů. Dáme-li vše dohromady, je struktura aktuálně přidělovaných adres IPv6 následující, bráno odleva.
  • Prvních 16 bitů je vždy 2001 (hexadecimálně). V relativně blízkém budoucnu se ovšem mohou začít rozdělovat i další části prefixu 2000::/3.
  • Druhých 16 bitů je v kompetenci jednotlivých RIR.
  • Třetích 16 bitů spravují lokální internetové registry, které jednotlivým ISP přidělují prefixy přiměřené délky.
  • Čtvrtých 16 bitů, tedy mezi třetí a čtvrtou dvojtečkou zleva, má k dispozici zákazník pro strukturování své sítě do podsítí.
  • Zbytek, tedy pravou polovinu adresy IPv6, tvoří identifikátor rozhraní.

Na rozdíl od IPv4 je obvyklé, že na většině síťových rozhraní je zkonfigurováno více IPv6 adres. To umožňuje mimo jiné škálovatelné řešení vícenásobného připojení: Připojí-li se zákazník přes více poskytovatelů, budou mít všechny počítače v jeho síti více globálně směrovatelných adres - jednu pro každého poskytovatele. Tomuto tzv. multihomingu se budeme blíže věnovat v některém z dalších dílů seriálu.

V souvislosti s adresami nesmíme zapomenout na další novinku, kterou IPv4 nezná, totiž linkově lokální adresy. Ty se automaticky zkonfigurují na každém rozhraní, kde je aktivováno IPv6, a platí pouze v rámci segmentu, k němuž je rozhraní připojeno. Poznáme je snadno podle levé poloviny adresy, která je vždy dána prefixem fe80::/64. Pravá polovina (identifikátor rozhraní) je pak ve formátu EUI-64 a ve většině případů je tedy stejná jako u globálně směrovatelných adres, které jsou na rozhraní nastaveny. Malá síť bez připojení k internetu může díky linkově lokálním adresám fungovat bez sebemenší konfigurace. Linkově lokální adresy se kromě toho využívají i pro některé interní funkce.

Protokol IPv6 je dnes v podstatě připraven a vše nasvědčuje tomu, že je schopen vyřešit problém nedostatku adres a zpřístupnit dostatečný počet globálně směrovatelných adres všem uživatelům, kteří o ně budou mít zájem. Jinou otázkou ovšem je, zda a jak rychle se v portfoliu služeb ISP prosadí v konkurenci se svým starším bratříčkem.


Zápis adres IPv6

IP verze 6 používá adresy o délce 128 bitů. Ty se na rozdíl od IPv4 zapisují pomocí číslic šestnáctkové soustavy. Na každý oktet (osmici bitů) tak připadají vždy dvě hexadecimální číslice. Adresy IPv6 se zapisují jako osm skupin vždy po dvou oktetech. Tyto skupiny se oddělují dvojtečkou. Začíná-li některá skupina nulami, je možné tyto nuly vynechat. Typická adresa vypadá třeba takto: 2001:610:1a02:6:240:f4ff:feb8:febd. Další usnadnění zápisu nabízí konvence, která umožňuje vynechat dlouhou sérii nul i s případnými mezilehlými dvojtečkami. Tedy například 2001:610:1a02::1 představuje stejnou adresu jako delší zápis 2001:610:1a02:0:0:0:0:1. Ale pozor – tuto konvenci je možné u každé adresy aplikovat jen jednou, aby bylo jasné, kolik nulových skupin je na daném místě vynecháno.

Adresové prefixy – tedy bloky adres se shodnými počátečními bity – se zapisují stejně jako u IPv4 v podobě adresa/délka, tedy například 2001:610::/16. Mluvíme-li obecně o prefixech určité délky, zapisujeme je jako /délka, např. /32. A ještě připomeňme: kratší prefix reprezentuje větší blok adres.