Doelstellingen

Onderstaande doelstellingen komen in meer of mindere mate aan bod. Ze komen uit het leerplan Toegepaste Informatica van de richting informaticabeheer[1]. De cijfers verwijzen naar dit leerplan. De cursieve doelstellingen zijn praktijkoefeningen die aansluiten bij de theorie, maar die in dit Wikibook niet behandeld worden.

  • 3.1.9 De functie van een communicatieprotocol toelichten.
  • 3.1.10 Een actueel communicatieprotocol toelichten.
  • 3.1.11 De noodzaak van adressering en de structuur van sommige adrestypes toelichten, onder meer MAC en IP.
  • 3.1.12 De mogelijke technieken van adressering in een actuele netwerkarchitectuur toelichten.
  • 3.1.13 De begrippen subnet en subnetmasker, en de functie ervan toelichten.
  • 3.1.16 Het begrip routing toelichten.
  • 3.5.1 De gevolgen van een slecht beveiligd netwerk toelichten.
  • 3.3.4 Werking van DNS toelichten en instellen.
  • 3.3.5 Werking van DHCP toelichten en instellen.

Voor de opbouw van het onderdeel netwerkprotocollen is gekozen voor het TCP/IP netwerklagenmodel. Dit netwerklagenmodel wordt ook gebruikt bij Wireshark, een 'packet sniffer' en 'protocol analyzer' om zo de data in een netwerk op te vangen en te analyseren. Zo bekomen we onderstaande opbouw.

Gezien het hier gaat om protocollen om te kunnen communiceren zal een 'adres' voor de verzender en de ontvanger belangrijk zijn. Te vergelijken met huizen, die worden geadresseerd met straatnaam, busnummer, postcode, gemeente en land. Bij het TCP/IP-model blijken er zelfs twee nodig te zijn: MAC en IP. Er wordt aangeraden om het Wikibook van talstelsels te bekijken om zo alles beter te begrijpen.

Linklaag, met MAC

Een MAC-adres (ook wel hardware-adres genoemd) is een uniek identificatienummer dat aan een apparaat in een ethernet-netwerk is toegekend. Dankzij dit adres kunnen apparaten met elkaar communiceren. Vrijwel ieder netwerkapparaat heeft een vast, door de fabrikant bepaald uniek MAC-adres.

Heeft een laptop een mogelijkheid voor vast internet en voor draadloos internet, dan zal die laptop twee MAC-adressen hebben. MAC-adressen zijn alleen lokaal relevant, zodra een pakket een router passeert wordt zowel het MAC-adres van de bron, als van de bestemming aangepast in het ethernetframe.

Notatie

Het MAC-adres wordt meestal in hexadecimale vorm aangeduid, door zes groepen van twee hexadecimale cijfers. Bv.:

00:24:1d:c1:71:e6

Je merkt dat er 281.474.976.710.656 (248=1612) unieke mogelijkheden zijn.[2] De eerste drie groepen van een MAC-adres worden toegewezen aan een fabrikant.[3] De fabrikanten moet er dan voor zorgen dat elk adres maar eenmaal wordt gebruikt. Bij bovenstaand voorbeeld verwijst het gedeelte 00:24:1d altijd naar GigaByte als fabrikant.

Met een programma zoals Wireshark kan je het MAC-adres van ontvanger (00 1b bf 89 a3 50) en verzender (00 24 1d c1 71 e6) goed "zien zitten" in het ethernetframe[4]:

0000 00 1b bf 89 a3 50|00 24 1d c1 71 e6 08 00 45 00 
0010 04 30 5c bd 40 00 40 06 e7 1e c0 a8 01 02 4a 7d 
0020 e6 c4 b4 c5 00 50 7d 1c 56 57 19 1d 1d 1e ...

Gebruik

Het MAC-adres wordt op een netwerk oa. gebruikt bij een switch, die op basis van dit adres beslist waar een pakket heen moet.[5] In het begin kent de switch het netwerk niet en zal hij pakketjes moeten doorsturen naar al zijn poorten. Stap-voor-stap kan hij een tabel opbouwen, zodat hij weet welke MAC-adressen op welke poorten zitten.[6]

De vaste koppeling van een MAC-adres aan hardware wordt soms in een draadloos netwerk gebruikt om de authenticiteit van gebruikers te controleren. Maar door de mogelijkheid van nabootsen (MAC spoofing) is dit geen serieuze oplossing voor de beveiliging. Het kan wel helpen om via het MAC-adres een gestolen computer te traceren.[7] Die vaste koppeling tussen netwerk en hardware komt ook de privacy niet ten goede: zo zal je smartphone vaak het MAC-adres uitzenden, zelfs al ben je niet verbonden met een netwerk. Er bestaan mogelijkheden om dit op een andere manier te doen.[8]

Broadcast

Wil je alle hosts in een netwerk kunnen bereiken, dan heb je nood aan een broadcast (bv. in het geval van DHCP). Hiervoor worden alle bits in het MAC-adres op 1 gezet, of dus op f in hexadecimale vorm. Een switch die zo'n frame ontvangt, zal dus dit frame op al zijn poorten doorsturen.

0000 ff ff ff ff ff ff 08 00 27 75 b0 77 08 00 45 10 
0010 01 48 00 00 00 00 80 11 39 96 00 00 00 00 ff ff
0020 ff ff 00 44 00 43 01 34 86 32 01 01 06 00 ...

Internetlaag

Het bekendste protocol uit de internetlaag is het Internetprotocol (IP). Dit protocol is verantwoordelijk voor het adresseren van hosts en voor het routeren van datagrammen (pakketten) van een bronhost naar een doelhost. Een host (computer, router, IP-cam,...) die in zo'n netwerk voorkomt, wordt geïdentificeerd aan de hand van een IP-nummer.

IPv4

Notatie

In onze maatschappij kan je voor jouw woning niet zomaar je eigen straat en huisnummer kiezen. Al snel zou dit chaos zijn en zou de postbode met de handen in het haar zitten. Gelukkig is dat beter geregeld: ieder huis krijgt een unieke combinatie van straat, straatnummer, gemeente en land. Zo ook op het internet.

Een IPv4-adres wordt bijna altijd aangegeven als een groep van 4 decimale getallen, gescheiden door een punt, bv.:

81.241.89.194
74.125.230.196
192.168.2.1

Je zou dan vermoeden dat 301.140.45.13 ook een geldig IP zal zijn, wat niet het geval is. Dit komt omdat per getal slechts 8 bits gebruikt worden (cfr. Wikibook "Talstelsels in de informatica"). Het grootst mogelijke getal dat daarmee kan worden gemaakt is 28-1=255. Het grootst mogelijke IP-adres is dus (in theorie) 255.255.255.255.

Een IPv4-adres heeft dus als bitruimte 32 bits, waarmee 232 ≈ 4 miljard adressen kunnen worden toegewezen. Dat was ooit superveel, maar men zag ook de groei van het aantal hosts. En per bewoner op de aarde heb je eigenlijk minder dan 1 IPv4-adres (de wereldbevolking telt bijna 8 miljard mensen). De bitruimte uitbreiden (IPv6, zie verder) lijkt dan eenvoudig, maar is het helemaal niet: alle apparatuur moet hier mee overweg kunnen. Alle oude apparatuur vervangen is op korte termijn niet haalbaar. In afwachting van een volledige IPv6-uitrol bedacht men andere technieken zoals publiek/privaat en NAT (zie verder).

Begin 2011 heeft de Internet Assigned Numbers Authority (IANA) trouwens de laatste IPv4-adresblokken verdeeld over de regionale internetregistries[9], waarvan RIPE NCC (voor Europa, Rusland en West-Azië) eind 2019 meldde dat het laatste deel ervan is uitgedeeld[10].

Data wordt in een netwerk verdeeld in stukjes, die men ethernetframes noemt. Daar een router moet kunnen weten waar een frame naartoe moet, moet er een IP-adres zijn van de ontvanger, maar ook van de verzender. Met een programma zoals Wireshark kan je deze frames onderzoeken en zo zie je hieronder een frame van 192.168.1.2 naar 74.125.230.196. Hexadecimaal wordt dit respectievelijk 0xc0a80102 en 0x4a7de6c4. De inkapseling heeft gezorgd voor een header, waardoor het duidelijk is dat het om IPv4 gaat. Dat zie je bij 08 00.

0000 00 1b bf 89 a3 50 00 24 1d c1 71 e6 08 00 45 00 
0010 04 30 5c bd 40 00 40 06 e7 1e c0 a8 01 02|4a 7d 
0020 e6 c4 b4 c5 00 50 7d 1c 56 57 19 1d 1d 1e ...

In een firewall kan een IP-adres gebruikt worden om communicatie van en/of naar bepaalde hosts te blokkeren.

Publiek of privaat

Om het tekort aan IPv4-adressen op te lossen heeft men vastgelegd dat bepaalde IP-adressen meerdere keren gebruikt kunnen worden, zolang ze maar uniek zijn binnen het eigen (LAN-)netwerk:

range 192.168.0.0 - 192.168.255.255, bv. 192.168.0.101 ; 192.168.0.254 ; 192.168.5.2
range  172.16.0.0 -  172.31.255.255, bv.    172.16.0.1 ;    172.16.0.2 ;  172.27.1.1
range    10.0.0.0 -  10.255.255.255, bv.      10.0.0.1 ;      10.0.0.3 ;    10.1.0.3

Deze adressen worden private IP adressen genoemd. Deze worden heel vaak gebruikt in LANs bij je thuis, op het kantoor of in bedrijven. Binnen je eigen netwerk mag bv. 192.168.0.101 maar één keer voorkomen, maar bij je buur of je concurrent mag 192.168.0.101 opnieuw gebruikt worden.

Als je ook communicatie met het Internet wil, kan je hiervoor geen private adressen gebruiken: ze zijn niet noodzakelijk uniek op de wereld. Hiervoor heb je een abonnement met een internet service provider (ISP) nodig. Deze geeft een IP-adres aan jouw router, dat voor de rest van de wereld zichtbaar én uniek is. Men heeft het over een publiek IP-adres.

Ook een ISP kan niet zomaar een IP-adres kiezen: het beheer van alle publieke IP adressen wordt uitgevoerd door de ICANN. Een ISP krijgt dan een "range" van IP-adressen, waaruit zij vrij kunnen kiezen. RIPE biedt op hun site de mogelijkheid om via een whois-aanvraag te weten komen welke range van IP-adressen een ISP heeft.[11]

De aandachtige lezer zal opmerken dat er wel nog een koppeling moet gebeuren tussen publiek en privaat IP-adres: dat wordt opgelost door NAT.

NAT

Stel dat je vanuit jouw LAN wilt surfen naar wikibooks.org, waarvoor de pc een HTTP-aanvraag doet aan 91.198.174.192. Hij geeft ook zijn eigen IP-adres 192.168.1.1 mee, omdat hij een HTTP-antwoord wil terugkrijgen, nl. de webpagina. Het gele bolletje stelt het pakketje voor dat zich doorheen het netwerk beweegt:

Deze HTTP-aanvraag komt toe bij de webserver van wikibooks.org. Alleen weet hij niet naar waar hij het HTTP-antwoord moet terugsturen. Het IP-adres 192.168.1.1 is namelijk een privaat IP-adres, dat énkel uniek moet zijn binnen één netwerk, maar niet over heel de wereld. Het is dus duidelijk dat dit niet zal werken.

Een privaat IP-adres is dus niet routeerbaar over het internet, maar van de ISP heeft router RA wel een publiek IP-adres (bv. 91.179.77.105) gekregen, wél uniek over heel de wereld.

De router RA krijgt een pakketje met als source IP-adres 192.168.1.1, maar hij zal dit wijzigen naar 91.198.174.192, voordat hij het op het Internet zet. Dit principe noemen we network address translation, kortweg NAT. Hierdoor kan wikibooks.org de webpagina terugsturen naar de publieke interface van de router, nl. 91.179.77.105. Belangrijk is dat de router een NAT-tabel bijhoudt, omdat hij moet onthouden wie dit oorspronkelijk had aangevraagd in het LAN-netwerk van A.

Het voordeel van NAT is dat het interne LAN-netwerk niet zomaar zichtbaar is voor de buitenwereld. Verschillende methoden[12] laten echter zien dat het gros van de NAT-methoden te omzeilen valt. Bovendien kan je met een goed ingestelde firewall op de router een gelijkaardige veiligheidssituatie zoals bij NAT bekomen.

NAT lost dus het tekort aan IPv4-adressen op, omdat zo meerdere nodes samen één IPv4-adres kunnen delen. Deze methode kan echter voor problemen zorgen. Stel bv. dat de pc A een webserver heeft draaien en dat pc B deze wil kunnen bereiken. Naar http://192.168.1.1:80 kan pc B niet surfen, want dat is zijn eigen IP-adres, terwijl hij de webserver op pc A wil bereiken. Het wijzigen van het IP-adres van A haalt niets uit, want het zal een privaat IP-adres blijven en dus niet vindbaar (=routeerbaar) via het Internet.

De gebruiker kan in router RA wel portforwarding instellen. Bijvoorbeeld: router RA, als je op je publieke interface een aanvraag krijgt op poort 3005, dan wil ik dat je dit doorstuurt naar 192.168.1.1 op poort 80. Als pc B dan surft naar http://91.179.77.105:3005, dan zal hij uiteindelijk terechtkomen op pc A, op poort 80. Deze portforwarding moet ingesteld worden in router RA en zou je schematisch als volgt kunnen weergeven:

LAN-kant routerWAN-kant router
IPPoortIPPoort
192.168.1.18091.179.77.1053005

Een andere mogelijkheid bij zo'n peer-to-peer situatie en private adressen is om gebruik te maken van een derde, niet ge-NAT-te client die als doorgeefstation dienst doet (zoals bij Skype).

Statisch of dynamisch

Het IP-adres van een computer kan manueel worden ingesteld op de computer, het is dan steeds hetzelfde (statisch). Voor servers en routers is een vast IP handig, omdat deze dan altijd op dat adres te bereiken zijn. Zowel door rechtstreeks het IP in te typen, als bij de koppeling domeinnaam-IP (DNS). Bedrijven of scholen vragen vaak ook een statisch IP aan bij hun ISP.

Op werkstations statische IP's gebruiken is moeilijker, omdat je zelf een goed overzicht moet behouden. Je mag een IP-adres namelijk maar één keer toewijzen. Bij het wegnemen of bijzetten van werkstations wordt dit snel onbeheerbaar. Vandaar wordt er bij werkstations bijna altijd gebruik gemaakt van DHCP, waardoor automatisch een IP wordt toegewezen. Men spreekt van een dynamisch IP. Het is dan wel niet zeker dat je steeds hetzelfde IP-adres krijgt. Bij het abonnement van een particulier zal je standaard ook een dynamisch IP van je ISP krijgen.

Netwerk- en hostdeel

IP-pakketten worden verstuurd door computers, servers,... Het is de verantwoordelijkheid van een router om deze pakketten op de juiste bestemming te krijgen. Stel bv. dat de webserver links een back-up wil bewaren, maar dat in een ander land wil doen, zodat ze bij een ramp aan hun data kunnen. Dat zou de server rechts kunnen zijn, waartussen zeker enkele routers zullen zitten. Een router scheidt minstens twee netwerken, maar het kunnen er ook meer zijn. Zo zijn de routers links en rechts verbonden met 4 netwerken en de middelste met 3.

De vraag is via welke interface de router links een binnenkomend pakket verder zal sturen, zodat deze kan worden gerouteerd. Wij zien gewoon dat het via zijn rechtse interface is, maar een router heeft zo'n helikopterzicht niet. De routeringstabel kan niet álle mogelijke bestemmingen (=IPv4-adressen) bevatten van de volledige wereld. Alleen al het opsommen van alle IPv4-adressen zou een bestand geven van 16 GiB (=232mogelijkheden * 4B/230=24), wat dus nog geen routeringsinformatie zou bevatten. Laat staan dat je in dat bestand een bestemming moet zoeken of dat je een bestemming moet aanpassen.

Een routeringstabel bevat dus niet (uitsluitend) afzonderlijke IP-adressen, maar er wordt gewerkt met afzonderlijke netwerken, subnetten genoemd. Hiervoor bestaat een IP-adres uit een netwerk- en een hostdeel. Het netwerkdeel geeft aan welk netwerk bedoeld is en het hostdeel geeft een bepaalde host (pc, router,...) binnen dat netwerk aan. Om te weten waar de grens ligt tussen de twee delen, zal een IP-adres vergezeld zijn van een subnetmasker. Een kortere notatie is de CIDR-notatie.

Subnetmasker

Dankzij het subnetmasker kan je besluiten wat van het IP-adres behoort tot het netwerkdeel en wat tot het hostdeel. Zo kan je ook besluiten of hosts tot elkaars netwerk kunnen behoren.

PCIPSubnetmaskerNetwerkdeelHostdeel
A 192.168.1.104 255.255.255.0 192.168.1 .104
B 192.168.2.104 255.255.255.0 192.168.2 .104

Conclusie: het netwerkdeel van pc A en B is niet gelijk en dus behoren ze niet tot elkaars netwerk.

PCIPSubnetmaskerNetwerkdeelHostdeel
C 192.168.1.104 255.255.0.0 192.168 .1.104
D 192.168.2.104 255.255.0.0 192.168 .2.104

Conclusie: het netwerkdeel van pc C en D is gelijk en dus behoren ze tot elkaars netwerk.

Nu blijkt dat de situatie van pc A en B toch anders is dan de situatie bij pc C en D, terwijl het nochtans gaat om dezelfde IP-adressen (maar een ander subnetmasker).

CIDR-notatie

In plaats van een subnetmasker wordt vaak ook aangegeven hoeveel bits gebruikt worden voor het netwerkdeel. Dit is de CIDR-notatie, die IP en subnetmasker in 1 notatie weergeeft:

PCIPSubnetmasker#netwerk- en hostbitsCIDR-notatie
A 192.168.1.104 255.255.255.0 24+8=32 192.168.1.104/24
B 192.168.2.104 255.255.255.0 24+8=32 192.168.2.104/24
C 192.168.1.104 255.255.0.0 16+16=32 192.168.1.104/16
D 192.168.2.104 255.255.0.0 16+16=32 192.168.2.104/16

In plaats van de mogelijke private IP-adressen op te sommen met de range, kunnen ze heel compact genoteerd worden met de CIDR-notatie:

192.168.0.0/16
172.16.0.0/12
10.0.0.0/8

Als je een privaat netwerk opbouwt hoef je niet te kiezen voor de volledige range: bv. een netwerk 10.1.1.0/24 is ook mogelijk. Ieder IP-adres uit dit netwerk zal dan beginnen met 10.1.1.

Netwerkbits (ter info)

Het aantal netwerkbits hoeft dus niet noodzakelijk een veelvoud te zijn van 8, zie bv. 172.16.0.0/12. Het subnetmasker zal altijd beginnen met allemaal 1'tjes, gevolgd door allemaal 0'en. Bij 255.255.0.0 is dat geen probleem, want het decimale getal 255 is 11111111 binair. Ook het subnetmasker 11111111.11110000.00000000.00000000 is geldig, wat decimaal 255.240.0.0 zou zijn. Het subnetmasker 255.200.0.0 zou niet kunnen, want dit is 11111111.11001000.00000000.00000000 binair.

Zoals je merkt is het controleren of pc's in hetzelfde netwerk liggen een stuk moeilijker als het aantal netwerkbits geen veelvoud is van 8. Dan moet er nl. op binair niveau gekeken worden.

Netwerk- en broadcastadres

Op basis van de CIDR-notatie (of IP+subnetmasker) kan je het volgende bepalen:

PCCIDR-notatieNetwerkadresBroadcastadres#hosts
A 192.168.1.104/24 192.168.1.0 192.168.1.255 232-24-2=28-2=254
B 192.168.2.104/24 192.168.2.0 192.168.2.255 232-24-2=28-2=254
C 192.168.1.104/16 192.168.0.0 192.168.255.255 232-16-2=216-2=65534
D 192.168.2.104/16 192.168.0.0 192.168.255.255 232-16-2=216-2=65534
  • Het netwerkadres is het laagste adres uit de beschikbare range (dus binair is iedere hostbit een 0) en stelt a.h.w. 'het netwerk' voor. In een firewall kan een netwerkadres in combinatie met een subnetmasker gebruikt worden om communicatie van en/of naar netwerken te blokkeren. Daar het netwerkadres dus een volledig netwerk voorstelt, mag het nooit gebruikt worden als IP-adres voor één host.
  • Het broadcastadres is het hoogste adres uit de beschikbare ranges is (dus binair is iedere hostbit een 1) en stelt a.h.w. 'communicatie naar het volledige netwerk' voor. Pakketten die het broadcastadres als ontvanger hebben, komen dus op alle hosts van dat netwerk aan. Vandaar ook logisch dat je dit adres niet mag toekennen als IP-adres van een host, net omdat het gaat om broadcast en het dus geen unicast zou kunnen zijn.
  • Bij de berekening van het aantal hosts moet je dus altijd '-2' doen, omdat je een netwerk-of broadcastadres nooit mag toekennen als IP-adres voor een host.
  • Merk op dat het logisch is dat je voor pc C en D hetzelfde netwerk- en broadcastadres hebt, omdat ze in hetzelfde netwerk liggen.

Een concreet voorbeeld van broadcast is wanneer een host een IP-adres aanvraagt via DHCP. Alleen weet hij op dat moment nog niet in welk netwerk hij zit. In dat geval wordt 255.255.255.255 (of ff.ff.ff.ff hexadecimaal) als broadcastadres gebruikt. Merk op dat het MAC-adres van de verzender ook uit f'en bestaat, zodat de switch weet dat hij onderstaand pakket naar iedere host mag doorsturen.

0000 ff ff ff ff ff ff 08 00 27 75 b0 77 08 00 45 10 
0010 01 48 00 00 00 00 80 11 39 96 00 00 00 00 ff ff 
0020 ff ff 00 44 00 43 01 34 86 32 01 01 06 00 ...

Loopbackadres

Het netwerk 127.0.0.0/8 is het loopbacknetwerk. De meeste toepassingen gebruiken van dit netwerk enkel het adres 127.0.0.1. Dit adres is het loopbackadres en staat voor de eigen computer (men heeft het over de localhost). Dit kan bijvoorbeeld gebruikt worden om serverdiensten te benaderen die op de eigen computer staan. Als je bv. een eigen webserver draait om webtoepassingen lokaal uit te testen, dan kan je surfen naar je eigen website via http://127.0.0.1. Je zou ook je eigen IP-adres kunnen gebruiken, maar dan moet je dit eerst opzoeken en bovendien kan het veranderen. Vaak werkt ook http://localhost, wat achter de schermen vertaald wordt naar http://127.0.0.1.

Stel dat je voor enkele computers snel een netwerk wil opzetten en je hebt enkel een switch (bv. op een LAN-party). Het manueel toekennen van statische, unieke IP-adressen en een bijhorend subnetmasker kost dan behoorlijk wat tijd. En het opzetten van een DHCP-server op één van de computers kost ook tijd. Gelukkig bestaat er het idee van een link-local adres (Microsoft heeft het over APIPA = Automatic Private IP Addressing). Dit idee is een onderdeel van Zeroconf of Zero Configuration Networking, nl. een reeks technieken die toelaat een bruikbaar IP-netwerk te maken zonder bijkomende configuratie of speciale servers.

Om duidelijk te maken dat het om een link-local adres gaat, wordt een apart adresblok gebruikt: 169.254.0.0/16. Het besturingssysteem kiest uit dit blok een willekeurig IP-adres, dat met grote kans uniek is. Opgelet: je kan dit maar in een beperkt netwerk gebruiken, bv. in de context van een LAN. Bijhorende pakketten worden dan in principe door een router ook niet doorgestuurd.

DHCP ingeschakeld . . . . . . . . : ja
Autom. configuratie ingeschakeld  : ja
IPv4-adres. . . . . . . . . . . . : 169.254.25.130(voorkeur)
Subnetmasker. . . . . . . . . . . : 255.255.0.0
Standaardgateway. . . . . . . . . : 
DNS-servers. . . . . . . . . . .  : 

In sommige situaties kan een Windows-client de DHCP-server (bv. van een 10.0.0.0/24 netwerk) niet bereiken en hij zal zich in dit geval een link-local IP-adres toekennen. In de achtergrond blijft Windows zoeken naar een DHCP-server. Dat betekent echter niet dat hij "per definitie" kan communiceren met andere hosts in het netwerk. De netwerken 169.254.0.0/16 en 10.0.0.0/24 zijn immers twee verschillende netwerken!

Microsoft Fixes Windows 10 Issue That Knocked People off the Internet

Microsoft had een update uitgerold die de CDPSVC service liet crashen op Windows 10, waardoor hosts geen IP-adres meer konden ontvangen via DHCP. Hierop kende Windows een link-local IP-adres toe. Pas een paar dagen later kwam een oplossing voor dit probleem. (en) Microsoft Fixes Windows 10 Issue That Knocked People off the Internet. bleepingcomputer.com (2016-12-14).

IPv6

Internet Protocol versie 6 (IPv6) is versie 6 van het internetprotocol voor het toewijzen van IP-adressen. Het is de opvolger van Internet Protocol versie 4 (IPv4) en is de tweede versie van het internetprotocol die in gebruik is genomen. De tussenliggende versie IPv5 was een experimentele aanvulling op IPv4, maar deze werd nooit geïmplementeerd.

Notatie

IPv6-adressen zijn 128 bits lang en worden normaal geschreven als 8 groepen van 4 hexadecimale cijfers.

Een voorbeeld van een geldig IPv6-adres:

3ffe:6a88:85a3:08d3:1319:8a2e:0370:7344

Bij de cli-commando's ipconfig of ifconfig wordt gebruik gemaakt van shortcuts om een IPv6-adres zo kort als mogelijk te noteren. We overlopen de mogelijkheden.

Als een groep van 4 cijfers 0000 is, dan mag dit helemaal worden weggelaten.

3ffe:6a88:85a3:0000:1319:8a2e:0370:7344
3ffe:6a88:85a3::1319:8a2e:0370:7344

Wanneer er meer dan twee opeenvolgende groepen gereduceerd zijn tot dubbele punten, dan mogen ook die weer tot twee dubbele punten gereduceerd worden:

2001:2353:::::1428:57ab
2001:2353::1428:57ab

Opgelet, het mag enkel bij opeenvolgende groepen van nullen, omdat anders meerdere mogelijkheden ontstaan voor de posities van 0000.

2001::25de::cade is geen geldig IPv6-adres, want is het
2001:0000:25de:0000:0000:0000:0000:cade of 
2001:0000:0000:25de:0000:0000:0000:cade of nog iets anders??

Ook hoeven nullen vooraan in een getal (voorloopnullen) niet geschreven te worden:

2001:2353:02de::0e13
2001:2353:2de::e13

Opgelet! In de weergave mag dan gebruik gemaakt worden van shortcuts, achter de schermen blijft het een adres bestaande uit 128 bits! Dit kan je bv. bekijken met Wireshark. Hieronder is het bronIPv6-adres fe80::1 = fe 80 00 00 00 00 00 00 00 00 00 00 00 00 00 01 en het bestemmingsIPv6-adres ff02::1 = ff 02 00 00 00 00 00 00 00 00 00 00 00 00 00 01 zichtbaar. De inkapseling heeft gezorgd voor een header, waardoor het duidelijk is dat het om IPv6 gaat. Dat zie je bij 86 dd (bij IPv4 was dit 08 00).

0000   33 33 00 00 00 01 d4 21 22 76 5b 78 86 dd 60 00
0010   00 00 00 20 3a ff fe 80 00 00 00 00 00 00 00 00
0020   00 00 00 00 00 01|ff 02 00 00 00 00 00 00 00 00
0030   00 00 00 00 00 01 88 00 87 8b a0 00 00 00 fe 80
0040   00 00 00 00 00 00 00 00 00 00 00 00 00 01 02 01
0050   d4 21 22 76 5b 78

Verbeteringen

In de informaticawereld betekent een nieuwe versie vaak hogere snelheden. Bij IPv6 t.o.v. IPv4 is dat niet per definitie het geval! Meer zelfs: doordat de IP-adressen langer zijn, zijn ze in theorie moeilijker te behandelen. Bovendien zitten we de komende jaren met een overgangsfase, waar zowel IPv4, als IPv6 nodig is. Een complexe situatie. Er moeten dus wel andere redenen zijn waarom IPv6 is ontwikkeld.

  • Groter adresbereik. Een IPv6-adres is 128 bits lang; het aantal mogelijke adressen is dus 2128 ≈ 3,4 × 1038. IPv6 heeft dus een bijna onuitputtelijke voorraad adressen: voor elke aardbewoner zijn er ongeveer 50 quadriljard beschikbaar. Laat je dan ook niet misleiden dat de adresruimte "maar" vier keer zo groot is, want het aantal adressen is daardoor 296 keer zo groot, nl. 2128-32!
  • Betere autoconfiguratie. IP-adressen zijn belangrijk, omdat ze communiceren mogelijk maken. Hoe verkrijg je nu een IPv6-adres? Er zijn twee mogelijkheden:
    • Stateful autoconfiguratie, nl. via DHCPv6, wat gelijkaardig werkt zoals DHCP bij IPv4. Er is dus nog steeds nood aan een DHCP-server en beide moeten op de hoogte zijn van hun status m.b.t. het verkregen/uitgedeelde IP (vandaar stateful).
    • Stateless autoconfiguratie, waarbij de host een IPv6 adres zelfstandig "kiest", zodat het naar grote waarschijnlijkheid uniek zal zijn. Het wordt dan gebaseerd op het netwerkprefix en vaak ook het MAC-adres. Hier valt het opzetten en configureren van een DHCP-server/service dus weg. Bovendien zijn er dan geen DHCP-broadcasts nodig, wat bij grote netwerken doorweegt op het netwerk. Stel bv. dat iedere host in een netwerk 1 broadcast stuurt, dan is dat bij 10 hosts beperkt tot 90 berichtjes, maar bij 100 hosts al 9900 (nl. n(n-1)=100*99))!
  • Betere routering. Door de enorme hoeveelheid aan IPv6-adressen kan men er een stuk kwistiger mee omspringen. Op hoog niveau wordt dan bv. een onderscheid gemaakt tussen netwerknummers voor de verschillende continenten. Binnen de continenten kunnen internet exchanges en internetaanbieders hiërarchische nummerplannen opstellen. Deze hiërarchie kent twee voordelen:
    • Routeringstabellen in routers worden minder complex. Alhoewel IPv6-adressen langer zijn (en dus "moeilijker" te behandelen) kan een minder complexe routeringstabel zorgen voor toegenomen snelheid.
    • Applicaties kunnen, aan de hand van het IP-nummer, bepalen welke nodes netwerktechnisch dichterbij staan. Zo kunnen applicaties als BitTorrent distributiealgoritmen ontwikkelen die efficiënter netwerkverkeer opleveren doordat bij voorkeur peers worden gekozen die dichter bij elkaar staan.
  • NAT wordt overbodig. Bij IPv6 is NAT dus niet meer nodig, daar dit was ontwikkeld om meerdere nodes (met private IP-adressen) samen één (publiek) IPv4-adres te laten delen. Nu kan iedere host zijn eigen uniek IPv6-adres krijgen. De (semi-)veiligheid die NAT bracht, moet bij IPv6 wel opgevangen worden door de firewall goed in te stellen! Anders kan je problemen krijgen, zoals enkele Tele2-klanten in 2014 hadden: alle computers in het interne netwerk van sommige klanten waren opeens bereikbaar vanaf de buitenwereld.[13]
  • Gegevensbeveiliging op IP-niveau. IPv6 maakt het mogelijk om gegevens op de internetlaag van beveiliging te voorzien. Deze beveiliging kent twee vormen:
    • Versleuteling (encryptie) van gegevens. Zender en ontvanger kunnen een sleutel afspreken waarmee het gegevenstransport beveiligd wordt. IPv4 kent deze mogelijkheid niet, waardoor veel beveiligingsvarianten boven de IP-laag ontwikkeld zijn, bijvoorbeeld HTTPS of SSH. De versleuteling van IPv6 maakt beveiliging op bovenliggende niveaus overbodig: ieder gegevenstransport op basis van IPv6 kan immers veilig gebeuren.
    • Authenticatie van gegevens. Hierbij kan de zender ieder pakket voorzien van een elektronische waarborg. Andere partijen kunnen de gegevens niet ongemerkt wijzigen, noch zich als de oorspronkelijke afzender voordoen. Hierdoor heeft de ontvanger zekerheid over de herkomst van de ontvangen IP-pakketten.
  • Ondersteuning van mobiele nodes. Bij mobiele toestellen heb je soms een bestaande connectie, waarbij je plots terechtkomt in een ander netwerk. Graag zou je willen dat "lopende" connecties toch kunnen blijven. Bij IPv4 is dit niet zomaar mogelijk, terwijl IPv6 het mogelijk maakt dat een node (tijdelijk) van een ander IP-adres gebruik maakt. De preciezere details vallen buiten het kader van dit Wikibook, maar kunnen op Wikipedia worden nagelezen.

IPv4 vs IPv6 (ter info)

De wijze waarop het protocol werkt, verschilt nauwelijks van de wijze waarop IPv4 werkt. Een van de weinige verschillen is dat in IPv6 een subnet niet langer een netwerkadres en een broadcastadres bevat:

  • het netwerkadres van IPv4 wordt het "subnet-router anycast"-adres bij IPv6;
  • broadcast wordt in IPv6 geïmplementeerd als een speciaal geval van multicast.

Het is niet zo dat we nu van de ene op de andere dag IPv4 kunnen vervangen door IPv6. Eerst was er een periode van het testen van IPv6, om nu beide naast elkaar te laten bestaan, met een gestage groei van IPv6:

  • Op 8 juni 2011 was de wereldtestdag voor IPv6. Een aantal grote bedrijven, zoals Microsoft en Google, bood de websites voor één dag aan over zowel IPv4 als IPv6 om zo de impact hiervan te testen.[14]
  • Op 6 juni 2012 activeerden een aantal Internet Service Providers (ISPs) en bedrijven permanent IPv6.[15] Begin 2014 begon Telenet met de uitrol van IPv6.[16] Dit zorgt ervoor dat de groei van IPv6 gestaag toeneemt, te merken bij bv. de grafieken van de Amsterdam Internet Exchange (AMS-IX)[17], het belangrijkste internetknooppunt in Nederland en bij het gebruik van IPv6 bij Google gebruikers[18].

IP vs MAC

Reden

MAC- en IP-adressen worden dus beide gebruikt om te adresseren, waardoor het misschien lijkt alsof we óf een IP-adres, óf een MAC-adres kunnen gebruiken. We hebben ze echter allebei nodig:

  • Het voordeel van MAC-adressen is dat je ze per definitie al hebt, want ze hangen vast aan de hardware. Enkel MAC-adressen gebruiken is niet handig: zo is er geen netwerk- en hostdeel, wat het moeilijk zou maken deze te gebruiken op het wereldwijde Internet. Een MAC-adres is dan ook enkel “geldig” binnen één netwerk.
  • Het voordeel van IP-adressen is dat je efficiënter netwerken kan indelen: zo vat 10.1.0.0/16 één netwerk samen met meer 65000 hosts! Het nadeel is dat je IP-adressen moet instellen: of statisch, of dynamisch.

ARP

Zowel IP, als MAC zijn dus nodig in een netwerk. Toch betekent dit niet dat we ze automatisch allebei al weten. Stel dat we een webserver in ons LAN-netwerk draaien (bv. als onderdeel van een NAS). Als we deze willen bezoeken zal het IP-adres gebruikt worden (bv. doordat we het rechtstreeks intypen in de adresbalk van de browser of via DNS). Deze aanvraag komt in principe eerst toe bij een switch, die echter enkel MAC-adressen "begrijpt", maar geen IP-adressen. Als een pc wil dat zijn pakketje toekomt bij de ontvanger, zal hij dus eerst het MAC-adres van deze ontvanger moeten achterhalen.

Het Address Resolution Protocol heeft als voornaamste doel het MAC-adres of hardwareadres te achterhalen van een bepaald IP-adres. Dit proces wordt ook wel IP-adresomzetting genoemd. Om het gebruik van broadcasts te verminderen worden eenmaal geleerde netwerkkoppelingen IP-MAC meestal tijdelijk lokaal gecachet.

Een voorbeeld van een ARP-aanvraag:

0000   ff ff ff ff ff ff|08 00 27 75 b0 77|08 06 00 01
0010   08 00 06 04 00 01|08 00 27 75 b0 77|c0 a8 38 65
0020   00 00 00 00 00 00|c0 a8 38 03|00 00 00 00 00 00
0030   00 00 00 00 00 00 00 00 00 00 00 00

De host met MAC-adres 08:00:27:75:b0:77 doet een broadcast (ff:ff:ff:ff:ff:ff) waarbij de vraag wordt gesteld wie het IP-adres 192.168.56.3 (0xc0a83803) heeft. Het antwoord moet gestuurd worden naar het MAC-adres 08:00:27:75:b0:77, op het IP-adres 192.168.56.101 (0xc0a83865). Samengevat: Wie heeft 192.168.56.3? Vertel het aan 08:00:27:75:b0:77 = 192.168.56.101.

Door het versturen van ARP-pakketten met vervalste MAC-adressen (ARP spoofing) is het als hacker mogelijk om pakketjes te ontvangen, die niet voor hem bedoeld zijn (een man-in-the-middle-aanval). Een andere techniek is het versturen van een overvloed aan ARP-pakketten met willekeurige MAC-adressen (MAC flooding). Bij een aantal switches leidt dit ertoe dat ze in een soort van hub-modus veranderen: pakketjes worden dan naar alle poorten verstuurd. Een aanvaller kan vervolgens middels een packet sniffer al het lokale netwerkverkeer aftappen.[19]

Alhoewel ARP hier besproken wordt bij de internetlaag, behoort het strikt gezien tot de linklaag! Een ARP-aanvraag wordt namelijk niet voorbij een router gestuurd, want het is de switch die op basis van de MAC-adressen ARP-aanvragen en ARP-antwoorden bezorgt. Het is in dit geval geplaatst bij de internetlaag, omdat kennis van MAC en IP nodig is om het te begrijpen.

Transportlaag

TCP

TCP is een transportprotocol dat bovenop IP werkt. TCP heeft als kenmerken dat het gegevens in een datastroom kan versturen, waarbij de garantie wordt geleverd dat de gegevens aankomen zoals ze verstuurd werden, en eventuele communicatiefouten (zowel in de gegevens zelf als in de volgorde van de gegevens) kunnen worden opgevangen. TCP gebruikt men dus primair als de overdracht zeker en compleet moet zijn (o.a. bij bestandsoverdracht). Men heeft het over een betrouwbaar protocol.

UDP

Een ander transportprotocol is UDP, wat veel wordt gebruikt bij toepassingen waar het snel overdragen van de gegevens en een korte reactietijd zeer belangrijk is, en het minder erg is dat er gegevens verloren kunnen gaan. Dit is bv. bij telefonie, videoconferencing, DNS of het online spelen van actievolle spellen, zoals first person shooters.

Poorten

Op een host kan meerdere netwerkinformatie op één NIC/IP-adres toekomen. Bv. enerzijds informatie die bedoeld is voor de browser en anderzijds een mail die arriveert in je mailbox in Outlook of Thunderbird. Hoe weet je computer aan welk programma hij dit moet afleveren? Niet alleen aan de client kunnen er meerdere netwerkprogramma's draaien, maar ook één server kan meerdere netwerkdiensten leveren.

Om dit "afleverprobleem" op te lossen, worden netwerkpoorten gebruikt: het is een nummer dat bij het IP-adres hoort. Dit poortnummer bestaat uit 16 bits en dus zijn er 65536 (216) poorten beschikbaar voor TCP en 65536 poorten voor UDP. De bekende serverpoorten lopen van 0 tot 1023, alhoewel sommige poortnummers ook groter kunnen zijn. Enkele voorbeelden van TCP- en UDP-poorten:

poortprotocolomschrijving
20TCPFTP, het datakanaal
21TCPFTP, het controlekanaal
22TCPSSH: Secure Shell of SFTP
53UDP, TCPDNS
67UDPDHCP Server
68UDPDHCP Client
80TCPHTTP
443TCPHTTPS
3389TCPRDP, om een pc op afstand overnemen (remote desktop protocol).

Aan de clientzijde worden ook poortnummers gebruikt om communicatie mogelijk te maken. Een voorbeeld vanuit Wireshark:

0000 00 1b bf 89 a3 50 00 24 1d c1 71 e6 08 00 45 00 
0010 04 30 5c bd 40 00 40 06 e7 1e c0 a8 01 02|4a 7d 
0020 e6 c4|b4 c5|00 50 7d 1c 56 57 19 1d 1d 1e ...

Hieruit kan je enkele zaken afleiden:

  1. Uit de inkapseling blijkt dat TCP wordt gebruikt, omdat 06 in header wordt gebruikt. Bij UDP zou er 11 staan.
  2. Op een client-pc met IP-adres 192.168.1.2 (=0xc0a80102) wordt gesurft met een browser (bv. Firefox of Chrome). Deze client-pc kiest als bronpoort 46277 (=0xb4c5).
  3. We kunnen ervan uitgaan dat het gaat om 'surfen', daar de doelpoort 80 (=0x0050) is. De client gaat ervan uit dat er een webserver (bv. Apache of IIS) luistert op die poort voor binnenkomende aanvragen. Het server IP-adres is 74.125.230.196 (0x4a7de6c4).
  4. Als de webserver een antwoord terugstuurt, zal hij in principe als ontvanger IP-adres 192.168.1.2 gebruiken, met als poort 46277.[20]

Poorten kan je ook zelf kiezen, maar in dat geval moet je bij het programma de poort expliciet opgeven. Zo wordt voor een webconfiguratie van je printer op Linux-systemen (met als achterliggende software CUPS) vaak poort 631 i.p.v. poort 80 gebruikt. Om toegang te krijgen is dan niet http://localhost nodig (die "achter de schermen" poort 80 gebruikt), maar wel http://localhost:631/. Als je zelf poorten kiest, moet je altijd opletten dat er geen conflict is met een ander programma op jouw systeem, dat ook die poort gebruikt.

Poorten kan je in een firewall gebruiken om je netwerk te beveiligen. Als je bij een computer instelt dat poorten 80 en 443 geblokkeerd worden, zal je op deze computer wel kunnen surfen. Je zal dan echter zelf geen webserver kunnen draaien, tenzij je webserver draait op een niet-standaard poort.

Applicatielaag

DNS

Werking DNS

Als mens zijn we niet zo bijzonder goed in cijfers. Zo kennen we maar weinig telefoonnummers van buiten, maar via een naam hebben we de juiste persoon voor ogen. Dan gebruiken we een adresboek om die persoon te contacteren. Bij het internet is het niet anders. We zullen niet surfen naar http://91.198.174.192, maar naar http://nl.wikibooks.org.

In de begindagen van het Internet waren er zo weinig domeinnamen en IP-adressen, dat men al deze koppelingen in een hosts-bestand bijhield. Tot op de dag van vandaag bestaat dit persoonlijk “internettelefoonboek” nog steeds in de meeste besturingssystemen. Vaak heeft het al standaard bepaalde koppelingen (bv. de localhost), maar je kan er koppelingen IP-adres en domeinnaam aan toevoegen. Bij Windows kan je dit vinden bij C:\Windows\System32\drivers\etc\hosts en bij Linux bij /etc/hosts. Een voorbeeld bij Linux:

127.0.0.1	localhost
127.0.1.1	juxta

# The following lines are desirable for IPv6 capable hosts

 ::1 ip6-localhost ip6-loopback

fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Door de groei van het internet bleek al begin de jaren '80 dat zo'n "internettelefoonboek" niet álle domeinnamen kan bevatten. Dus is er een systeem uitgewerkt die een vertaling doet van domeinnamen (bv. nl.wikibooks.org) naar IP-adressen. Dit systeem is DNS[21]. Als we dus surfen naar http://nl.wikibooks.org, dan zal het besturingssysteem achter de schermen en via DNS het bijhorende IP-adres te weten komen (nadat het hosts-bestand is gecontroleerd).

Eén mega-groot, centraal “internettelefoonboek” bestaat niet. Het DNS-systeem is een verspreid, gedecentraliseerd systeem, met verschillende DNS-servers op het internet. In eerste instantie wordt een aanvraag gedaan aan de pc zelf. Als deze het niet weet wordt het gevraagd aan de router. Als deze het vervolgens niet weet is de DNS-server van de ISP aan de beurt, enz. Zo ontstaat een ketting van DNS-aanvragen, totdat het juiste IP-adres dat hoort bij de gevraagde domeinnaam achterhaald kan worden.

Korte storing Googles dns-server leidt tot dip in AMS-IX-verkeer

Dat DNS een belangrijk protocol is bleek toen er op 23 mei 2014 een storing was op Googles dns-server. Daardoor waren heel wat diensten die van deze dns-server gebruikmaakten, onbereikbaar. In de realtimegrafieken van het internetknooppunt AMS-IX is die dip omstreeks 14.00 uur duidelijk zichtbaar.

(nl) Korte storing Googles dns-server leidt tot dip in AMS-IX-verkeer. tweakers.net (2014-05-23).

Domeinnaam-IP

Als je als bedrijf/instelling/persoon een eigen domeinnaam wenst, moet je een registrar contacteren. Dit bedrijf zal de nodige administratie doen, zodat je een domeinnaam kan huren. Dan wordt de koppeling tussen de domeinnaam en het (vaak statisch) IP-adres gelegd.

Vlaming laat Trump "Oilsjters" carnavalsliedje tweeten over Russische prostituees

Domeinnamen kunnen komen te vervallen (bv. omdat de eigenaar deze niet meer wenst of niet betaalt). Op het Internet blijven vele links vaak staan, die dus niet meer zullen werken. Iemand kan deze vrije domeinnaam echter terug aanvragen/huren en kan dus bepaalde links terug laten werken. Deze persoon kan nu volledig kiezen wat die inhoud is, wat totaal iets anders kan zijn dan de oorspronkelijke website. Ethisch hacker Inti De Ceukelaire heeft er zo voor gezorgd dat een link uit een tweet van president Trump verwees naar een Aalsters carnavallied.

(nl) Vlaming laat Trump "Oilsjters" carnavalsliedje tweeten over Russische prostituees. http://datanews.knack.be+(2017-01-23).

DNS blocking

Om binnen bedrijven/scholen/landen bepaalde websites onvindbaar te maken, kan gebruik gemaakt worden van DNS blocking. Zo kan de DNS-server op school bij het surfen naar http://hoeleerikspieken.net weigeren om een IP te geven. Voor de eindgebruiker zal het lijken alsof de website niet bestaat. Als hij thuis zou kijken en de DNS-server van zijn ISP blokkeert deze niet, dan kan hij daar wel gewoon naartoe surfen. Mocht je dan op school rechtstreeks surfen naar het IP-adres van hoeleerikspieken.net, dan is DNS niet nodig en kan zo de bijhorende DNS-blokkade omzeild worden. Bovendien kan je - mits administratorrechten - een andere DNS-server instellen, die die blokkade niet heeft. Het gebruik van énkel DNS blocking is dus geen sluitende manier om toegang tot websites te verbieden.

Turkije blokkeert toegang tot Twitter

Turkije heeft een Twitter-blokkade ingesteld nadat de premier van het land gezegd zou hebben dat hij Twitter zou 'uitroeien'. De blokkade was op bevel van meerdere rechtbanken ingesteld nadat Twitter geweigerd zou hebben bepaalde links te verwijderen. Alle Turkse internetproviders werkten mee aan de blokkade.

De blokkade was relatief eenvoudig te omzeilen: het gaat om een dns-blokkade, dus het instellen van een alternatieve dns-server van bijvoorbeeld Google of OpenDNS is voldoende om de dienst toch te gebruiken. Daarnaast gebruikten Turkse twitteraars vpn-verbindingen om de blokkade te omzeilen. De blokkade van Twitter blijkt zelfs een averechts effect te hebben (het Streisandeffect): het aantal tweets van Turkse gebruikers lag 138 procent hoger dan in dezelfde periode voor de blokkade.

Later was Turkije overgegaan tot het blokkeren van het IP-adres van Twitter. Ondanks de blokkade bleef het mogelijk om via een vpn of Tor de Twitter-site te bezoeken.

(nl) Turkije blokkeert toegang tot Twitter. tweakers.net (2014-03-21). (nl) 'Twitter-gebruik in Turkije neemt toe na blokkade'. tweakers.net (2014-03-21). (nl) 'Turkije blokkeert Twitter op ip-niveau'. tweakers.net (2014-03-23).

DNS spoofing

Bij DNS spoofing worden antwoorden van een DNS-server door een hacker gewijzigd. Stel dat een hacker erin slaagt om bij een DNS-request van http://www.facebook.com niet het echte IP terug te geven, maar een IP van zijn server. Dan kan hij op die server een website draaien die een exacte kopie lijkt van Facebook. De eindgebruiker zal inloggen (in de adresbalk ziet hij namelijk netjes http://www.facebook.com staan), maar zo kan de hacker gemakkelijk het wachtwoord achterhalen. Er bestaan mogelijkheden om DNS veiliger te maken[22], maar dit behandelen valt buiten het kader van dit boek.

DDOS DNS attack

I.p.v. de DNS-server te hacken, kan je die ook lastig vallen met zodanig veel DNS-aanvragen op een heel korte tijd, dat hij ze niet allemaal kan verwerken én zelfs neergaat. Hierdoor kunnen netwerkapparaten het IP-adres niet meer achterhalen van een domein en vinden ze dus ook 'de andere kant' niet meer. Het is alsof alle wegen er nog zijn, maar dat iemand alle verkeersborden heeft weggenomen. Uiteraard: als deze vragen afkomstig zijn van één IP-adres valt dit IP-adres snel te blokkeren, maar niet als dit van verschillende IP-adressen komt. Hackersgroeperingen hebben zo gehackte netwerkapparaten in handen (=een botnet) die ze zo'n aanvragen kunnen laten uitvoeren. En met het stijgend aantal IoT-toestellen kunnen dat er heel wat zijn. Het geheel noemt men dan een DDOS DNS attack (DDOS=Distributed Denial of Service), wat uiteraard niet is toegestaan[23].

Populaire sites tijdelijk onbereikbaar door ddos op DynDNS

In oktober 2016 was er een grote DDOS DNS-attack op Dyn, een belangrijke DNS server provider. Dit verhinderde enkele uren lang dat gebruikers aan de oostkust van de VS terechtkonden op populaire websites als Twitter, Reddit, Soundcloud en GitHub. De problemen hielden al met al ongeveer twee uur aan.[24]

(nl) Populaire sites tijdelijk onbereikbaar door ddos op DynDNS. tweakers.net (2016-10-21).

Dynamic DNS

Stel dat je van buitenaf jouw thuisnetwerk wenst te bereiken. Van je provider krijg je een dynamisch IP-adres, dus zou het kunnen dat het IP-adres al is veranderd wanneer je het wenst te gebruiken. Een mogelijkheid is dan dat je een account via diensten zoals No-IP of Dyn instelt. Je krijgt dan een domeinnaam zoals naam.hopto.org of naam.ddns.net. Er moet dan nog een koppeling zijn met het publiek IP-adres. Hiervoor draait een dienst op jouw netwerk (bv. op jouw router) die regelmatig controleert of het dynamisch IP niet is veranderd. Is dat het geval, dan wordt hopto.org of ddns.net op de hoogte gebracht. Dit systeem is een onderdeel van Dynamic DNS, kortweg DDNS.

DHCP

DHCP is een protocol dat netwerkbeheerders toelaat om de verdeling van IP-nummers centraal te beheren en automatisch toe te kennen aan hosts die daar om vragen. Zonder gebruik van DHCP moet elk IP-nummer manueel ingevoerd worden op elke client-computer. Ga je met jouw laptop naar een ander netwerk, dan zou je dit opnieuw manueel moeten veranderen (het netwerkdeel moet kloppen én het geheel moet uniek zijn).

Aangezien een computer in een netwerk niet per definitie weet waar de DHCP-server zich bevindt, zal hij een IP-aanvraag via een broadcast doen. De enige die op deze broadcast zal antwoorden, is de DHCP-server (vaak als onderdeel van de router of modem bij de mensen thuis).

Het belang van DHCP en IP

De gewone gebruiker heeft geen weet van IP, maar op zondag 3 februari 2013 werd het belang ervan pijnlijk duidelijk voor ruim de helft van de klanten van Telenet: geen internet, telefoon of digitale televisie die werkte zoals het hoort. Oorzaak van de storing zouden falende dhcp-servers zijn: de servers deelden niet langer IP-adressen uit waardoor alle toepassingen die gebruik maken van een kabelmodem niet langer verbinding konden maken. Telenet zou vrij snel de oorzaak van de verbindingsproblemen hebben gevonden, maar de provider zou enige tijd nodig hebben gehad om tests uit te voeren. Een ploeg van honderd man zou bezig zijn geweest om de problemen op te lossen. Bij sommige klanten waren er defecte modems, wellicht doordat deze klanten hun modem teveel hebben gereset.

(nl) Telenet herstart dhcp-servers na storing in geheel Vlaanderen. tweakers.net (2013-02-03). (nl) Opvallend veel meldingen van kapotte modems bij Telenet. De STandaard (2013-02-04).

[[Categorie:Netwerkprotocollen - inhoud|]]

Bronnen, noten en/of referenties
  1. Meer informatie op leerplan D/2015/7841/003
  2. Er is al een nieuwe standaard omdat wordt verwacht dat de unieke nummering ooit 'op' zal raken.
  3. Deze 24 bits zijn de OUI of de Organizationally unique identifier.
  4. Het is logisch dat het MAC-adres in het begin van het ethernetframe zit, zodat een switch snel kan beslissen via welke poort een frame verstuurd moet worden.
  5. Er zijn switches die zowel MAC als IP begrijpen, maar dit valt buiten het kader van deze cursus.
  6. Als een switch een pakketje doorstuurt naar een router, zal deze router het IP-adres dat ook in dat pakketje zit gebruiken om te routeren.
  7. YouTube: Traceren van een gestolen computer met behulp van het MAC-adres
  8. Bv. in Gnome NetworkManager 1.2: zie NetworkManger and tracking protection in Wi-Fi networks.
  9. (nl) ipv4-blocks zijn toegewezen, door Joost Schellevis, www.tweakers.net, 3 februari 2011
  10. (nl) RIPE NCC heeft zijn laatste ipv4-adressen uitgedeeld, door Joris Jansen, www.tweakers.net, 25 november 2019
  11. Zie ripe.net. (nl) Bron: forumbericht op 9lives.be, nl. Gezocht: IP range belgie
  12. (en) UDP hole punching op de Engelstalige Wikipedia. NAT to NAT client-server communication, beschrijving van de pwnat tool van Samy Kamkar
  13. Bron: Deel Tele2-klanten een week lang kwetsbaar
  14. Wereld IPv6 Dag op 8 juni 2011, Stichting IPv6 Nederland
  15. World IPv6 Launch
  16. Tweakers.net: Telenet begint met uitrol ipv6
  17. Ipv6 traffiek van AMS-IX in grafieken
  18. Wereldwijd IPv6-gebruik bij Google gebruikers.
  19. Zie bv. deze vermelding op de wiki van Wireshark.
  20. In principe, omdat Network Adress Translation nog kan zorgen voor een extra stap.
  21. DNS bestaat al sinds 1983 en ondertussen kan je ook het DNS-verkeer versleutelen. Meer info op Tweakers.net: Dns-over-https: vloek of zegen?
  22. Tweakers.net: "Dnssec: voor het laatste onveilige protocol"
  23. Zie bv. het Tweakers.net artikel Nederlandse politie arresteert verdachte op verdenking uitvoeren ddos-aanvallen van 5 februari 2018.
  24. Ook Arstechica schrijft in een artikel Double-dip Internet-of-Things botnet attack felt across the Internet meer over deze DDOS DNS-aanval. In hun related stories kan je nalezen dat dit niet de eerste keer is.
This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.