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:
- vyčerpaný rozsah adries - IPv6 má 128-bitové adresy, teda je ich mnohonásobne viac;
- rozsiahle smerovacie tabuľky - IPv6 je hierarchický, teda v sieťových prefixoch „je systém a prehľadnosť“;
- absencia priameho spojenia koncových zariadení - v IPv6 nie je potrebný NAT preklad.
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
- Aby sa zbytočne nemuseli písať takéto dlhé adresy, úvodné nuly každého hextetu sa vynechávajú:
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:
- globálne unicast (GUA): ako verejné IPv4 adresy,
- aktuálne rozsah
2000::/3(teda po3fff);
- aktuálne rozsah
- 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,
- rezervovaný rozsah
fe80::/10(teda pofebf), - v praxi sa používa
fe80::/64;
- rezervovaný rozsah
- unikátne lokálne (unique local, ULA): obdoba súkromných IPv4 adries, teda určené len pre LAN, nie sú smerované do internetu,
- rozsah
fc00::/7(teda pofdff), - v praxi sa aktuálne vyžaduje používanie
fd00::/8a ďalších 40 bitov musí byť generovaných náhodne (možno využiť on-line generátor).
- rozsah
Špeciálnymi prípadmi sú:
- adresa
::1- lokálna slučka (loopback) „localhost“; - prefix
64:ff9 b::/96- určený je pre zápis verejnej IPv4 adresy,- napríklad IPv4 adresa
192.0.2.255by bola zapísaná ako64: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;
- napríklad IPv4 adresa
- 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á:
- prvé 4 bity (za
ff) rozlišujú rôzne voľby - len pre zaujímavosť, v binárnom zápise0TPRjednotlivé bity označujú:- T označuje adresu dočasnú (inak je trvalá),
- P označuje adresu odvodenú z lokálneho prefixu,
- R označuje adresu s existujúcim RP;
- ďalšie 4 bity vyjadrujú dosah, napríklad:
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::1adresuje všetky zariadenia na pripojenom rozhraní teda je ekvivalentom broadcast v IPv4;ff02::2adresuje všetky smerovače na pripojenom rozhraní;ff05::2adresuje všetky smerovače v sieti;ff05::1:3adresuje všetky DHCPv6 servery v celej LAN;ff02::fb/ff05::fboslovuje mDNS na pripojenom rozhraní / v celej LAN;ff02::101/ff05::101/ff0e::101oslovuje 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íkazom
ip -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
- Pri testovaní môže prísť vhod asi najkratšia globálna IPv6 adresa s odpoveďou na ping:
2600::(žiaľ, aktuálne nefunguje cez tunnelbroker.net), prípadne dostupnejšia2620: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.