Na českém internetu jsem nenalezl smysluplný a podrobný článek, který by popisoval rozdělování IP sítí. Je to základní věc, kterou by měl každý se zájmem o sítě ovládat. Pro někoho to bude opakování, pro jiného nová vědomost.
Tímto článkem se snažím rozjet sérii článků o počítačových sítích a zároveň v případě zájmu požádat o pomoc nové redaktory. Článek je určen pro naprosté začátečníky.
Začneme vysvětlením pojmů, které budeme používat a jejichž definic je nutné se držet.
IP adresa - 32 bitové jedinečné identifikační číslo skládající se ze 4 oktetů oddělených tečkami (1 oktet = 8 bitů). Příklad IP adresy: 192.168.0.1. V síti nesmí mít dva počítače stejnou IP adresu.
Adresa sítě - první adresa sítě určující začátek podsítě. Adresa sítě nesmí být přidělena žádnému počítači v síti.
Maska - bitová maska oddělující bity v IP adrese určuje síťovou a uzlovou část. Jednoduše řečeno rozděluje síť na podsítě, určuje která část IP adres se může měnit a hlavně kolik je pro danou podsíť volných adres. Maska musí splňovat určitý řád. Maska začíná v binární podobě samými jedničkami a za nimi mohou být jen! nuly př. 11111111.11111111.11111111.00000000 == 255.255.255.0, ale nesmí být např. 11111111.11111111.11111111.00100000
Broadcast - poslední adresa podsítě, kterou také nesmíme přidělit žádnému uzlu (aktivnímu prvku) v síti. Pokud někdo odešle paket s adresou broadcastu tak přijde všem počítačům, které patří do dané podsítě. Poslední oktet broadcastu je vždy lichý.
Uzel - jakékoliv adresovatelné zařízení připojené k síti. tj. počítač, router, switch, tiskárna atd.
Adresy zvláštního významu
0.0.0.0 - tuto adresu má počítač, který zatím nemá přidělenou IP adresu. Taky to označuje "všechny adresy". Radši to vysvětlím na příkladě. Pokud např. v pravidlech firewallu máte povolený port 22 (ssh) pro adresu 0.0.0.0, tak to znamená, že na port 22 se může připojit kdokoliv.
192.168.0.255/24 - jeden z příkladů broadcastu [255]. Paket s touto cílovou adresou se odešle všem počítačum v síti 192.168.0.0. Číslo /24 určuje velikost masky => 24 bitů, ale k tomu se vrátíme později.
147.251.0.0 - jeden z možných příkladů adresy sítě [0]. Používá se ke směrování paketů.
127.x.x.x - adresy interní sítě uzlu. Např. 127.0.0.1 - této adrese se říká loopback. Je to adresa označující rozhraní. Tuto adresu nesmíte přidělit žádné síťové kartě v síti (ani by to logicky nešlo). Když pošlete paket na adresu 127.0.0.1 tak jdou data jen na síťovou kartu a neodesílají se do sítě. Loopback používají některé aplikace.
--> jak již vyplývá některé adresy, které se používají v interních sítích se nesmí používat na internetu. Pro interní sítě jsou vyhrazeny tyto adresy:
Třída A: 10.0.0.0. až 10.255.255.255
Třída B: 172.16.0.0 až 172.31.255.255
Třída C: 192.168.0.0 až 192.168.255.255
- jakoukoliv z těchto adres můžete používat v interních sítích, ale počítače pak nemohou vysílat přímo do Internetu. Přístup do internetu je vyřešen překladem adres pomocí NAT, ale o tom někdy jindy.
Tak začnem
Nejdříve si vypočítáme jednoduché rozdělení podsítí, kde se budu snažit popsat vše co nejsrozumitelněji.
Máme síť 192.168.0.0
s maskou 255.255.255.0
úkol: rozdělit na 4 stejné podsítě
1) Určíme rozsah volných adres.
- máme masku 255.255.255.0 => používat můžeme poslední oktet => 192.168.0.0 až 192.168.0.255 (192.168.0.1, 192.168.0.2, 192.168.0.3 atd.)
- takže jsme si odvodily, že máme teoreticky 256 volných adres (0-255) a rozsah 192.168.0.0 - 192.168.0.255
2) Návrh rozdělení
- tento rozsah máme rozdělit na 4 stejné podsítě => 256 / 4 = 64
- takže v každé podsítí budeme mít 64 adres
3) Vypočítání adres, bcastů a masek
- takže začínat budem od 0. Zápis bude ve tvaru - \
1. podsíť
192.168.0.0 - 192.168.0.63
255.255.255.192
--- takže jak jsme k tomu došli... 1. podsít má tedy rozsah 0 - 63 = 64 adres
192.168.0.0 je adresa sítě a 192.168.0.63 je broadcastová adresa podsítě 192.168.0.0 ...to je doufám více než jasné.
teď ta maska: chceme rozdělit síť na 4 stejné podsítě = 64 adres pro jednu. Takže musíme určit jaká maska vyjadřuje 64 adres v podsíti.
- Masku podsítě můžeme určit buď rozkladem na binární tvar, nebo jednoduchým vzorcem.
začneme složitě: (kdo neumí počítat v binární soustavě ať se to naučí, nebo použije kalkulačku)
192.168.0.0 -> 11000000.10101000.00000000.00000000
255.255.255.0 lze zapsat jako 11111111.11111111.11111111.00000000
- maska je doslova maskou. Pokud dám adresu sítě a masky pod sebe v binárním tvaru, tak tam kde masce začínají nuly, tam podsíti začíná rozsah, který může použít. Ještě bych chtěl dodat, že pokud vypočítáváme masku, tak nás vůbec nezajímají IP adresy podsítí apod. Jediné čeho se budeme držet je počet volných adres, které potřebujem.
- v naší podsíti potřebujeme 64 volných adres, tj. rozsah 0-63; tento rozsah binárně vypadá takto
00000000 až 00111111 => v masce potřebujeme, aby uzlová část (ta kterou můžem použít) byla posledních šest bitů
11000000.10101000.00000000.00|000000 -> díky masce mohu posledních 6 nul použít 00000000 až 00111111
11111111.11111111.11111111.11|000000 => maska 255.255.255.192 určuje 64 volných IP adres
2. podsíť
192.168.0.64 - 192.168.0.127 (začínáme od konce 1. sítě, pozn. broadcast vždy lichý!)
255.255.255.192 (maska zůstává, protože i v druhé podsíti potřebujeme 64 volných adres)
3. podsíť
192.168.0.128 - 192.168.0.191
255.255.255.192
4. podsíť
192.168.0.192 - 192.168.0.255
255.255.255.192
Zjednodušený postup
Po nějaké době zkoušení rozdělování si člověk masky pamatuje. Chtěl bych vám přesto ukázat, že postup vypočítání masky může být ještě mnohem snazší.
vzorec: 256 - $počet_adres_které_potřebuju = $maska
takže pokud mám podsíť, kde potřebuju 32 adres: 256 - 32 = 224 => maska 255.255.255.224
jednodušší to vážně být nemůže :o]
--- pozn. určitě spoustě z vás připadá tenhle popis přehnaně jednoduchý, ale chtěl jsem ho napsat srozumitelný pro kohokoliv. Teď si dáme něco težšího a pokud to dokážete spočítat sami, tak umíte rozdělovat IP sítě (thatz all).
Horší už to nebude
Příklad:

síť 192.168.16.0
maska 255.255.252.0 V 192.168.16.0/22
1) Určíme si rozsah, který můžem použít.
- bude se měnit 3. oktet => 16 -> 00010000
- maska je 252 -> 11111100
000100|00 => poslední dva bity můžeme využít => 00010000 až 00010011 (16 až 19)
111111|00
rozsah: 192.168.16.0 až 192.168.19.255
2) Pro přehlednost je lepší počítat sítě od největší k nejmenší.
3) Vypočítání adres, bcastů a masek.
1. podsíť (270 PC)
- v sítí je 270 PC, ale mi musíme počítat i s adresou sítě a broadcastem, takže 270 + 2 => pořebujeme 272 adres
- maximální počet adres v Cčkové síti je 256, ale mi pořebujeme 272 adres, takže musíme využít dvě Cčkové třídy
- 192.168.16.0 až 192.168.17.255 -> v této síti je 512 volných adres i když jich potřebujeme pouze 272, ale jinak to rozdělit nejde. 240 adres zůstane prostě nevyužitých.
- maskou musíme určit že rozsah jde i do další Cčkové sítě - od 192.168.16.0 až do 192.168.17.255
- jinak řečeno potřebujeme maskou určit 512 volných adres, což je 2^$pocet_nul => 2^9 = 512 --> v masce musí být devět nulových bitů
11111111.11111111.11111110.00000000 == 255.255.254.0
adresa sítě: 192.168.16.0
broadcast: 192.168.17.255
maska: 255.255.254.0
2. podsíť (129 PC)
- z první podsítě jsme vyčerpaly adresy ze sítí 16 a 17, takže začnem 18kou
- první adresa = adresa sítě: 192.168.18.0
- v síti 129 PC => 131 adres, ale maska dokáže rozdělit Cčkovou podsíť maximálně na 128 a 128 adres
- musíme využít celou Cčkovou síť
adresa sítě: 192.168.18.0
broadcast: 192.168.18.255
maska: 255.255.255.0
3. podsíť (68 PC)
- postupujeme stejně -> 70 adres. Nejbližší možný počet adres, které dokáže maska rozdělit je 128 (58 bude nevyužitých).
- takže od 192.168.19.0 do 192.168.19.127
- maska 2^$x = 128 --> 2^7 = 128 -> sedm nulových bitů
11111111.11111111.11111111.10000000 -- 255.255.255.128
adresa sítě: 192.168.19.0
broadcast: 192.168.19.127
maska: 255.255.255.128
4. podsíť (32 PC)
- zde se často dělá chyba, lidé vidí 32 a počítají 32 adres... potřebujeme ale 34 adres => nebližší 64
- maska zase buď vzorcem 2^$x = 64 - 2^6 = 64, nebo ještě jednodušeji 256 - $počet_adres = $maska => 192
adresa sítě: 192.168.19.128
broadcast: 192.168.19.191
maska: 255.255.255.192
5. síť (2 PC)
- 4 adresy
adresa sítě: 192.168.19.192
broadcast: 192.168.19.195
maska: 255.255.255.252
--- mno a ještě nám 55 adres zbylo
p.s. snažil jsem se to napsat tak, aby to pochopil i naprostý začátečník. pokud přesto je něco nejasné, tak mi to napiště do komentáře a já to poupravím.