štvrtok 6. júna 2013

Subnetovanie a výpočet adries


(Na úvod by som vás rád upozornil, že výpočty ktoré nájdete v tomto článku sú trochu zložité. Dlho som používal túto "binárnu" metódu, no čoskoro ma to omrzelo a prišiel som na úplne jednoduchý spôsob. Čoskoro o tom napíšem nový článok a pridám sem link. Čas však tlačí, tak zatiaľ sa musíte uspokojiť s týmto...)

Dnes sa už asi nikto netrápi s ručným výpočtom podsietí, keďže na to máte napr. online subnet kalkulátory:
http://www.vlsm-calc.net/
Ale keďže je táto téma súčasťou školských osnov, budem sa jej venovať. Tak či tak tomu na maturite neutečiem.

Najskôr trochu teórie...

V praxi nie je možné komunikovať v celej sieti priamo, preto sa sieť delí na podsiete, ktoré slúžia k logickému deleniu siete na menšie hierarchicky usporiadané celky. Príkladom je veľký IPS, ktorý má určitý sieťový rozsah (subnet), ktorý delí na časti a prideľuje firmám a tam sa zas delí na časti. K spojovaniu jednotlivých sietí slúžia routre. Podsiete sú dôležité nie len kvôli fyzickému oddeleniu siete, ale najmä z výkonnostných dôvodov (napr. kvôli broadcastu - vysiela na všetky zariadenia a preto je vhodné veľkú sieť rozdeliť na podsiete).

IP adresa je logická adresa sieťového zariadenia. Skladá sa zo 4 častí zvaných oktety a každá časť má veľkosť 8 bitov. IP adresa sa zapisuje v dekadickej forme, no pre výpočet je lepšie použiť binárny zápis. Teoretický adresný zápis je teda od 0.0.0.0 do 255.255.255.255.

Broadcast IP adresa je adresa, na ktorú sa vysiela v prípade broadcastového vysielania. Binárne má táto adresa samé jednotky, t.j. dekadický zápis je 255.255.255.255 = vysiela všetkým zariadeniam v sieti.

Maska podsiete určuje rozdelenie siete do podsietí. Určuje, ktorá časť IP adresy je sieťová a ktorá je určená pre hosty. Zápis je rovnaký ako pri IP, ale platné hodnoty sú len tie, ktoré majú v binárnom kóde z ľavej strany jednotky a z pravej strany nuly (čiže 255.255.0.0, nikdy nie 255.0.255.255 ! To je dúfam do očí bijúce xD ).

Network ID je nemenná časť pre daný subnet a v maske subnetu ide o jednotky.
Host ID je premenná časť a určuje adresu hosta daného subnetu.

Príklad: 255.255.255.0 určuje, že prvých 24 bitov adresy je Network ID a posledných 8 bitov je Host ID.


Možné hodnoty jednotlivých oktetov pre masku:

*pre rýchlejšiu orientáciu vhodné sa naučiť naspamäť !

00000000 = 0
10000000 = 128
11000000 = 192
11100000 = 224
11110000 = 240
11111000 = 248
11111100 = 252
11111110 = 254
11111111 = 255

(Posledný oktet nemôže naberať hodnotu 254, pretože to znamená, že neexistuje ani jeden Host. Pokiaľ má hodnotu 255 ide o Unicast = jedinú adresu)


Zkrátený zápis masky -
Maska môže byť zapísaná aj v skrátenej forme, ktorej sa hovorí CIDR notácia (Classless Inter-Domain Routing. Ide o zápis IP adresy, za ktorým sa nachádza lomítko \ a nasleduje číslo reprezentujúce počet bitov v maske podsiete v binárnej forme. Pretože celkový počet bitov v maske je 32, tak počet núl je 32 - počet jednotiek.

Príklad: 10.0.5.2 / 20 , teda maska je 255.255.240.0

(11111111.11111111.11110000.00000000 => počet jednotiek 20 => v treťom oktete 4 jednotky=> 128+64+32+16 => 240 => 255.255.240.0)

Wildcard-Mask alebo inak povedané inverzná maska je špeciálny typ zápisu, ktorý využíva napr. Cisco pri Access listoch. Ide o opak klasickej masky.

Napr. 255.255.255.0 = 0.0.0.15

Inverziu masky dosiahneme tak, že klasickú masku prevedieme do binárneho kódu, prevedieme inverziou a následne prevedieme na dekadickú hodnotu. Zjednodušene stačí pri každom oktete odpočítať hodnotu.

Napr. 255-255 = 0, 255-240 = 15... čiže dostaneme 0.0.0.15

Supernet označuje skupinu niekoľko po sebe idúcich subnetov. Ide o technológiu CIDR.

Napr. Máme dva subnety 192.168.0.0 /24 a 192.168.1.0 /24 a z nich môžme vytvoriť jeden supernet 192.168.0.0 /23

Zhrnutie:

Každý subnet obsahuje základnú adresu siete (base address alebo network address), čo je prvá adresa v rozsahu, ďalej adresy hostov a ako poslednú broadcastovú adresu subnetu (subnet broadcast address), to je posledná adresa rozsahu.

Rozdelenie IP adries do tried (classful addressing)

IP adresy sa podľa čísla na prvom oktete delia do nasledovných hlavných (komerčne využívaných) tried:

Trieda A
1.x.x.x –127.x.x.x
8 bitov pre sieť, 24 bitov pre hosty používajú sieťovú masku 255.0.0.0

Trieda B
128.x.x.x –191.x.x.x
16 bitov pre sieť, 16 bitov pre hosty používajú sieťovú masku 255.255.0.0

Trieda C
192.x.x.x –223.x.x.x
24 bitov pre sieť, 8 bitov pre hosty používajú sieťovú masku 255.255.255.0

Trieda D (využíva sa pre multicast)
 224.x.x.x - 239.x.x.x
32 bitov pre sieť, 4 bity pre hosty, používajú sieťovú masku 255.255.255.255

Trieda E (rezervovaná)
240.x.x.x - 255.x.x.x


Rozdelenie IP adries bez tried (clasless network)

Používa sa adresovanie CIDR, ktoré je flexibilnejšie pri delen siete na podsiete. Dĺžka masky nemusí byť rovnaká, ale môžme použiť dohromady subnety z rôznou dĺžkou masiek. Napr. 10.0.0.0 / 26 a 10.0.0.64 /28
V komunikácií používame vždy IP adresu spolu s maskou. 
(U Cisco switchov a routerou sa používa príkaz Switch#ip classless  pre použitie clasless network, ktorý je defaultne zapnutý)


Výpočet subnetov

(ID siete, ID subnetov, ID hostov, maska, HostMin, HostMax, Broadcast)


Výpočet ID siete:

Z predchádzajúceho textu už vieme, že jednotlivé triedy IP adries využívajú rôzny počet bajtov v maskách:

Trieda A - 255.0.0.0
Trieda B - 255.255.0.0
Trieda C - 255.255.255.0
Trieda D - 255.255.255.255

A ďalej, že masky môžu nadobúdať hodnoty 0, 128, 192, 224, 240, 248, 252, 254 a 255.

* pre lepší prehľad farebne oddelím jednotlivé bity:

  • ID siete       
  • ID podsiete    
  • ID host


Máme IP adresu napr. 192.168.128.0 / 27 a máme vytvoriť 4 podsiete.

IP adresu a masku (CIDR) prevedieme do binárneho kódu:

11000000.10101000.10000000.00000000 (192.168.128.0)
11111111.11111111.11100000.00000000 (255.255.224.0)

Pomocou logického člena AND (súčin) dostaneme ID siete:

11000000.10101000.10000000.00000000 => 192.168.1.0

Vidíme, že máme 13 bitov určených pre hosty.
Keďže potrebujeme 4 siete, stačí ak si od hostov "požičiame" 3 bity ( * 2 na tretiu = 8 - 2 = 6 použiteľných podsietí) a vytvoríme tak nové ID siete:

* Ospravedlňujem sa, že nepoužívam horný index, ale v editore na blogu taká možnosť chýba, preto to budem písať slovom.

11000000.10101000.10000000.00000000

Tieto tri bity môžu naberať osem stavov :

000 , 001 , 010 , 011 , 100 , 101 , 110 , 111

Z toho 000 a 111 sa nepoužíva. Máme 6 možných stavov, no stačia nám 4 a ostatné dve zostanú nevyužité. Čiže, ID jednotlivých subsietí budú vyzerať takto:

LAN 1 => 11000000.10101000.10000100.00000000 => 192.168.132.0
LAN 2 => 11000000.10101000.10001000.00000000 => 192.168.136.0
LAN 3 => 11000000.10101000.10001100.00000000 => 192.168.140.0
LAN 4 => 11000000.10101000.10010000.00000000 => 192.168.144.0

ID siete už máme. Teraz potrebujeme Masku siete, prvého a posledného použiteľného hosta, ktoré sa skrátene označujú aj ako HostMin (minimálny) a HostMax (maximálny) (Ohraničujúce možný rozsah IP adries v danej subsieti, ktoré môžu byť pridelené zariadeniam) a Broadcast (posledná IP adresa v danej subsieti - unicast - vysiela všetkým zariadeniam).

Maska siete - Keďže sme vytvorili nové ID siete, musíme upraviť aj masku. Maska bude väčšia o 3 bity, čiže: 11111111.11111111.11111100.00000000 => 255.255.252.0 alebo podľa CIDR /22

HostMin je jednoduchý. Ide o prvú možnú adresu:

LAN 1 => 11000000.10101000.10000100.00000001 => 192.168.132.1

HostMax - ide o poslednú možnú adresu:

LAN 1 => 11000000.10101000.10000111.11111110 => 192.168.135.254

Broadcast - je posledná adresa v subnete:

LAN 1 => 11000000.10101000.10000111.11111111 => 192.168.135.255

Podobne postupujeme aj pri ostatných 3 subnetoch.

Ešte je jedna možnosť ako vypočítať broadcast a to je zobrať IP adresu subnetu a negovanú masku subnetu a previesť logickým členom OR. Takže to bude vyzerať takto:

IP adresa:             11000000.10101000.10000100.00000000
Negovaná maska: 00000000.00000000.00000011.11111111

                                               OR

Broadcast:            11000000.10101000.10000111.11111111



Teraz si to môžete skúsiť vypočítať a porovnať s výsledkami:

LAN 2

ID siete    => 11000000.10101000.10001000.00000000 => 192.168.136.0
HostMin   => 11000000.10101000.10001000.00000001 => 192.168.136.1
HostMax  => 11000000.10101000.10001011.11111110 => 192.168.139.254
Broadcast => 11000000.10101000.10001011.11111111 => 192.168.139.255

LAN 3

ID siete    => 11000000.10101000.10001100.00000000 => 192.168.140.0
HostMin   => 11000000.10101000.10001100.00000001 => 192.168.140.1
HostMax  => 11000000.10101000.10001111.11111110 => 192.168.143.254
Broadcast => 11000000.10101000.10001111.11111111 => 192.168.143.255

LAN 4

ID siete    => 11000000.10101000.10010000.00000000 => 192.168.144.0
HostMin   => 11000000.10101000.10010000.00000001 => 192.168.144.1
HostMax  => 11000000.10101000.10010011.11111110 => 192.168.147.254
Broadcast => 11000000.10101000.10010011.11111111 => 192.168.147.255


Výpočet počtu hostov v podsieti (počtu použiteľných IP adries):

Vzorec je HostMin mínus HostMax mínus 2

Napr. pre LAN 1 (príklad vyššie) je to 192.168.132.1 - 192.168.135.254 - 2 = 1022 hostov.

2 komentáre:

  1. Mas tam chybu 192.168.128.0 / 27 nema subnet 11111111.11111111.11100000.00000000 (255.255.224.0) ale 11111111.11111111.11111111.11100000 a to je 255.255.255.224

    OdpovedaťOdstrániť
  2. neskutocne daco tolko jednotiek ze hned zmaturujem hahahahaha

    OdpovedaťOdstrániť