8.1 Úvod do IPv6 a adresovanie
Nedostatky IPv4, ktoré rieši IPv6
IPv4 protokol má obmedzenia a problémy, ktoré rieši protokol IPv6:
Vyplýva z nich, že plné nasadenie IPv6 je len otázkou času - mnohé krajiny už používajú IPv6 väčšinovo, no Slovensko je v nasadzovaní veľmi pozadu. Zatiaľ sa používajú oba protokoly, či už formou „dual stack“ (oba protokoly súčasne), tunelovaním alebo prekladom NAT64.
Overenie dostupnosti IPv6 spojenia s internetom: test-ipv6.com
Adresa IPv6
IPv6 adresa je 128-bitová a zapisuje sa v šestnástkovej sústave, pričom každé 4 číslice (takzvaný hextet) sú oddelené dvojbodkou, napríklad 2001:0470:5a05:0100:0000:0000:0000:0001.
Každý hextet predstavuje 16 bitov (4 číslice v 16-kovej sústave), teda v IPv6 adrese ich je 8.
Skrátenie zápisu IPv6 adresy
2001:470:5a05:100:0:0:0:1
Okrem toho sa jedna (najdlhšia) postupnosť nulových hextetov môže vynechať a namiesto nej sa zapíše „štvorbodka“ :: (dve dvojbodky): 2001:470:5a05:100::1
Štruktúra IPv6 adresy
Prvých 64-bitov IPv6 adresy, teda prvé 4 hextety, sú štandardne prefixom (adresou siete), ďalších 64-bitov označuje ID zariadenia. Tak ako pri IPv4, aj v IPv6 zapisujeme dĺžku prefixu v podobe počtu bitov za lomkou na konci adresy, napríklad adresa 2001:470:5a05:100::1/64 vyjadruje zariadenie „1“ v sieti „2001:470:5a05:100“.
Typy IPv6 adries
IPv6 adresy majú podobné typy ako IPv4 adresy - individuálne (unicast) a skupinové (multicast), no nevyskytujú sa tu všesmerové (broadcast) - sú však špeciálnym prípadom skupinových adries. Navyše IPv6 rozlišuje adresy výberové (anycast).
Individuálne (unicast) adresy
Individuálne (unicast) adresy IPv6 sa delia na:
2000::/3 (teda po 3fff);
linkové lokálne (link-local, LLA): čiastočne sa podobá na APIPA v IPv4, teda ide o automatické adresy pre lokálne spojenie v segmente siete, no vygeneruje sa vždy, a to aj v prípade prítomnosti GUA,
fe80::/10 (teda po febf),
v praxi sa používa fe80::/64;
unikátne lokálne (unique local, ULA): obdoba súkromných IPv4 adries, teda určené len pre LAN, nie sú smerované do internetu,
fc00::/7 (teda po fdff),
v praxi sa aktuálne vyžaduje používanie fd00::/8 a ďalších 40 bitov musí byť generovaných náhodne (možno využiť on-line generátor).Špeciálnymi prípadmi sú:
::1 - lokálna slučka (loopback) „localhost“;
prefix 64:ff9 b::/96 - určený je pre zápis verejnej IPv4 adresy,
192.0.2.255 by bola zapísaná ako 64:ff9 b::c000:2ff
alebo aj v zrozumiteľnejšom tvare 64:ff9 b::192.0.2.255,
tento prefix by sa však nemal používať pre súkromné IPv4 adresy;
prefix 2001:db8::/32 - určený pre dokumentáciu a príklady.Skupinové (multicast) adresy
Skupinové multicast adresy IPv6 sú z rozsahu ff00::/8 (teda po ffff), no využitie ďalších 4 bitov má svoje pravidlá:
ff) rozlišujú rôzne voľby - len pre zaujímavosť, v binárnom zápise 0TPR jednotlivé bity označujú:
1 = zariadenie samotné (interface-local) - funguje len interne, nie je možné pingnúť;
2 = pripojené rozhranie (link-local) - vlastná LAN;
5 = celá LAN (site-local) - aj LAN siete za smerovačom, typicky celá organizácia;
e = celý internet (global).
Napríklad trvalé adresy nevychádzajúce zo sieťového prefixu, bez RP a s dosahom vo vlastnej LAN majú prefix ff02::/16.
Aby fungovali skupinové adresy aj „cez router“, teda aby pakety boli smerovačom preposlané aj do ďalších sietí, musí byť na zariadení i smerovači zapnutá podpora preposielania multicast, čo je nad rámec tohoto kurzu.
V tomto veľkom rozsahu sú definované aj skupinové adresy špeciálneho významu, napríklad:
ff02::1 adresuje všetky zariadenia na pripojenom rozhraní teda je ekvivalentom broadcast v IPv4;
ff02::2 adresuje všetky smerovače na pripojenom rozhraní;
ff05::2 adresuje všetky smerovače v sieti;
ff05::1:3 adresuje všetky DHCPv6 servery v celej LAN;ff02::fb / ff05::fb oslovuje mDNS na pripojenom rozhraní / v celej LAN;
ff02::101 / ff05::101 / ff0e::101 oslovuje NTP na pripojenom rozhraní / v celej LAN / na celom internete.
Prečo mi nefunguje
ping ff02::1a ani na inéff02adresy? Nedostávam žiadnu odpoveď.V OS Windows (a niekedy aj v Linux) je potrebné špecifikovať sieťové rozhranie, cez ktoré sa má odoslať ping, inak OS nevie, kam s ním. Identifikátor rozhrania píšeme za IPv6 multicast adresu, oddeľuje sa symbolom
%.Vo Windows sa sieťové rozhranie označuje číslom, ich zoznam môžeme získať príkazom
netsh interface ipv6 show interfaces- ide o číslo v stĺpci Idx. Teda príkaz bude napríklad:ping ff02::1%12. Windows však po prijatí odpovede nijako nedá najavo, kto vlastne odpovedal a ani koľkí. V Linuxe je sieťové rozhranie nazvané textovým reťazcom, ich zoznam môžeme získať príkazomip -br a. Teda príkaz bude napríklad:ping ff02::1%enp1s0. Linuxový ping vypíše adresu každého zariadenia, ktoré zareagovalo, aj s časom odozvy.Otázka je tiež, ktoré zariadenia budú reagovať a odpovedať. Vo Windows firewalli je štandardne zakázané odpovedať na multicast ping a podobne to môže byť aj na zariadení s Linuxom.
Výberové (anycast) adresy
Výberová adresa je podobná individuálnej v tom, že paket bude doručený jedinému zariadeniu. Rozdielom však je, že túto adresu majú nastavené viaceré zariadenia. Paket sa doručí na najbližšie zariadenie s touto adresou.
Spomínali sme si, že celosvetovo využívané DNS servery (napríklad od Google a Cloudflare) sú veľmi rýchle, pretože nás nasmerujú na najbližší uzol. Toto sme konštatovali už pri IPv4, ktorý nemá výberové adresy. V čom sa teda IPv6 líši a ako to, že to funguje aj v IPv4?
Áno, napríklad Google DNS adresa
8.8.8.8, či Cloudflare DNS adresa1.1.1.1, by teoreticky mali patriť jedinému zariadeniu na svete. Reálne nás však smerovače nasmerujú na najbližší uzol Google / Cloudflare. Nie je to oficiálne riešenie, ale akýsi „špinavý trik“, spočívajúci v drobnej manipulácii internetového smerovacieho protokolu BGP.Rozdiel je v tom, že keby sme rovnakú IPv4 adresu skúsili nasadiť na viaceré zariadenia v jedinej LAN, teda v tej istej sieti, nefungovalo by to - detegovali by duplicitu adries. V prípade IPv6 je to možné dosiahnuť bez problémov. Keď zariadeniu priradíme výberovú adresu, nebude sa kontrolovať, či nie je duplicitná. A keď odosielateľ (alebo smerovač) hľadá suseda s výberovou adresou, osloví toho, ktorý sa ozve ako prvý.
Výberové adresy nemajú svoj vlastný vyhradený adresný blok (žiadny špeciálny prefix). Ide vlastne o bežné individuálne adresy, avšak pri ich konfigurácii musíme operačnému systému povedať, že sa jedná o anycast, a teda nemá vykonať detekciu duplicity adresy (DAD = Duplicate Address Detection). Napríklad v MikroTik RouterOS pri definovaní adresy začiarkneme voľbu „No DAD“ , v OS Linux pri definovaní adresy pridáme parameter „nodad“. Bežnejšie je však nastaviť anycast adresu loopback rozhraniu a šíriť ju niektorým smerovacím protokolom.
Špeciálnym prípadom výberovej adresy je samotná adresa siete, teda taká IPv6 adresa, ktorá má ID zariadenia rovné 0, napríklad 2001:470:5a05:100::. Na túto adresu je možné dokonca aj pingnúť.
Praktické poznámky
2600:: (žiaľ, aktuálne nefunguje cez tunnelbroker.net), prípadne dostupnejšia 2620:fe::fe.
Niektoré aplikácie (napríklad webové prehliadače a WinBox) vyžadujú zapisovať IPv6 adresy do hranatých zátvoriek, teda napríklad [2001:470:5a05:100::10].
Je treba si uvedomiť, že smerovač má rovnakú sieť s LLA na každom svojom rozhraní. Pokiaľ chceme komunikovať s cudzou LLA adresou (napr. pre zadanie trasy), je nutné za ňu uviesť aj označenie rozhrania. V prípade zariadení MikroTik sa za adresou uvádza znak percento a názov rozhrania, teda adresa môže byť napríklad fe80::1%bridge-wan.