8.2 Konfigurácia globálnej IPv6 adresy
Podsiete v IPv6
Prvých 48 bitov (3 hextety) globálnej IPv6 adresy predstavuje globálny prefix, zbytok prefixu (ďalších 16 bitov, čiže 1 hextet) označuje ID podsiete. Teda organizácii môže byť pridelený celý blok /48 a z neho je možné vytvoriť až 65536 podsietí. Napríklad adresa 2001:470:5a05:100::1/64 má globálny prefix 2001:470:5a05 (pridelený škole), ID podsiete je 100 (pridelené správcom školskej siete) a zariadenie má ID rovné 1.
Adresný blok /48 je vcelku luxusný a ISP ho nezvykne prideľovať koncovým zákazníkom. Vo väčšine prípadov, žiaľ, klientovi pridelí len jediný blok /64. V lepšom prípade môže prideliť kompromisný /56 (umožní 256 podsietí) alebo stále postačujúci /60 (umožní 16 podsietí). Detailnejšie sa týmto budeme zaoberať v kapitole „8.4 Rozdeľovanie IPv6 siete na podsiete“.
Asi každému, kto má skúsenosti s IPv4, sa pri odhaľovaní IPv6 zdá, že sa nehorázne plytvá adresami. Veď kto potrebuje mať v LAN adresný priestor pre 264 zariadení? V skutočnosti to má zmysel - ID zariadenia má byť „neuhádnuteľné“ a nepredvídateľné. Detaily sa dozvieme nižšie.
Teoreticky je možné používať aj iné dĺžky prefixu IPv6 siete, no neodporúča sa to a nebudeme to robiť.
Prideľovanie IPv6 adresy
IPv6 adresy je možné prideliť staticky - sieť pre výučbu sietí má adresu 2001:4118:1c:d100::/64, brána i DNS je 2001:4118:1c:d100::1). Oveľa praktickejšie je však využiť automatickú (dynamickú) konfiguráciu. Situácia sa však oproti IPv4 líši a máme 3 možnosti riešenia:
- SLAAC využíva správy smerovača, oznámi len prefix siete, prípadne aj bránu a DNS;
- SLAAC + bezstavový DHCPv6 umožňuje odovzdať aj ďalšie informácie (napríklad o DNS);
- stavový DHCPv6 funguje podobne ako DHCP pre IPv4, teda na požiadanie poskytne aj adresu a zaeviduje ju (do MikroTik RouterOS bola táto možnosť pridaná až od verzie 7.17).
SLAAC
Akronym SLAAC znamená Stateless Address Autoconfiguration, teda bezstavová automatická konfigurácia adresy. Ide o preferovaný spôsob získania IPv6 adresy, niektorí ho pokladajú za „jediný správny“. Dôležité je, že SLAAC klientovi neprideľuje konkrétnu adresu. Využívajú sa ICMPv6 správy dvoch typov:
- RA (Router Advertisement): smerovač posiela každých niekoľko minút automaticky do celej siete,
- RS (Router Solicitation): posiela klient (zariadenie), ktorý sa práve pripojil do siete a nechce čakať minúty na pravidelné oznámenie od smerovača.
Tieto správy obsahujú prefix adresy a jeho dĺžku, adresu brány, či iné informácie (napríklad DNS server, čo sa označuje ako RDNSS). Klient si adresu vytvorí sám a vlastne neexistuje žiadny (DHCP) server, ktorý by ju mohol centrálne evidovať.
Samotnú adresu, teda konkrétne identifikátor zariadenia, si zariadenie stanoví automaticky z MAC adresy - tento proces sa označuje EUI-64 a takto získaná IPv6 adresa má v strede ID časti čísla ff:fe, napríklad zariadenie s MAC adresou 12:34:56:78:9a:bc môže mať IPv6 adresu 2001:470:5a05:100:1234:56ff:fe78:9abc.
Hoci to nie je pre nás teraz podstatné, pre úplnosť treba upresniť, že v skutočnosti sa pri EUI-64 ešte neguje 7. bit MAC adresy, takže IPv6 adresa bude 2001:470:5a05:100:1034:56ff:fe78:9abc.
Trvalá adresa a ochrana súkromia
V súčasnosti majú koncové zariadenia proces EUI-64 štandardne vypnutý a je aktivovaný režim pre ochranu súkromia, kedy sa globálna adresa vytvára náhodne. Nejde o úplne náhodné generovanie (má určité pravidlá), no do procesu generovania ID vstupuje aj náhodne vygenerovaný nemenný kľúč. Okrem neho do procesu vstupuje aj MAC adresa a identifikátor siete, z čoho vyplýva, že takto získané ID zariadenia bude pre dané zariadenie v každej sieti odlišné (zariadenie nebude možné sledovať pri prechode medzi sieťami), no trvalé. Nemalo by sa nám teda stať, že sa náhodná IPv6 adresa zariadenia po čase zmení.
Tento režim náhodného generovania adresy je možné v operačnom systéme Windows zrušiť a zmeniť na EUI-64 príkazom:
netsh interface ipv6 set global randomizeidentifiers=disabled
Režim náhodného ID je samozrejme možné zapnúť naspäť (hodnotou enabled).
V čom je riziko narušenia súkromia, ak používame EUI-64 adresy?
Riziko ohrozenie súkromia je vyššie ako pri MAC adresách, pretože MAC adresa neopustí lokálnu sieť (prevádzkovateľ internetovej služby nevidí MAC adresu klienta), no IPv6 adresa sa dostane až k prevádzkovateľovi služby. V praxi to znamená, že prevádzkovateľ služby vie vždy identifikovať klienta, nech pristupuje z ktorejkoľvek siete. Navyše z prefixu siete vidí, v ktorej sieti sa nachádza, často teda vie určiť aj lokalitu.
Prevádzkovateľ služby vie predsa z prefixu siete určiť lokalitu aj v prípade náhodnej adresy, ba dokonca aj pri IPv4 s NAT, tak v čom je problém?
Áno, ale náhodných návštevníkov nevie identifikovať. Vie len, že „niekto neznámy“ prišiel z tejto konkrétnej siete / lokality. Situácia sa samozrejme zásadne mení, pokiaľ sme k jeho službe prihlásení (či v appke smartfónu alebo cez webové rozhranie). Vtedy vie, kto sme a kde sme a náhodná adresa ničomu nepomôže.
Dočasná adresa
Bez ohľadu na to, či má koncové zariadenie identifikátor v globálnej adrese získaný cez EUI-64 alebo náhodne, vytvára sa ešte aj druhá adresa - dočasná globálna adresa. Tá sa priebežne mení (možno ju pokladať za náhodnú) a používa sa vždy, keď toto koncové zariadenie vytvára spojenie. Dá sa teda zjednodušene povedať, že trvalá adresa slúži pre prichádzajúce spojenia (typicky na serveroch) a dočasná adresa pre odchádzajúce spojenia. Používanie dočasnej adresy je možné vo Windows zakázať príkazom:
netsh interface ipv6 set privacy state=disabled
Náhodné a dočasné adresy v LinuxLinuxe
V operačnom systéme Linux sa predvolené správanie líši v závislosti od zamerania OS:
- Linuxové servery (napríklad Ubuntu Server, Debian - bez grafického rozhrania) majú obe funkcie ochrany súkromia štandardne vypnuté. Server vyžaduje stabilnú a predvídateľnú IPv6 adresu.
- Klientske distribúcie (napríklad Ubuntu Desktop, Linux Mint, Fedora) majú obe funkcie zapnuté, podobne ako Windows.
Ak chceme správanie zmeniť, opäť to môžeme dosiahnuť príkazmi, a to individuálne pre každé sieťové rozhranie:
# zistíme presný názov nášho sieťového pripojenia
nmcli connection show
# zmeníme režim na EUI-64 (založené na MAC adrese)
nmcli connection modify "názov pripojenia" ipv6.addr-gen-mode eui64
# vypneme generovanie dočasných adries
nmcli connection modify "názov pripojenia" ipv6.ip6-privacy 0
# reštartujeme rozhranie, aby sa zmeny prejavili
nmcli connection up "názov pripojenia"
Praktické poznámky
- Pri nasadení SLAAC bez DHCP môžu nastať komplikácie s DNS: Informácie o DNS serveri odosielané cez RA síce súčasné zariadenia s aktuálnym OS prijímajú, no niektoré staršie nie (čo môže byť problém napríklad pri starých sieťových tlačiarňach, kamerách a podobne). Preto môže byť v praxi niekedy potrebné zapnúť režim SLAAC + bezstavový DHCPv6, čiže posielať informácie o DNS serveri aj cez DHCPv6. Dúfajme, že sa s tým už stretávať v praxi nebudeme.
- Google odmieta v operačnom systéme Android implementovať stavový DHCPv6 a presadzuje len režim SLAAC.
- Ďalšou komplikáciou môže byť zapnutá funkcia pre riadenie multicast na prepínači - IGMP / MLD Snooping: Pre šírenie RA sa na L2 využíva multicast MAC adresa, tá je vo všeobecnosti pri používaní IPv6 v tvare
33:33:XX:XX:XX:XX. Pri využívaní IGMP Snooping treba na to myslieť - zakázanie „Unknown Multicast Flood“ môže spôsobiť nefunkčnosť tohto procesu.