Vrijwel iedere maand krijg ik van een cursist de vraag om de 'IPv4 subnetten' uit te leggen. Inmiddels heb ik dit al aan velen op een 'gemakkelijke manier' uitgelegd. Het leek mij daarom leuk en handig om de basisuitleg via dit blog beschikbaar te maken.. (Bovendien kan ik mijn cursisten verwijzen naar deze blog als naslagwerk). Goed, IPv4 subnetten zo gemakkelijk mogelijk uitgelegd… daar gaan we!


In dit artikel wordt IPv4 behandeld. Wil je meer weten over IPv6? Kijk dan onderaan dit artikel!



IP-adressen en subnetten


IPv4 adressen bestaan uit 4 groepjes van 3 cijfers (xxx.xxx.xxx.xxx) met waardes tussen de 0 en de 255. Zo'n groepje van 3 cijfers noemen we een octet. Je zult je misschien afvragen waarom je een groepje met 3 cijfers erin een octet noemt, want dat betekent toch een acht-tal? Dat komt doordat de binaire notatie van zo'n 3 cijferig getal bestaat uit maximaal 8 posities, varierend van allemaal nullen (0000000) wat je kunt vertalen naar '0', tot de maximale waarde voor zo'n octet, namelijk allemaal enen (11111111) wat uitkomt op 255. Nu we hebben gezien hoe zo'n ipadres eruit ziet, gaan we verder met het 'echte' werk.. We gaan het hebben over subnetten. Binnen de verschillende ipranges (een opvolgende rij ipadressen) worden vanuit de ip-regelgeving een aantal standaarden meegegeven. Zo worden er 'klasses' gehangen aan ip-ranges, die bepalen welk subnet er standaard gebruikt zou moeten worden.


Klasse A en B


Zo vallen de ip-adressen die beginnen met een getal van 0 tot en met 127 in het zogenaamde klasse A netwerk. Deze maken standaard gebruik van het subnet 255.0.0.0 . Voor een klasse B netwerk is afgesproken dat deze standaard worden voorzien van het subnet 255.255.0.0. Deze klasse geldt voor adressen die beginnen met het getal 128 tot en met 191.

Klasse C


Een klasse C netwerk vervolgens begint zijn ip-adres met een getal tussen de 192 en als hoogste waarde 223. Hierbij is het subnetmasker 255.255.255.0. Bij zo’n klasse C netwerk is er ruimte voor maximaal 256 adressen die per netwerk kunnen worden uitgedeeld. Dat dit in de praktijk minder adressen zijn, leg ik zometeen verder uit. Houd dit wel even in je achterhoofd!

Klasse D en E

De goede lezer vraagt zich nu af: 'Houdt het hierna op, we zitten toch nog niet aan de 255?' Nee, dat klopt. De overige ranges zijn verdeeld in de klasse D en E netwerken (224 – 239 en 240 – 255). Volgens de 'Ip-regelgeving' zijn deze voor multicast en andere, experimentele doeleinden. Ondanks dat deze (volgens de RFC) geen standaard vastgesteld subnet hebben, zie je dit soort adressen vaak gebruikt worden voor streaming audio en video met een subnet van 240.0.0.0.

Schematisch ziet dat er als volgt uit:

IPv4 subnetten


Private IP-adressen


Binnen deze ip-ranges zijn er een aantal reeksen aangemerkt als zijnde 'prive', dus voor gebruik op interne netwerken. Alle overige adressen zijn dus internetadressen. Dit stamt nog uit de tijd dat grote bedrijven als Microsoft of Boeing voor al de machines die op internet wilden communiceren een publiek/internetadres nodig hadden.

Deze private-ip adressen met het bijbehorende subnetmasker zijn:

10.0.0.0 met het subnetmasker 255.0.0.0
172.16.0.0 met het subnetmasker 255.240.0.0* **
192.168.0.0 met het subnetmasker 255.255.0.0*

* Heel vaak zie je deze ipadressen met een subnet van 255.255.255.0. Dan is deze ipreeks dus eigenlijk al ge-subnet!
** Door het subnet (255.240.0.0) is het laatste adres binnen deze private ipreeks 172.31.255.255

Netwerk-id en host-id


Vervolgens is het nog belangrijk om te weten dat een netwerkadres (ipadres)  bestaat uit een netwerk-id en een host-id. Dit wordt door vele trainers nog steeds uitgelegd als de straat en het huisnummer van een ip adres, dus waarom zou ik dit voorbeeld niet volgen? De scheiding tussen de straatnaam (netwerkid) en het huisnummer (hostid) wordt bepaald door het subnet(masker).

Het eenvoudigste voorbeeld hiervan is wanneer je een ipadres hebt van 192.168.1.50 met een subnetmasker van 255.255.255.0, dan ligt de scheiding van de straat naam en het huis adres bij het laatste octet van het subnetmasker, de nul.

Oftewel:
IPv4 subnetten


In de onderstaande voorbeelden zal ik uitgaan van grote netwerken, zoals ze ook in menig cursusboek naar voren komen..


Subnet notatie /xx


Wanneer wordt gevraagd naar het subnet wat hoort bij de notatie 172.16.0.0/19 kun je dit uitrekenen door eerst te bekijken waar die /19 voor staat. Die /19 wordt gebruikt om aan te geven dat het netwerk-id bestaat uit 19 bits. Oftewel van de in totaal 32 binaire posities van een IPv4 adres (4x8), zijn de eerste 19 een 1.

Dit zou je dus als volgt kunnen uitschrijven:

111111111111111111000000000000, wanneer je dit in groepjes van 8 verdeeld, door punten gescheiden, lijkt het al bijna op een subnet masker.

11111111.11111111.11100000.00000000 <- 19 enen in het subnetmasker, gevolgd door 13 nullen.

Als we die door de volgende binaire vertaaltabel halen:
IPv4 subnetten

Komen we uit op:
IPv4 subnetten

De logische vervolgvraag zou dan zijn: Hoe veel hosts kun je hebben binnen het aangegeven subnet?



Aantal hosts binnen een subnet berekenen


Wanneer we voor het gemak uit gaan van het bovenstaande verhaal, zou de vraag dus zijn: Hoeveel hosts kun je hebben binnen jouw subnet, wanneer je het subnetmasker 255.255.224.0 gebruikt. Ik ga er hierbij voor het volledige plaatje vanuit dat we bovenstaande berekening nog niet gemaakt hebben.

Wanneer je het subnet opschrijft in de binaire notatie, zul je zien dat dit zorgt voor een netwerk id (de enen) van 19 posities, namelijk:

11111111.11111111.11100000.00000000 = 255.255.224.0

Dit houdt in dat je nog 13 posities over hebt die je kunt gebruiken voor host-adressen. Het aantal hiervan bereken je door middel van de formule 2 tot de macht 'aantal hostposities'. In bovenstaand geval dus 2 tot de macht 13, wat je op je 'Scientific' calculator uitrekent met de XY toets.

IPv4 subnetten

Je komt dan uit op het getal 8192 hosts, maarrr.. Nu is het zo dat er 2 adressen (per subnet) worden afgetrokken. Eén voor wat men noemt het netwerk adres en 1 wat het zogenaamde broadcast adres wordt genoemd. Houd hier rekening mee! Het juiste antwoord op de vraag 'hoeveel hosts kun je in dit subnet kwijt' zou dus 8190 zijn. De formule voor deze berekening zou uitkomen op 2 tot de macht h (hostid’s) -2.

Je kunt je voorstellen dat je naast adressen voor computerapparatuur van gebruikers ook rekening moet houden met bijvoorbeeld printers en een gateway. Houd hier dus ter dege rekening mee!


Computers verdelen in subnetten


Stel; je hebt 5000 computers in een klasse B netwerk (172.16.0.0) en je wilt deze verdelen over 50 subnetten met elk 100 computers, welk subnet moet je dan kiezen? Hiervoor is er een handig 'trucje'. Je kunt hiervoor de 'omgedraaide subnet-notatie' gebruiken.

Ik zal hem hieronder uitleggen. We hebben dus een subnet nodig met ruimte voor 100 pc's, dit gaan we binair uitrekenen:

00000000 = 0 niet genoeg ruimte
00000001 = 1 niet genoeg ruimte
00000011 = 3 niet genoeg ruimte
00000111 = 7 niet genoeg ruimte
00001111 = 15 niet genoeg ruimte
00011111 = 31 niet genoeg ruimte
00111111 = 63 niet genoeg ruimte
01111111 = 127 voldoende ruimte
11111111 = 255 teveel ruimte

Nu trekken we de gevonden 127 die er het dichtst bij in de buurt kwam af van de 255 mogelijkheden, waardoor je 128 overhoudt. Jouw subnet wordt dus 255.255.255.128. Anders uitgeschreven wordt dat dus 11111111.11111111.11111111.10000000

Dit houdt in dat jouw klasse B netwerk (met origineel een subnetmasker van 255.255.0.0) wordt gesubnet naar een subnetmasker van 255.255.255.128. Wanneer je deze vervolgens wilt neerschrijven in de verkorte '/-notatie', tellen we de enen van het subnetmasker en kom je uit op 172.16.0.0/25


Kunnen 2 IP-adressen met elkaar communiceren?


Hiervoor is een redelijk simpele techniek gevonden, namelijk het 'anden', wat je uitspreekt als [enden]. Bij deze techniek schrijf je de ipadressen weer op een binaire manier uit en ga je 'anden' ten opzichte van het subnet. Het 'anden' houdt niets meer of minder in dan: wanneer er bovenelkaar 2 enen staan, wordt het corresponderende getal eronder een 1. Zo niet, wordt het een nul. (1 AND 1 = 1). Wanneer van 2 combinaties de 'anden' overeenkomen, dan kunnen ze communiceren, zo niet, dan niet.

Voorbeeld 1:

IPv4 subnetten

Voor voorbeeld 1 heb ik 2 ipadressen genomen, waarbij je op voorhand al zou kunnen weten dat ze samen kunnen communiceren. Je ziet dat de subnetten en ipadressen volledig binair zijn uitgeschreven, waarna er simpelweg per getalpaar is gekeken of het een 1 (2 enen boven elkaar) of een 0 (alle andere combinaties) moest worden.

Wanneer 'de anden' overeenkomen kunnen ze met elkaar communiceren.


Voorbeeld 2:

IPv4 subnetten

Wederom een overduidelijk voorbeeld voor de getrainde subnetter, maar nogmaals het gaat hier om de toepassing van deze rekenmodellen en niet zozeer om de moeilijkheid van de opgave. Deze manier is namelijk altijd toepasbaar.

Ik hoop dat je inmiddels hebt opgemerkt dat het Klasse A netwerk 10.x.x.x is gesubnet naar een grootte van 256 host-id’s.

Wanneer we deze gaan anden zul je zien dat er op basis van de verschillen in 'anden' geen communicatie mogelijk is zonder router.


Subnetcalculators


Op het internet zijn diverse goede subnetcalculators te vinden, de bekendste is www.subnet-calculator.com/subnet.php, echter zul je voor je examens deze tool niet tot je beschikking hebben en is het reuze handig om deze basis jezelf eigen te maken.


IPv6


Sommige mensen zijn wel bekend met IPv4, maar niet met IPv6. Zo zijn er bijvoorbeeld speciale IPv6 nummertjes. Ook hebben we twee blogartikelen besteed aan de opbouw van een IPv6 adres:


Behalve de uitleg hierboven, behandelen wij een groot gedeelte van IPv4 & IPv6 ook in onze training 
Installing and Configuring Windows Server 2012 R2 en de NIEUWE training Networking with Windows Server 2016

Wat maakt trainen bij Master it Training nou zo uniek?

Dat is natuurlijk onze lesmethode! We maken gebruik van Active Learning, de lesmethode waarbij je actief met de stof bezig bent. Doordat je actief met de stof bezig bent onthoud je alles veel makkelijker en kan je op je eigen tempo werken. Dat je daarnaast ook echt bezig bent met de praktijk, maakt ook nog eens dat je er daarna meteen fijn mee aan de slag kunt.

Wil je meer weten over onze lesmethode of onze trainingen?

Dan kan je natuurlijk contact met ons opnemen. Dat kan op een heleboel verschillende manieren, afhankelijk van jouw voorkeuren. Wil je met ons bellen? Dan mag je dat doen op 040 2323390 of je klikt op "Hulp of advies nodig??” en laat jouw gegevens achter, dan bellen we jou! Je mag ons ook mailen, dat doe je dan naar info@master-it.nl