Android nechce jen jednu IPv6 adresu
Android je po dlouhá léta posledním rozšířeným operačním systémem, který nepodporuje přidělování IPv6 adres pomocí DHCPv6. Jde o rozhodnutí vývojářů, jehož cílem je zabránit budování takových sítí, kde každé zařízení může dostat nejvýš jednu IPv6 adresu.
Takové sítě by bránily případnému rozšiřování funkčnosti o kontejnery a připojená nositelná zařízení, která by byla nucena jedinou IPv6 adresu nějakým způsobem sdílet. To je v rozporu se základní filozofií IPv6, tedy že adres je všude dostatek a nemělo by být potřeba je šetřit.
Až dosud tedy Android podporoval pouze bezestavovou autokonfiguraci (SLAAC), která zařízení umožňuje získat z daného prefixu délky /64 v zásadě libovolný počet individuálních adres. I toto řešení má ovšem problém se škálovatelností – pro každou individuální adresu musí místní směrovač udržovat stav v paměti sousedů.
Správci sítí navíc často řeší problém identifikace konkrétního zařízení, pokud je daná podsíť sdílena mnoha zařízeními. Existují i nejrůznější neveřejné limity síťové infrastruktury, které mohou být nastaveny poměrně nízko – například přístupový bod pro Wi-Fi podporující nejvýše osm IPv6 adres na jednom připojeném zařízení.
Bude chtít celý prefix
Řešením, na kterém vývojáři několik let pracovali, je RFC 9663 tedy přidělování celých prefixů koncovým zařízením pomocí DHCPv6 Prefix Delegation. Tento protokol se už řadu let používá pro přidělování rozsahů IPv6 adres domácím směrovačům.
V tomto případě je stav uložen v DHCP serveru, což dává síťovým administrátorům lepší vhled na to, které adresy jsou používány kterým zařízením. Každé zařízení navíc využívá adresy agregované do jediného bloku. Síťová infrastruktura pak drží pro každé připojené zařízení pouze jeden záznam ve směrovací tabulce a jeden záznam v tabulce sousedů.
Nyní bude DHCPv6 PD k dispozici i pro zařízení s Androidem. Změna přijde prostřednictvím Aktualizace systémových služeb Google na všechna zařízení s Androidem 11 a novějším. Aby nedocházelo k vyčerpání zásob IPv6 prefixů na sítích, které nepočítají s přidělováním prefixů každému zařízení, je DHCP-PD klient aktivován pouze v případě, že síťový prefix v ohlášení směrovače nastavuje nový příznak P podle RFC 9762.
Druhou možností je heuristika, kdy zařízení zkusí použít DHCPv6-PD v případě, že ohlášení směrovače žádný prefix neobsahuje. Díky tomu je možné začít DHCPv6-PD používat i na sítích, kde směrovače dosud nový příznak nepodporují. Po úspěšném získání prefixu zařízení vypne podporu bezestavové autokonfigurace. Tato změna ale vyžaduje úpravu linuxového jádra, proto bude doručena postupně.
Úprava adresních plánů
Vývojáři Androidu se i přes dlouhou a vyhrocenou diskuzi, o které mluvil Martin Huněk na Semináři o IPv6 už v roce 2023, rozhodli vyžadovat síťový prefix délky 64 bitů. Takováto délka zajistí, že zařízení připojená k zařízení s Androidem mohou používat bezestavovou autokonfiguraci.
Také to ale znamená, že správci sítí, kteří by rádi DHCPv6-PD pro zařízení s Androidem podporovali, musí zásadním způsobem upravit adresní plány a případně i požádat o přidělení většího bloku IPv6 adres: zatímco dodnes stačil jeden blok o délce /64 pro připojení stovek i tisíců zařízení, nově budou potřeba stovky i tisíce takových bloků, tedy například blok délky /52 (4096 bloků) nebo dokonce i /48 (65536 bloků).
Pro sítě, ve kterých stávající bezestavová konfigurace nepředstavuje problém – a nebo prostě není možné síť rozšířit tak, aby poskytla dostatečné množství bloků pro všechna zařízení – vývojáři Androidu připravují také podporu registrace bezestavově konfigurovaných adres v DHCPv6 podle RFC 9686.
Cílem je zde usnadnit evidenci používaných adres zejména pro hledání problémů; a to i přesto, že jde o dobrovolnou registraci provedenou samotným koncovým zařízením, kterému v principu není možné věřit, že registraci provede správně.