Over Classless addressing

Zie Classfull addressering waar Class A, B en C netwerk adressen worden bepaald door een aantal vaste bits “on” (1) en de resterende “off”bits (0) het aantal hosts bepalen. Alle hosts (alle nodes) gebruiken in het netwerk exact dezelfde subnet mask. Class A 8 bits on (255.0.0.0), Class B 16 bits (255.255.0.0) en Class C 24 bits (255.255.255.0), we noemen dit de default masks en deze kunnen niet wijzigen.

De Classfull IP adressering geeft ons hosts reeksen (range) van 256 t/m 16.8 miljoen. Door de enorme behoefte aan meer IP adressen, flexibiliteit en het niet onnodig verspelen van IP adressen raakt deze manier van IP adrressering, ondanks het mechanisme van subnetworking (borrowing hosts bits) verouderd en onbruikbaar voor de huidige behoefte die Internet kent.

CIDR (cider) is ontwikkeld om bovenstaande problematiek te verhelpen. CIDR vervangt de Classfull adressering methodiek. In plaats van te werken met de gelimiteerde network IDs (or prefixes) van 8, 16 of 24, gebruikt CIDR prefixes van 13 t/m 27 bits. Hiermee kunnen IP blokken (blocks) worden toegekend en netwerken worden gecreerd zo klein als 32 hosts of zo groot als 500.000 hosts.

Classless/CIDR gaat verder en laat het toe om met een / (slash notatie) het netwerkdeel te laten variëren. We gebruiken dus het gehele 32 bit deel en wijzen een netwerkdeel toe met “on” (Prefix) en een host deel met “off”. CIDR heeft dus de schaalbaarheid van IPv4 enorm verbeterd met het volgende:

  • Vervanging van classfull adressering met meer flexibiliteit en het onnodig verspelen van ongebruikte IP addressering.
  • Route aggregation and suppernetting (samenvatten en inkorten van routing regels).

Naast CIDR is er ook sprake van VLSMs (Variable Length Subnet Masks). VLSM is ontwikkeld om meerdere subnetwerken verder onder te verdelen in meerdere IP subnetwerken. Elk netwerk segment kan hierdoor een ander subnet mask gebruiken.

Samengevat; door het gebruik van CIDR en VLSM verspil je geen IP adressering zoals bij Classfull het geval is, het maakt route aggregation (suppernetting) mogelijk. Suppernetting is alleen te gebruiken bij routers die een Classless routing protocol geactiveerd hebben zoals OSPF of EIGRP. Cisco IOS kan niet geconfigureerd worden gebruik makend van de / (slash) notatie, NXOS kan dit wel.

Het creëren van Classless IP reeksen:

Voordat je begint met het creëren van Classless subnet masks inventariseer het volgende:

  1. Hoeveel netwerk IDs zijn er nodig?
  • 1 voor elk LAN subnet
  • 1 voor deze LAN subnet naar WAN connectie
  1. Bepaal hoeveel hosts IDs er per subnet er nodig zijn?
  • 1 voor elke TCP/IP host
  • 1 voor elke router interface
  1. Gebaseerd op bovenstaand, creëer je het volgende:
  • 1 subnet mask voor het gehele netwerk
  • Een uniek subnet ID voor elk fysiek segment
  • Een reeks host IDs voor elk subnet

Om snel te kunnen subnetten is het handig de “Powers of 2” uit je hoofd te kennen.

2x 21 22 23 24 25 26 27
Waarde 2 4 8 16 32 64 128
2x 28 29 210 211 212 213 214
Waarde 256 512 1.024 2.048 4.096 8.192 16.384

Hint: onthoudt vetgedrukte waardes om bijvoorbeeld snel 210 te berekenen, 2×256 = 512 2x 512 = 1.024.

Subnet Mask CIDR Waarde Subnet Mask CIDR Waarde
255.0.0.0 /8 255.255.0.0 /16
255.128.0.0 /9 255.255.128.0 /17
255.192.0.0 /10 255.255.192.0 /18
255.224.0.0 /11 255.255.224.0 /19
255.240.0.0 /12 255.255.240.0 /20
255.248.0.0 /13 255.255.248.0 /21
255.252.0.0 /14 255.255.252.0 /22
255.254.0.0 /15 255.255.254.0 /23

Waarde /24 t/m /30 is uitgewerkt bij Subnetting Class C Addresses:

Hou in gedachte dat een CIDR range /8 t/m /15 alleen een Class A kan zijn. /16 t/m /23 een Class A en B. /24 t/m /30 een Class A, B en C network addresses. Bij weke Class je ook gebruikt is /30 de grootst mogelijke subnet mask omdat er minimaal 2 bits over moeten blijven voor hosts bits.

Class A: /8 t/m /30

Class B: /16 t/m /30

Class C: /24 t/m /30

Todo: Voorbeelden van Class C, B en A CIDR berekeningen uitwerken.

 

Subnetting Class C Addresses:

Subnet Mask CIDR Waarde Binaire Waarde Decimale Waarde
255.255.255.0 /24 0000 0000 0
255.255.255.128 /25 1000 0000 128
255.255.255.192 /26 1100 0000 192
255.255.255.224 /27 1110 0000 224
255.255.255.240 /28 1111 0000 240
255.255.255.248 /29 1111 1000 248
255.255.255.252 /30 1111 1100 252

Wanneer het subnet mask voor een netwerk bekend is kan men de hoeveel subnets, aantal mogelijke hosts en bij behorende  broadcast bepalen of uitwerken. Dit kan worden bepaald door de volgende vragen te beantwoorden:

  1. Hoeveel subnets zijn er mogelijk met het bekende subnet mask?
  2. Hoeveel hosts zijn er per subnet beschikbaar?
  3. Wat zijn de beschikbare subnets?
  4. Wat is het broadcast adres voor elk subnet?
  5. Wat zijn beschikbare hosts voor elk subnet?

 

  1. Hoeveel subnets bij subnet mask 255.255.192? Binair 1100 0000 = 22 = 4 subnets
  2. Hoeveel hosts per subnet? 26 – 2 = 62 hosts per subnet
  3. Wat zijn de beschikbare subnets? 256 – subnet mask = 256 -192 = 64 blocksize beginnend vanaf 0 = 0, 64, 128, 192
  4. Wat zijn de bijbehorende broadcast adressen bij de subnets? Altijd het getal voorafgaand aan het volgende subnet. 63, 127, 191. Zie tabel
  5. Wat zijn de valide hosts? Eerst beschikbare host adres t/m laatst beschikbare hosts adres. Zie tabel

 

Subnets 0 64 128 192
Eerste host 1 65 129 193
Laatste host 62 126 190 254
Broadcast 63 127 191 255

Bovenstaand is de uitwerking van een 255.255.255.192 (/26) subnet mask.

Volgende voorbeeld van een /28 netwerk

Netwerk adres: 192.168.10.0

Subnet mask: 255.255.255.240

  1. Aantal Subnets? 240 = 1111 0000. 24 = 16
  2. Hosts? 24 – 2 = 14
  3. Te gebruiken subnets? 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224 en 240
  4. Broadcast adres voor elk subnet? Zie tabel
  5. Te gebruiken hosts? Zie tabel
Subnets 0 16 32 ……. 224 240
Eerste host 1 17 33 225 241
Laatste host 14 30 46 238 254
Broadcast 15 31 47 239 255

 

Het volgende binnen Class C / slash notatie (CIDR) is handig om uit het hoofd te leren:

Van /25 notatie weten we het volgende:

·         128 mask

·         1 bit “on” 7 bits “off” (1000 0000)

·         Block size van 128 (256 – 128)

·         2 subnets, elk 126 hosts

Van /28 notatie weten we het volgende:

·         240 mask

·         4 bits “on” 4 bits “off” (1111 0000)

·         Block size van 16 (256 – 240)

·         16 subnets, elk 14 hosts

 

Van /26 notatie weten we het volgende:

·         192 mask

·         2 bits “on” 6 bits “off” (1100 0000)

·         Block size van 64 (256 – 192)

·         4 subnets, elk 62 hosts

Van /29 notatie weten we het volgende:

·         248 mask

·         5 bits “on” 3 bits “off” (1111 1000)

·         Block size van 8 (256 – 248)

·         32 subnets, elk 6 hosts

 

Van /27 notatie weten we het volgende:

·         224 mask

·         3 bits “on” 6 bits “off” (1110 0000)

·         Block size van 32 (256 – 224)

·         8 subnets, elk 30 hosts

Van /30 notatie weten we het volgende:

·         252 mask

·         6 bits “on” 2 bits “off” (1111 1100)

·         Block size van 4 (256 – 252)

·         64 subnets, elk 2 hosts

 

Uitwerken Class B en A met CIDR

Subnetting Class B addresses

Subnet Mask CIDR Waarde Binaire waarde octet 3 en 4 Decimale Waarde
255.255.0.0 /16 0000 0000 0000 0000 0
255.255.128.0 /17 1000 0000 0000 0000 128.0
255.255.192.0 /18 1100 0000 0000 0000 192.0
255.255.224.0 /19 1110 0000 0000 0000 224.0
255.255.240.0 /20 1111 0000 0000 0000 240.0
255.255.248.0 /21 1111 1000 0000 0000 248.0
255.255.252.0 /22 1111 1100 0000 0000 252.0
255255.254.0 /23 1111 1110 0000 0000 254.0
255.255.255.0 /24 1111 1111 0000 0000 255.0
255.255.255.128 /25 1111 111 1000 0000 255.128
255.255.255.192 /26 1111 111 1100 0000 255.192
255.255.255.224 /27 1111 111 1110 0000 255.224
255.255.255.240 /28 1111 111 1111 0000 255.240
255.255.255.248 /29 1111 111 1111 1000 255.248
255.255.255.252 /30 1111 111 1111 1100 255.252

To do uitwerken voorbeelden: /17, /20, /25 en /26

Volgende voorbeeld van een /17 netwerk

Netwerk adres: 172.16.10.0

Subnet mask: 255.255.128.0

  1. Aantal Subnets? 128 = 1000 0000. 0000 0000 21 = 2
  2. Hosts? 215 – 2 = 32.766
  3. Te gebruiken subnets? 256 – 128 = 128; 0.0, 128.0
  4. Broadcast adres voor elk subnet? Zie tabel
  5. Te gebruiken hosts? Zie tabel
Subnets 0.0 128.0
Eerste host 0.1 128.1
Laatste host 127.254 255.254
Broadcast 127.255 255.255

Volgende voorbeeld van een /20 netwerk

Netwerk adres: 172.16.10.0

Subnet mask: 255.255.240.0

  1. Aantal Subnets? 240 = 1111 0000. 0000 0000 24 = 16
  2. Hosts? 212 – 2 = 4.094
  3. Te gebruiken subnets? 256 – 240 = 16; 0.0, 16.0, 32.0, 48.0, t/m 15×16= 240.0
  4. Broadcast adres voor elk subnet? Zie tabel
  5. Te gebruiken hosts? Zie tabel
Subnets 0.0 16.0 32.0 ……. 224.0 240.0
Eerste host 0.1 16.1 32.1 224.0 240.1
Laatste host 15.254 31.254 47.254 239.254 255.254
Broadcast 15.255 31.255 47.255 239.255 255.255

Volgende voorbeeld van een /24 netwerk (Class C) nee maar een Class B met 28

Netwerk adres: 172.16.10.0

Subnet mask: 255.255.255.0

  1. Aantal Subnets? 255 = 1111 1111. 0000 0000 28 = 256
  2. Hosts? 28 – 2 = 254
  3. Te gebruiken subnets? 256 – 255 = 1; 0.0, 1.0, 2.0, 3.0, t/m 255
  4. Broadcast adres voor elk subnet? Zie tabel
  5. Te gebruiken hosts? Zie tabel
Subnets 0.0 1.0 2.0 ……. 254.0 255.0
Eerste host 0.1 1.1 2.1 254.1 255.1
Laatste host 0.254 1.254 2.254 254.254 255.254
Broadcast 0.255 1.255 2.255 254.255 255.255

Volgende voorbeeld van een /25 netwerk

Netwerk adres: 172.16.10.0

Subnet mask: 255.255.255.128

  1. Aantal Subnets? 255 = 1111 1111. 1000 0000 29 = 512
  2. Hosts? 27 – 2 = 126

Vergeet niet dat de volgende optie het 4de octet ook meegerekend moet worden:

Aantal subnets 128 = 1000 0000 21 = 2, 256 – 128 = 128; 0, 128

  1. Te gebruiken subnets? 256 – 255 = 1; 0.0, 0.128, 1.0, 1.128.2.0, 2.128, t/m 255.128
  2. Broadcast adres voor elk subnet? Zie tabel
  3. Te gebruiken hosts? Zie tabel
Subnets 0.0 0.128 2.0 2.128 …… 255.0 255.128
Eerste host 0.1 0.129 2.1 2.129 255.1 255.129
Laatste host 0.126 1.254 2.126 2.254 255.126 255.254
Broadcast 0.127 1.255 2.127 2.255 255.127 255.255

Volgende voorbeeld van een /26 netwerk

Netwerk adres: 172.16.10.0

Subnet mask: 255.255.255.192

  1. Aantal Subnets? 192 = 1111 1111. 1100 0000 210 = 1024
  2. Hosts? 26 – 2 = 62

Vergeet niet dat de volgende optie het 4de octet ook meegerekend moet worden:

Aantal subnets 192 = 1100 0000 22 = 4, 256 – 192 = 64; 0, 64, 128, 192

  1. Te gebruiken subnets? 256 – 255 = 1; 0.0, 0.64, 0.128, 0.192. 1.0, 1.64, 1.128, t/m 255.192
  2. Broadcast adres voor elk subnet? Zie tabel
  3. Te gebruiken hosts? Zie tabel
Subnets 0.0 0.64 0.128 0.192 1.0 …… 255.128 255.192
Eerste host 0.1 0.65 0.129 0.193 255.1 255.129
Laatste host 0.62 0.254 0.190 0.254 255.126 255.254
Broadcast 0.63 0.127 0.191 0.255 255.127 255.255

Volgende voorbeeld van een /27 netwerk

Netwerk adres: 172.16.10.0

Subnet mask: 255.255.255.224

  1. Aantal Subnets? 255 = 1111 1111. 1110 0000 211 = 2048
  2. Hosts? 25 – 2 = 30

Vergeet niet dat de volgende optie het 4de octet ook meegerekend moet worden:

Aantal subnets 224 = 1110 0000 23 = 8, 256 – 224 = 32; 0, 32, 64, 96, 128, 160, 192, 224

  1. Te gebruiken subnets? 256 – 255 = 1; 0.0, 0.32, 0.64, … 1.0, 1.32 t/m 255.224
  2. Broadcast adres voor elk subnet? Zie tabel
  3. Te gebruiken hosts? Zie tabel
Subnets 0.0 0.32 0.64 0.96 1.0 1.32 255.192 255.224
Eerste host 0.1 0.33 0.65 …. 1.1 …. 255.193 255.225
Laatste host 0.32 0.62 0.94 …. ….. 255.222 255.254
Broadcast 0.31 0.63 0.95 ….. 1.31 …… 255.223 255.255

 

Het is handig de verschillende Classes en /notaties eens goed voor jezelf te hebben uitgewerkt want hierdoor leer je patronen herkennen en bit notaties uit je hoofd te kennen.

De volgende voorbeelden zijn om snel te berekenen of een IP address juist is en wat het bijbehorende subnet en broadcast is:

Wat is het subnet en broadcast adres van 172.16.10.33 255.255.225.224 /27:

Het 4de octet is hier het interessants om te onderzoeken: 256 – 224 = 32; 10.0, 10.32, 10.64 … enz. maar niet meer van belang omdat 33 tussen 10.32 en 10.64 inzit.

Subnet is dus 172.16.10.32 en broadcast 172.16.10.63

Deze was makkelijk maar de volgende voorbeelden zijn moeilijker, de 4de octets van het submask is 0 dus wordt er altijd gestart met subnet  0 t/m broadcast 255

Wat is het subnet en broadcast adres van 172.16.66.10 255.255.192.0 /18:

Het 3de octet is hier het interessants om te onderzoeken: 256 – 192 = 64; 0, 64, 128 … enz. maar niet meer van belang omdat 66 tussen subnet 64.0 en 128.0 inzit.

Subnet is dus 172.16.66.64.0 en broadcast 172.16.127.255

 

Wat is het subnet en broadcast adres van 172.16.50.10 255.255.224.0 /19:

Het 3de octet is hier het interessants om te onderzoeken: 256 – 224 = 32; 0, 32, 64 … enz. maar niet meer van belang omdat 50 tussen subnet 32.0 en 64.0 inzit.

Subnet is dus 172.16.32.0 en broadcast 172.16.63.255

Wat is het subnet en broadcast adres van 172.16.46.255 255.255.240.0 /20:

Het 3de octet is hier het interessants om te onderzoeken: 256 – 240 = 16; 0, 16, 32, 48 … enz. maar niet meer van belang omdat 46 tussen subnet 32.0 en 48.0 inzit.

Subnet is dus 172.16.32.0 en broadcast 172.16.47.255

Stel dat gevraagd zou worden of 172.16.46.255 een valide adres zou zijn dan is dit ja:

Subnets 32.0 48.0 64.0
Eerste host 32.1 48.1
Laatste host 47.254 63.254
Broadcast 47.255 63.255

Van het berekenen van Class A situaties worden later nog een aantal voorbeelden van uitgewerkt, het werkt hetzelfde als het gaat om de getallen, elk octet is 8 bits en dus:

0= start subnet, dan 128, 192, 224, 240, 248, 252, 254, of de 255 wat of een broadcast is of een 8 bits subnet (/16 voor een A class of /24 voor een B class).