Cursus Subnetting.

Black Tiger

Addicted Member
Administrator
Moderator
Lid sinds
8 feb 2001
Berichten
34.774
Waarderingsscore
1.000
Punten
113
Leeftijd
60
Locatie
State Penitentiary
Aangeboden en geschreven door: Kerstkonijn

LET OP: Om een en ander uit te lijnen, worden de streepjes - en _ gebruikt. Deze hebben dus geen andere betekenis dan een spatie!

DEEL 1

Alleen om niet zoveel 1-tjes te schrijven, worden binaire getallen vertaald in decimale cijfers (omdat we daarmee op school hebben leren rekenen. Verder geen enkele andere logische reden! De computer kan niet decimaal rekenen.)

En hoe doen ze dat? Laten we een byte in 8 bits verdelen. En daar met een truc decimale getallen van maken:


_1 | 1 | 1 | 1 | 1 | 1 | 1 | 1_ binair



---+---+---+---+---+---+---+---



128| 64| 32| 16| 8 | 4 | 2 | 1_ decimaal



---+---+---+---+---+---+---+---



2^7|2^6|2^5|2^4|2^3|2^2|2^1|2^0 (^=tot de macht, dus 2^3=2x2x2=
:cool:




Tel alle getallen onder de lijn op, waar boven de lijn een 1 staat.

Voorbeeld:


-1- -0- -0- -1- -0- -1- -0- -0- =10010100 binair



-------------------------------



128+ 0 + 0 + 16+ 0 + 4 + 0 + 0_ =148 decimaal





Het subnetmask van een klasse C adres is: 255.255.255.0 Dat is binair:

11111111 11111111 11111111 00000000




!!! De manier om subnetting moeilijk te maken, is er decimaal naar te kijken!

Doe het dus alleen binair. Om het later op te schrijven, vertalen we het naar decimaal. Eerder niet. Dus: NOG NIET BINAIR REKENEN!

Een subnet masker geeft aan hoeveel ip-adressen er in een subnet zitten. Alle 1-tjes zijn getallen die op slot zitten, de 0 betekent vrij, kan in ip-adres een 1 of 0 zijn.


1 = vast, gelocked



0 = vrij





ipadres 192.168.54.41 ga ik nu eerst terug vertalen naar binair. Kijk er naar en laat het verder voor wat het is. Dit is niet waar het werkelijk over gaat:


192 is groter/gelijk aan 128? Ja : 1e bit = 1 - 192 - 128 = 64



_64 is groter/gelijk aan _64? Ja : 2e bit = 1 - _64 - _64 = _0



_ 0 is groter/gelijk aan _32? Nee: 3e bit = 0 - __0



_ 0 is groter/gelijk aan _16? Nee: 4e bit = 0 - __0



_ 0 is groter/gelijk aan _ 8? Nee: 5e bit = 0 - __0



_ 0 is groter/gelijk aan _ 4? Nee: 6e bit = 0 - __0



_ 0 is groter/gelijk aan _ 2? Nee: 7e bit = 0 - __0



_ 0 is groter/gelijk aan _ 1? Nee: 8e bit = 0 - __0


 


168 is groter/gelijk aan 128? Ja : 1e bit = 1 - 168 - 128 = 40



_40 is groter/gelijk aan _64? Nee: 2e bit = 0 - _40



_40 is groter/gelijk aan _32? Ja : 3e bit = 1 - _40 - _32 = _8



_ 8 is groter/gelijk aan _16? Nee: 4e bit = 0 - __8



_ 8 is groter/gelijk aan _ 8? Ja : 5e bit = 1 - __8 - __8 = _0



_ 0 is groter/gelijk aan _ 4? Nee: 6e bit = 0 - __0



_ 0 is groter/gelijk aan _ 2? Nee: 7e bit = 0 - __0



_ 0 is groter/gelijk aan _ 1? Nee: 8e bit = 0 - __0


 


_54 is groter/gelijk aan 128? Nee: 1e bit = 0 - _54



_54 is groter/gelijk aan _64? Nee: 2e bit = 0 - _54



_54 is groter/gelijk aan _32? Ja : 3e bit = 1 - _54 - _32 = 22



_22 is groter/gelijk aan _16? Ja : 4e bit = 1 - _22 - _16 = _6



_ 6 is groter/gelijk aan _ 8? Nee: 5e bit = 0 - __6



_ 6 is groter/gelijk aan _ 4? Ja : 6e bit = 1 - __6 - __4 = _2



_ 2 is groter/gelijk aan _ 2? Ja : 7e bit = 1 - __2 - __2 = _0



_ 0 is groter/gelijk aan _ 1? Nee: 8e bit = 0 - __0


 


_41 is groter/gelijk aan 128? Nee: 1e bit = 0 - _41



_41 is groter/gelijk aan _64? Nee: 2e bit = 0 - _41



_41 is groter/gelijk aan _32? Ja : 3e bit = 1 - _41 - _32 = _9



_ 9 is groter/gelijk aan _16? Nee: 4e bit = 0 - __9



_ 9 is groter/gelijk aan _ 8? Ja : 5e bit = 1 - __9 - __8 = _1



_ 1 is groter/gelijk aan _ 4? Nee: 6e bit = 0 - __1



_ 1 is groter/gelijk aan _ 2? Nee: 7e bit = 0 - __1



_ 1 is groter/gelijk aan _ 1? Ja : 8e bit = 1 - __1 - __1 = _0





Dus: 11000000 10101000 00110110 00101001

Nogmaals: Niet meer decimaal denken, alleen kijken. Dus nog NIETS rekenen!

Met een subnetmask van 255.255.255.252 (11111111 11111111 11111111 11111100)

Hieronder is te zien welke mogelijkheden er nog meer zijn:


11000000 10101000 00110110 00101001
(192.168.54.41)


11111111 11111111 11111111 11111100
(255.255.255.0) Subnetmask (1 = vast)

betekent dus:


11000000 10101000 00110110 001010..
(. = kan 1 of 0 zijn)

Alle mogelijkheden zijn dan:


11000000 10101000 00110110 00101000 (192.168.54.40)
* (deze host)


11000000 10101000 00110110 00101001 (192.168.54.41)



11000000 10101000 00110110 00101010 (192.168.54.42)



11000000 10101000 00110110 00101011 (192.168.54.43)
* (broadcast)


-------- -------- -------- ------^^


*) Afspraak:

  • alle laatste cijfers 0 = deze host

    alle laatste cijfers 1 = directe broadcast



  • alle cijfers 1 _______ = lokale broadcast
Nou, dat ziet er dus leuk uit. Maar nu gaan we uitzoeken waarom een subnetmask van 255.255.255.250 minder handig is:


250 is groter/gelijk aan 128? Ja : 1e bit = 1 - 250 - 128 = 64



122 is groter/gelijk aan 064? Ja : 2e bit = 1 - 122 - _64 = 58



_58 is groter/gelijk aan 032? Ja : 3e bit = 1 - _58 - _32 = 26



_26 is groter/gelijk aan 016? Ja : 4e bit = 1 - _26 - _16 = 10



_10 is groter/gelijk aan 008? Ja : 5e bit = 1 - _10 - __8 = _2



__2 is groter/gelijk aan 004? Nee: 6e bit = 0 - __2



__2 is groter/gelijk aan 002? Ja : 7e bit = 1 - __2 - __2 = _0



__0 is groter/gelijk aan 001? Nee: 8e bit = 0 - __0





Met een subnetmask van 255.255.255.250 (11111111 11111111 11111111 11111010)

Hieronder is te zien welke mogelijkheden er nog meer zijn:


11000000 10101000 00110110 00101001
(192.168.54.41)


11111111 11111111 11111111 11111010
(255.255.255.250) Subnetmask

betekent dus:


11000000 10101000 00110110 00101.0.
(. = kan 1 of 0 zijn)

Alle mogelijkheden zijn dan:


11000000 10101000 00110110 00101000 (192.168.54.40)
(deze host)


11000000 10101000 00110110 00101001 (192.168.54.41)



11000000 10101000 00110110 00101100 (192.168.54.44)



11000000 10101000 00110110 00101101 (192.168.54.45)
(broadcast)


-------- -------- -------- -----
:azn:

Dat hoort te werken! Maarrrr, voor ons decimaal ingestelde mensen wordt het nu erg onoverzichtelijk, want de decimale getallen volgen elkaar niet op. Binair dus erg overzichtelijk, maar decimaal een puinhoop. En dat decimaal doen we alleen maar om korter te schrijven!

En de afspraak is: geef met het aantal 1-tjes aan, welk deel het netwerk is. De rest zijn dan nullen. Dus netwerkmask 255.255.255.250 mag ook niet. Want er zitten 0-letjes en 1-tjes door elkaar. Tja, en dan is het nog maar de vraag hoe de software erop gaat reageren.... Met alle onvoorspelbare gevolgen van dien.

 
Laatst bewerkt door een moderator:
Deel 2

Laten we eens wat subnetten gaan maken met een klasse C netwerk:

Het subnetmask is 11111111.11111111.11111111.11100000




Voor het gemak halen we de eerste 3 van de 4 groepen er af: 11100000


____ _ ________ ________________ _Netwerk|Host-id



PC-1 = 10000010 Subnet: 100..... ____ 100|00010



PC-2 = 01000011 Subnet: 010..... ____ 010|00011



PC-3 = 00100001 Subnet: 001..... ____ 001|00001



PC-4 = 01100010 Subnet: 011..... ____ 011|00010



PC-5 = 11000001 Subnet: 110..... ____ 110|00001



PC-6 = 10100011 Subnet: 101..... ____ 101|00011





De 1e drie bits horen volgens het subnetmask bij het netwerk deel. Geen van die pc's kan dus bij een ander komen, omdat voor al die pc's de subnetten anders zijn. Logisch he, als het binair blijft. Het is niet rekenen, maar kijken!

Nu zetten er nog een paar multi-homed hosts tussen. Dus hosts met meer netwerkkaarten:


PC-A = 10000011 Subn: 100 , 01001001 Subn: 010



PC-B = 00100101 Subn: 001 , 01100111 Subn: 011



PC-C = 01111001 Subn: 011 , 11011101 Subn: 110 , 01000110 Subn: 010



PC-D = 01101100 Subn: 011 , 10101000 Subn: 101





Wie verbindt wat:


PC-A: PC-1 + PC-2



PC-B: PC-3 + PC-4



PC-C: PC-4 + PC-5 + PC-2



PC-D: PC-5 + PC-6





Dus via de multi-homed host, is van elke pc bij de andere komen. Ligt een pc buiten het subnet, wordt er gerouteerd via de multi-homed host op het lokale subnet.

Als multi-homed host wordt meestal een router genomen.

Het voorbeeld kan realistischer gemaakt worden door in elk subnet meer hosts (pc's, printers, servers, etc.) te plaatsen.

Nu schrijven we wat het decimaal is (om het voor anderen onleesbaar te maken) ;)


PC-1 130 Subnet: 128



PC-2 _67 Subnet: _64



PC-3 _33 Subnet: _32



PC-4 _98 Subnet: _96



PC-5 193 Subnet: 192



PC-6 163 Subnet: 160


 


PC-A 131 Subnet: 128 , _73 Subnet: _64



PC-B _37 Subnet: _32 , 103 Subnet: _96



PC-C 121 Subnet: _96 , 221 Subnet: 192 , _70 Subnet: _64



PC-D 108 Subnet: _92 , 168 Subnet: 160





Mmm, daar is niet veel van te maken. Ziet er alleen abracadabra uit. Lijkt logisch. Maar waarom??? Daarom wordt alles binair uitgepuzzeld en als alles later klaar is decimaal geschreven. Zo werkt het dus.

 
Laatst bewerkt door een moderator:
Deel 3 (Helaas, nu gaan we wel rekenen, maar niet te moeilijk hoor)

Wat is mogelijk (Klasse C):

Aantal mogelijkheden in een subnet:

Het aantal mogelijke adressen is binair elk mogelijke combinatie, uitgezonderd alles 0 of alles 1. Die zijn voor 'deze host' en 'broadcast'. Dus aantal -2.

Aantal mogelijke subnetten:

En alle host adressen vallen tussen(!) de netwerk nummers: in het voorbeeld van 32 TOT 64 is 31 subnetten (64-32-1). En het laatste adres van het subnet is weer voor de broadcast Dus dan blijven er 30 subnetten over.

Alles -2 dus)


____________________ _______________ ____Aantal____ __Aantal__ _Adressen___



__Subnetmask________ ___Decimaal____ _mogelijkheden _subnetten (mog x subn)



255.255.255.11111110 255.255.255.254 ____ 2-2=0 _ x _128-2=126 = ___ 0



255.255.255.11111100 255.255.255.252 ____ 4-2=2 _ x _ 64-2=62_ = _ 124



255.255.255.11111000 255.255.255.248 ____ 8-2=6 _ x _ 32-2=30_ = _ 180



255.255.255.11110000 255.255.255.240 ___ 16-2=14_ x _ 16-2=14_ = _ 196



255.255.255.11100000 255.255.255.224 ___ 32-2=30_ x __ 8-2=6 _ = _ 180



255.255.255.11000000 255.255.255.192 ___ 64-2=62_ x __ 4-2=2 _ = _ 124



255.255.255.10000000 255.255.255.128 ___128-2=126 x __ 2-2=0 _ = ___ 0





Default (geen subnetting):


255.255.255.00000000 255.255.255.0__ ___256-2=254 _ __________ = _ 254





Jaja, puzzel dit nog maar even na. Want wie dit in een keer begrijpt, is een crack. (Al is het nut ervan beperkt.) De conclusie die te trekken is, is dat er met subnetting minder ip adressen tot onze beschikking staan, dan zonder subnetten. Neem verder deze tabel erbij als er ooit mee gewerkt moet worden. Of gebruik het als voorbeeld om een klasse A of B in subnetten te berekenen. Vanuit dit voorbeeld kunnen die tabellen ook gemaakt worden.

 
Deel 4 (klooien en klasse A,B en C)

Waar gaat het mogelijk fout als iemand een klasse A netwerk heeft en een subnetmask 255.255.255.0 gebruikt?

En nu is het antwoord te begrijpen:

Het directe broadcast gaat naar het volgende netwerkadres: Netwerkdeel volgens subnet, aangevuld met alleen 1-tjes.

IP-adres: 10.0.0.25, subnetmask 255.255.255.0 direct broadcast: 10.0.0.255

IP-adres: 10.0.0.25, subnetmask 255.0.0.0 direct broadcast: 10.255.255.255

Een directe broadcast is een broadcast naar alle adressen in het aangegeven netwerkdeel. De kans is dus aanwezig dat een deel van het netwerkverkeer niet werkt. In ieder geval dat deel wat gebruik maakt van directe broadcasts.

Een broadcast naar alle machines op het netwerk is een broadcast met alle bits op 1. Naar 255.255.255.255 dus. Dat werkt wel. Dus een DHCP request werkt wel, maar dan kan het toch wat duister worden.

Deel 5 (lekker kort en makkelijk)

Andere notatie:

Het aantal bits van een subnetmask op 1 wordt ook aangegeven door /n (slash aantal):


__ip-adres_ _subnetmask____ _____subnetmask binair_____ __gelijk aan__



71.42.11.43 255.255.255.0 _ (255.255).11111111.00000000 71.42.11.43/24



71.42.11.43 255.255.254.0 _ (255.255).11111110.00000000 71.42.11.43/23



71.42.11.43 255.255.224.0 _ (255.255).11100000.00000000 71.42.11.43/19



71.42.11.43 255.255.255.224 (255.255).11111111.11100000 71.42.11.43/27



71.42.11.43 255.255.255.252 (255.255).11111111.11111100 71.42.11.43/30





 



Hosting Fun

Advertenties

Terug
Bovenaan Onderaan