Príbeh o sieťach, časť šiesta: Počítame s IPv4 adresami

 
V dnešnom poslednom diely v rámci nášho seriálu o sieťach sa zameriame hlavne na praktickú vec, ktorou bude počítanie s IPv4 adresami. Dozviete sa ako podsieťovať sieť, ktoré IP adresy môžu mať stanice či ako sumarizovať IP adresy. Na konci si povieme čosi o IPv6 adresách.


Prevod na binárne číslo, počítanie adresy siete

 
Prvú zmienku o IPv4 adresách ste mohli zachytiť v časti o sieťovej vrstve. Každá IPv4 adresa je tvorená 32 bitovými číslicami oddelenými bodkou na štyri 8-bitové čísla. Každú štvoricu v adrese nazývame oktet. Každý oktet môže byť decimálne číslo od 0 po 255. IPv4 adries je teda od 0.0.0.0 po 255.255.255.255.
 
Pre počty s adresami je nutné ovládať prevody z dvojkovej do desiatkovej sústavy a naopak. Hoci to dnes zvládne aj bežná kalkulačka, ktorá je súčasťou Windowsu, nie je na škodu ak to dokážeme spraviť aj ručne. Ukážme si preklad napríklad na adrese 192.168.1.5.
 
Ideme prekladať prvý oktet ktorým je číslo 192. Keďže prekladáme do binárnej sústavy, ktorej základom je dvojka, delíme číslo dvomi. Tento krok opakujeme až do konca.
192:2=96 zvyšok 0
96:2  =48 zvyšok 0
48:2  =24 zvyšok 0
24:2  =12 zvyšok 0
12:2  =6   zvyšok 0
6:2    =3   zvyšok 0
3:2    =1   zvyšok 1
1:2    =0   zvyšok 1
 
Na konci delenia nás zaujímavú zvyšky. Tie si zapíšeme odspodu a získame tak binárne číslo 11000000. Rovnaký postup aplikujeme aj na zvyšné oktety. Celá výsledná IP adresa by tak mala mať tvar 11000000.10101000.00000001.00000101.
 
Spätný prevod z dvojkovej do desiatkovej sústavy si ukážeme na druhom oktete, ktorým je 10101000. Informatika má taký zvyk, že sa čísla začínajú indexovať od 0 a nie 1 ako by mnohých zvádzalo. Prvý bit sprava má teda index 0, ten najvyšší má index 7. V tomto prípade nás zaujímajú čísla na pozíciách, ktoré nie sú nulové. Je to teda tretia, piata a siedma pozícia zľava. Sčítame čísla spôsobom 27+25+23 čo je 128+32+8 a výsledok je teda 168.
 
Rovnaké pravidlá platia aj pre počítanie s maskou. Maska nám vlastne určuje, kde je hranica medzi sieťou a uzlami. Táto hranica bola kedysi pevná no dnes je z dôvodu šetrenia adries pohyblivá a to práve vďaka maske. Kompletné adresy mávajú aj tvar adresa/maska kde maska reprezentuje počet bitov nastavených na 1. Napríklad 192.168.1.5/24 znamená, že maska má tvar 11111111.11111111.11111111.00000000.
Adresu siete je možné vypočítať na základe akejkoľvek adresy uzla a masky pomocou techniky známej ako logický súčin alebo aj AND. Ten zapíše jednotky iba v prípade, že sa jednotka vyskytuje v oboch zadaniach. Pre lepšie pochopenie príklad.
Majme adresu 192.168.1.5 s maskou 255.255.255.0 a chceme vedieť, aká je adresa siete. V predchádzajúcej časti sme sa naučili prevádzať čísla do dvojkovej sústavy takže s tým už problém nebude. Zapíšeme si čísla pod seba a do výsledku napíšeme jednotku iba vtedy, aj sa súčasne nachádza v adrese uzla aj v maske. Výsledná adresa je tak 192.168.1.0
 
Výpočet adresy siete je však možné urobiť aj oveľa rýchlejšie a jednoduchšie bez prevodu na binárne čísla. Majme napríklad adresu 172.16.30.69 a masku 255.255.255.240 (/28). Ak sa v nejakom oktete masky nachádza 255 okamžite môžeme číslo z adresy uzla na danom mieste opísať. Naopak, ak je v maske 0 napíšeme do výslednej adresy na dané miesto nulu. V našom prípade máme 3 krát 255 takže prvé tri čísla budú určite v adrese siete. Posledné číslo 240 odčítame od 256 a získame číslo 16. V adrese máme na poslednom mieste 69. Koľko celých šestnástiek sa nachádza v čísle 69? Štyri. 4x16=64. Na poslednom mieste tak bude 64 a výsledná adresa siete je 192.168.30.64/28.
 
Komentáre (8)
Hrochy
Neskoro, uz je po pisomke a studenti to znovu odflakli :\. Drzim palce dalsim pokracovaniam.
Genyus
Bolo by také ťažké použiť ^ pri mocninách už keď sa nepoužíva horný index? Dosť sa zneprehľadňuje čo sa ktorým číslom myslelo.
leoleu
Super článek, díky. Jen mi trochu uteklo ve složitějším příkladu, kdy velikost sít2 je 2^13=8192, adresa sítě je 10.0.128.0, 8192/256=32 a toto číslo se ma příčíst k třetímu oktetu, tedy 128+32, což je 160, ale výsledek má být 159. Kde tedy vypadla ta 1? To víte, staršímu člověku to hůře myslí :-)
Vladys
Dobrý deň, ďakujem za Váš komentár. Máte pravdu, že 128+32 je 160 ibaže tá 1 z tej 160 je akoby vyjadrená číslom 255 v poslednom oktete. Adresa teda nie je 10.0.160.0, ale 10.0.159.255 čo je broadcast a 10.0.160.0 je už adresa inej, novej siete.
leoleu
Děkuji za odpověď. Stálo by za to, tuto informaci doplnit do článku, pak by to bylo dle mého jasné každému, kdo se o tuto oblast zajímá. Díky Vašemu článku jsem od včerejška dal desítky dotazů z http://www.subnettingquestions.com/ téměř z hlavy a bez převodu do bin soustavy jen s jedinou chybou, vzniklou mou nepozorností, právě tím, že jsem zapomněl přesunout tu 1 na 255 z třetího do čtvrtého octetu.
Michal

lahucke

retriever

Píše sa "v dnešnom poslednom diele" (vzor dub, v dube). Pripadne ak podľa nesprávneho vzoru stroj by to bolo "v dieli". Určite však nie "diely". Ak niekto neovláda slovenčinu, spochybňuje to jeho precíznosť pri programovaní.

kik

toto nie je programovanie ale sietovanie ty genius

Pridať nový komentár
TOPlist