Primer:
IP: 128.42.5.4
V binarni obliki: 10000000 00101010 00000101 00000100
Podomrežje: 255.255.248.0
Kako lahko določite številke predpon, omrežja, podomrežja in gostitelja?
Pretvarjanje decimalne predstavitve mrežne maske s piko v dvojiško obliko. Nato preštejte število sosednjih bitov 1, začenši z najpomembnejšim bitom v prvem oktetu (tj. na levi strani binarnega števila).
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
-----------------------------------
I counted twenty-one 1s -------> /21
Predpona 128.42.5.4 z mrežno masko 255.255.248.0 je /21.
Omrežni naslov je logični AND ustreznih bitov v binarni predstavitvi naslova IP in omrežne maske. Poravnajte bite v obeh naslovih in izvedite logični AND za vsak par ustreznih bitov. Nato pretvorite posamezne oktete rezultata nazaj v decimalno obliko.
Logična resničnostna tabela AND:
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
----------------------------------- [Logical AND]
10000000 00101010 00000000 00000000 ------> 128.42.0.0
Kot lahko vidite, je omrežni naslov 128.42.5.4/21 128.42.0.0
Pri oddajnem naslovu se vsi biti gostitelja pretvorijo v enice...
Spomnite se, da je naš naslov IP v decimalnem sistemu:
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
Omrežna maska je:
255.255.248.0 in binary: 11111111 11111111 11111000 00000000
To pomeni, da so naši biti gostitelja zadnjih 11 bitov naslova IP, saj masko gostitelja najdemo tako, da obrnemo masko omrežja:
Host bit mask : 00000000 00000000 00000hhh hhhhhhhh
Za izračun oddajnega naslova moramo vse bite gostitelja prisiliti, da so enice:
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
Host bit mask : 00000000 00000000 00000hhh hhhhhhhh
----------------------------------- [Force host bits]
10000000 00101010 00000111 11111111 ----> 128.42.7.255
Praviloma se podomrežja oblikujejo tako, da se nekateri biti gostiteljev prerazporedijo kot omrežni biti za vsako podomrežje. Velikokrat ni enega pravega načina za podomrežje... odvisno od vaših omejitev lahko obstaja več veljavnih načinov za podomrežje bloka naslovov.
Recimo, da bomo 128.42.0.0/21 razdelili na 4 podomrežja, ki morajo vsebovati vsaj 100 gostiteljev vsako...
V tem primeru vemo, da za 100 gostiteljev potrebujete vsaj predpono /25; izbral sem /24, ker je na meji oktetov. Opazite, da si omrežni naslov za vsako podomrežje izposodi bite gostitelja iz nadrejenega omrežnega bloka.
Kako sem ugotovil, da za 100 gostiteljev potrebujem vsaj /25 masklength? Predpono izračunajte tako, da se oprete na število gostiteljskih bitov, potrebnih za 100 gostiteljev. Za 100 gostiteljev je potrebnih 7 gostiteljskih bitov. Uradno se to izračuna z:
Biti gostitelja = Log2(število gostiteljev) = Log2(100) = 6,643
Ker so naslovi IPv4 široki 32 bitov in uporabljamo bite gostitelja (tj. najmanj pomembne bite), preprosto od 32 odštejemo 7, da izračunamo najmanjšo predpono podomrežja za vsako podomrežje... 32 - 7 = 25.
Ker želimo le štiri podomrežja iz celotnega bloka 128.42.0.0/21, lahko uporabimo /23 podomrežij. Odločil sem se za /23, ker potrebujemo štiri podomrežja... tj. dodatna dva bita, dodana maski mreže.
To je enako veljaven odgovor na omejitev, ki uporablja /23 podomrežij 128.42.0.0/21...
To smo naredili že zgoraj... samo ponovno uporabimo masko gostitelja iz dela, ki smo ga opravili, ko smo izračunali oddajni naslov 128.42.5.4/21... Tokrat bom namesto h
uporabil 1s, ker moramo ponovno izvesti logični AND na omrežnem naslovu.
128.42.5.4 in binary: 10000000 00101010 00000101 00000100
Host bit mask : 00000000 00000000 00000111 11111111
----------------------------------- [Logical AND]
00000000 00000000 00000101 00000100 -----> 0.0.5.4
Če želite ugotoviti največje možno število gostiteljev, poglejte število binarnih bitov v zgornji številki gostitelja. To najlažje storite tako, da od 32 (število bitov v naslovu IPv4) odštejete dolžino mrežne maske. Tako dobite število bitov gostitelja v naslovu. Na tej točki...
Maksimalno število gostiteljev = 2**(32 - dolžina mrežne maske) - 2
Razlog, da zgoraj odštejemo 2, je, da so številke gostiteljev all-ones in all-zeros rezervirane. Številka gostitelja all-zeros je omrežna številka; številka gostitelja all-ones je oddajni naslov.
Če uporabimo primer podomrežja 128.42.0.0/21 zgoraj, je število gostiteljev...
Maksimalno število gostiteljev = 2**(32 - 21) - 2 = 2048 - 2 = 2046
Predpostavimo, da nam nekdo da dva naslova IP in od nas pričakuje, da najdemo najdaljšo mrežno masko, ki vsebuje oba naslova; kaj če bi na primer imeli:
Najlažje je oba naslova pretvoriti v binarno obliko in poiskati najdaljši niz omrežnih bitov z leve strani naslova.
128.42.5.17 in binary: 10000000 00101010 00000101 00010001
128.42.5.67 in binary: 10000000 00101010 00000101 01000011
^ ^ ^
| | |
+--------- Network ---------+Host-+
(All bits are the same) Bits
V tem primeru bi bila največja omrežna maska (najmanjša gostiteljska maska) /25
OPOMBA: Če poskušate začeti z desne strani, se ne pustite preslepiti samo zato, ker ste našli en ustrezen stolpec bitov; za temi ustreznimi biti so lahko še neprimerni biti. Iskreno povedano, najvarneje je začeti na levi strani.
Zgornji odgovor je popolnoma udaril žebljico na glavico. Vendar sem na začetku potreboval nekaj različnih primerov iz različnih virov, da mi je to zares prišlo prav. Če vas zanimajo drugi primeri, sem na to temo napisal nekaj prispevkov na blogu - http://www.oznetnerd.com/category/subnetting/.
Administratorji, če se ta objava šteje za spam, jo lahko izbrišete.
Edit: Po predlogu YLearn'a bom poskušal povzeti ustrezne dele iz prvega dela moje serije, ne da bi tukaj prilepil celoten zapis.
Kot primer uporabimo 195.70.16.159/30.
Ker gre za /30, vemo, da bo del gostitelja v četrtem oktetu. Pretvorimo to v binarno obliko:
128 64 32 16 8 4 2 1
SN SN SN SN SN SN H H
1 0 0 1 1 1 1 1
Da bi ugotovili omrežni naslov, je treba samo sešteti bite SN, ki imajo pod seboj 1. (128 + 16 + 8 + 4 = 156).
Ko to število 156 dodamo prvim trem oktetom naslova, dobimo omrežni naslov 195.70.16.156.
Ker vemo, da je prvi uporabni naslov vedno omrežni naslov plus ena, moramo opraviti le še naslednji izračun: (156 + 1 = 157).
Tako dobimo prvi uporabni naslov 195.70.16.157.
Zdaj za trenutek preskočimo zadnji uporabni naslov in poiščimo oddajni naslov. Da bi ugotovili, kakšen je, moramo samo sešteti vse bite H (ne glede na to, ali so 1 ali 0) in nato to število dodati omrežnemu naslovu. (2 + 1 + 156 = 159).
Tako dobimo naslov za razširjanje 195.70.16.159.
Na koncu določimo še zadnji uporabni naslov. Ta postopek je podoben iskanju prvega uporabnega naslova, vendar namesto da bi omrežnemu naslovu dodali enico, od oddajnega naslova dejansko odštejemo enico. (159 - 1 = 158).
Tako dobimo zadnji uporabni naslov** 195.70.16.158.
In to je to! Naš temaplte je končan. Za lažje sklicevanje je tu še enkrat:
Kot bližnjico lahko uporabite tudi to formulo. Deluje za podomrežja vseh velikosti:
Primer:
IP: 128.42.5.4
V binarni obliki: 10000000 00101010 00000101 00000100
Podomrežje: 255.255.248.0
Kako lahko določite številke predpon, omrežja, podomrežja in gostitelja?
32768 16384 8192 4096 2048 1024 512 256 ----> Binary
128 192 224 240 248 252 254 255 ----> Sunet Mask
/17 /18 /19 /20 /21 /22 /23 /24 ----> CIDR
32766 16382 8190 3094 2046 1022 510 254 ----> Host
128 64 32 16 8 4 2 1 ----> Binary
128 192 224 240 248 252 254 255 ----> Sunet Mask
/25 /26 /27 /28 /29 /30 /31 /32 ----> CIDR
126 62 30 14 6 2 * - ----> Host
128 64 32 16 8 4 2 1
10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001
Example
Network=192.168.1.0 /24;
Network Address with Subnet mask = 192.168.1.0 subnet 255.255.255.0
Ip address range 192.168.1.0----192.168.1.255
Fist available ip address 192.168.1.1;
Last available ip address 192.168.1.254;
Broadcast address = 192.168.1.255;
254 Host
Network=192.168.1.0 /25;
Network Address with Subnet mask = 192.168.1.0 subnet 255.255.255.128
Ip address range 192.168.1.0----192.168.1.128
Fist available ip address 192.168.1.1;
Last available ip address 192.168.1.126;
Broadcast address = 192.168.1.127;
126 Hosts
When the CIDR increased ex. /24. /25. the network will divided by the
binary number.
/25 increase network 0-128| 128- 256 | you will have 2 Networks
/26 increase network 0-64 | 64 - 128 | 128-192 | 192-256 you will have 4 Networks
.
.
.
/32......