ťařina
Obsah Soubory
Základy

Prefixy a masky

Aktualizováno 5 min čtení 907 slov

Prefixy a masky, čili co znamená to číslo za lomítkem

Tohle je ta část, kterou většina lidí přeskočí a pak se diví. Přitom je za tím jediné pravidlo a jakmile ho jednou pochopíš, funguje beze změny pro IPv4, IPv6 i pro všechny ty divné případy typu /30 na spoji k poskytovateli.

To pravidlo

IP adresa je jedno dlouhé binární číslo. Číslo za lomítkem říká, kolik bitů zleva určuje síť. Zbytek určuje konkrétní zařízení v té síti.

To je celé. Vážně. Zbytek téhle stránky je jen rozvedení téhle jedné věty.

IPv4

IPv4 adresa má 32 bitů. Zapisují se po osmi, což je důvod, proč vidíš čtyři čísla v rozsahu 0–255 — osm bitů umí právě 256 kombinací. Skupinám po osmi bitech se říká oktety.

Vezmi 192.168.1.10/24. To /24 říká: prvních 24 bitů je síť, zbylých 8 je zařízení.

Rozdělení IPv4 adresy na síťovou a hostitelskou část

Protože 24 bitů jsou přesně tři oktety, vyjde to hezky na hranici teček: 192.168.1 je síť, .10 je zařízení. Tohle je náhoda daná tím, že /24 je běžná volba. U /26 už ti hranice spadne doprostřed posledního oktetu a začne to vypadat ošklivě.

Maska je totéž, jen postaru

255.255.255.0 a /24 nesou úplně stejnou informaci. Maska je starší způsob zápisu: napíšeš tolik jedniček, kolik má síť bitů, doplníš nulami a přeložíš zpátky do desítkové soustavy. Osm jedniček za sebou dá 255.

Proto v maskách nikdy neuvidíš něco jako 255.13.7.99. Jedničky musí být souvisle zleva, jinak by celý koncept nefungoval.

Dnes se používají oba zápisy vedle sebe. Routery a starší konfigurační formuláře chtějí masku, moderní dokumentace a všechno kolem IPv6 používá lomítko. Jsou zaměnitelné.

K čemu to router vlastně potřebuje

Když tvůj notebook s adresou 192.168.1.10/24 chce něco poslat, udělá jednu jedinou operaci: porovná prvních 24 bitů cílové adresy se svými.

Cíl 192.168.1.50? Prvních 24 bitů sedí, takže je to soused ve stejné síti a data jdou přímo do kabelu.

Cíl 147.32.80.5? Nesedí, takže to není místní, a data putují na výchozí bránu, ať se s tím popere router.

Tomuhle rozhodnutí se říká směrování a prefix je jediné, podle čeho se dělá. Když si na notebooku nastavíš špatnou masku, rozbiješ přesně tohle — počítač začne považovat za souseda někoho, kdo jím není, nebo naopak posílat na bránu i to, co má jít přímo.

Menší číslo znamená větší síť

Tady se to většině lidí obrátí v hlavě, protože intuice říká opak. Čím menší číslo za lomítkem, tím víc adres, protože tím víc bitů zbývá na zařízení.

Prefix Maska Adres v síti
/8 255.0.0.0 16 777 216
/16 255.255.0.0 65 536
/24 255.255.255.0 256
/25 255.255.255.128 128
/26 255.255.255.192 64
/30 255.255.255.252 4
/32 255.255.255.255 1

Každý krok o jedničku dolů síť zdvojnásobí, každý krok nahoru ji rozpůlí. Až narazíš na to, že někomu poskytovatel dal /30, teď víš, že dostal čtyři adresy — což je přesně to, co potřebuješ na spoj mezi dvěma routery.

/32 označuje jednu jedinou konkrétní adresu. Používá se ve firewallových pravidlech, když chceš mluvit o jednom stroji.

Dvě adresy z každé IPv4 sítě odpadají

Malý detail, který stojí za zmínku: z každé IPv4 sítě nemůžeš použít úplně první a úplně poslední adresu. První označuje síť jako takovou, poslední je broadcast pro všechny. Z /24 tedy máš 256 adres, ale jen 254 použitelných pro zařízení, a z /30 jsou použitelné jen dvě.

IPv6 tuhle komplikaci nemá vůbec. Broadcast v něm neexistuje, nahradil ho multicast.

IPv6 — přesně stejné pravidlo

Nic nového se učit nemusíš. Adresa má 128 bitů místo 32 a zapisuje se po šestnácti, což vysvětluje těch osm skupin po čtyřech hexadecimálních číslicích. Dvě dvojtečky za sebou (::) jsou zkratka pro souvislý blok nul, aby se ty adresy daly vůbec psát.

Zásadní rozdíl není v tom, jak se prefix počítá, ale v tom, co od poskytovatele dostaneš. U IPv4 ti dá adresu. U IPv6 ti dá prefix, tedy celý blok, který si dál dělíš sám.

Rozdělení 128 bitů při delegovaném prefixu /56

Proč je v IPv6 vždycky /64

U IPv4 si velikost sítě volíš podle potřeby. Doma /24, na spoj /30, ve velké firmě /16. Šetří se adresami, protože jich je málo.

V IPv6 se tohle nedělá. Každá koncová síť má vždycky /64, bez ohledu na to, jestli v ní máš tři zařízení nebo tři tisíce.

Důvod je praktický: těch 64 bitů pro zařízení je přesně to, co umožňuje autokonfiguraci. Zařízení si adresu vygeneruje samo a spolehne se, že v tak obrovském prostoru s nikým nekoliduje. Kdybys dal /80 nebo /112, ušetříš adresy, kterých je stejně nekonečno, a rozbiješ automatiku, která na /64 spoléhá.

Takže v IPv6 se nešetří adresami. Šetří se prefixy.

Proč je rozdíl mezi /56 a /64 od poskytovatele zásadní

Teď to dává smysl. Když ti poskytovatel dá /64, dostaneš přesně jednu síť a nemáš z čeho ukrojit další. Žádná oddělená VLAN pro IoT, žádná síť pro hosty, nic. Zbývá ti nula bitů na dělení.

Když dostaneš /56, jak dává Vodafone na kabelu, máš 64 − 56 = 8 volných bitů, tedy 256 samostatných sítí /64. To je doma číslo, které nikdy nevyčerpáš.

Proto ta hodnota ve formuláři UniFi není kosmetika. Když tam napíšeš /64, nebudeš mít co rozdělovat mezi VLANy. Když napíšeš /48, žádáš víc, než ti Vodafone dá, a nedostaneš vůbec nic.

Shrnutí v jedné větě

Číslo za lomítkem říká, kolik bitů zleva je zamčených. Zbytek je tvůj hrací prostor. U IPv4 z něj děláš adresy zařízení, u IPv6 z něj děláš celé sítě a adresy zařízení dostaneš zadarmo.