Je computer heeft twee adressen op het internet: een permanent fysiek adres of Media Access Control (MAC) adres en een logisch Internet Protocol of IP adres. Maar nu veel computers voortdurend van IP adres veranderen, hoe kunnen netwerken verschillende IP adressen aan één MAC adres koppelen?

Dit is de taak van ARP, formeel bekend als Address Resolution Protocol.

Het doel van ARP is het vertalen van het MAC adres van een computer naar de IP adressen – een vrij nuttige functie voor elk netwerk. Ondanks zijn nut kan ARP echter ook diverse beveiligingsrisico’s met zich meebrengen, waaronder risico’s waarbij potentieel gevoelige gegevens onderschept kunnen worden.

Maar hoe werkt het allemaal?

In dit artikel definiëren we ARP, vergelijken het met soortgelijke netwerkprotocollen, onderzoeken de verschillende soorten en use cases, en de risico’s van het gebruik ervan in je netwerk. Lees verder om meer te weten te komen over dit veel voorkomende – en soms riskante – netwerkprotocol.

Wat is ARP?

Address Resolution Protocol of ARP is een gebruikelijke manier voor netwerken om het IP adres van een computer te vertalen (ook wel resolven genoemd) naar het fysieke machine adres.

Omdat deze twee adressen verschillen in lengte en format, is ARP essentieel om computers en andere apparaten via een netwerk te laten communiceren. Om echt te begrijpen waarom dit belangrijk is, laten we echter een snelle opfrissing doen van deze twee adrestypes en hoe ze verband houden met onze dagelijkse netwerkmodellen.

ARP verbindt de MAC en IP adressen van een computer met elkaar
ARP verbindt de MAC en IP adressen van een computer met elkaar

IP vs MAC adressen

Je computer, smartphone en andere aangesloten apparaten hebben twee adressen op het internet: een IP adres en een MAC adres.

Maar waarom twee verschillende adressen voor één apparaat?

Stel je even voor dat je computer een stacaravan is. Wanneer de stacaravan van de band rolt, heeft hij misschien een serienummer (of een andere unieke identificatie) dat hem onderscheidt van alle andere stacaravans. Met andere woorden, de stacaravan kan worden geïdentificeerd aan de hand van zijn serienummer.

Een afbeelding met huisnummers
Stacaravans hebben unieke serienummers

Stel nu dat je de stacaravan in je buurt parkeert. Afhankelijk van welk perceel je hem geparkeerd hebt, krijgt de stacaravan een straatadres – laten we zeggen “Kinstaweg 27”. Zolang je stacaravan op datzelfde perceel geparkeerd staat, blijft het straatadres Kinstaweg 27. Je kunt hem echter vrij makkelijk verplaatsen en een nieuw adres geven, zoals “Kinstaweg 93”.

Merk op dat het parkeren van je stacaravan twee vormen van identificatie oplevert: het serienummer en het adres. Hier vertelt het straatadres iedereen waar de stacaravan zich bevindt ten opzichte van de rest van de wereld, terwijl het serienummer de stacaravan onderscheidt van andere stacaravans die misschien op hetzelfde perceel staan.

De IP en MAC adressen van je computer dienen precies dezelfde doelen, alleen is de buurt uit ons voorbeeld nu een lokaal netwerk.

Hier is het MAC adres van je computer zijn unieke fysieke identificatie op een netwerk – net zoals het serienummer van je stacaravan zijn unieke fysieke identificatie was. Daarom wordt het MAC adres vaak een fysiek adres of hardware adres genoemd. Net als een serienummer kun je het MAC adres van je computer niet veranderen.

Een MAC adres direct op de hardware gedrukt
Een MAC adres direct op de hardware gedrukt (Bron: LearnTomato)

Ondertussen is het IP adres van je computer zijn “straatadres” op het netwerk. Wanneer een computer verbinding maakt met een netwerk, krijgt hij een IP adres toegewezen, net zoals een stacaravan een straatadres krijgt zodra hij op een parkeerplaats staat.

Als de computer echter de verbinding met het netwerk verbreekt, verliest hij het IP adres, net zoals het verwijderen van een stacaravan van een parkeerplaats hem van zijn straatadres ontdoet. Opnieuw verbinden met het netwerk is dan ook hetzelfde als de stacaravan ergens anders parkeren, waarbij de computer een nieuw IP adres krijgt, net zoals de stacaravan een nieuw straatadres zou krijgen.

Natuurlijk zijn IP en MAC adressen nog steeds heel anders dan straatadressen en serienummers.

Waar een postbode post kan bezorgen bij een stacaravan zonder het serienummer te kennen, heeft het internet equivalent – het Internet Protocol of IP – beide adressen nodig om post of pakketten bij de juiste computer te bezorgen.

Belangrijke verschillen tussen MAC en IP adressen
Belangrijke verschillen tussen MAC en IP adressen (Bron: TechTarget)

Kortom, MAC adressen en IP adressen identificeren apparaten op een netwerk op verschillende manieren. Hier zijn enkele van de belangrijkste verschillen tussen de twee:

  • Adressen op verschillende lagen. MAC en IP adressen werken op verschillende lagen van het Open Systems Interconnection (OSI) Model, dat de verschillende stadia beschrijft die gegevens doorlopen als ze tussen computers worden verzonden. Hoewel we hier niet te gedetailleerd zullen zijn, werken MAC adressen op de Data Link laag (of laag 2), die rechtstreeks elektrische signalen die over een draad worden verzonden vertaalt naar logische gegevens. IP adressen werken een laag hoger op de Netwerklaag (of laag 3), die de adressering en routering door het netwerk afhandelt – bijna alsof je een adres op een envelop schrijft.
  • Lokaal vs. globaal bereik. MAC adressen worden gebruikt om verschillende apparaten op “lokale” schaal te identificeren, zoals verschillende computers die een netwerk delen in een kantoorgebouw. IP adressen werken meer globaal en bepalen hoe apparaten op het Internet elkaar vinden en met elkaar communiceren.
  • Verschillende adresformats. Omdat MAC en IP adressen op verschillende lagen werken en verschillende dingen doen, hebben ze ook verschillende formats. Een MAC adres heeft een serienummerachtig format van 12 cijfers, gegroepeerd in paren en gescheiden door koppeltekens of dubbele punten (00:00:00:00:00:00), terwijl een typisch IPv4 adres een 32-bits adres is (bit betekent binair cijfer) gegroepeerd in vier decimale getallen (000.000.000.0000). Hoewel je de details nu niet hoeft te weten, moet je weten dat het associëren van deze twee adresformats de belangrijkste functie van ARP is.
  • MAC adressen zijn permanent. MAC adressen worden door de fabrikant aan een apparaat toegewezen zodra het gebouwd is. Dit adres is in wezen “ingebed” in de netwerkhardware van het apparaat, waardoor het permanent en onveranderlijk is – net als het serienummer van ons mobiele huis van eerder. IP adressen zijn tijdelijk en worden toegewezen wanneer het apparaat verbinding maakt met een netwerk. Daardoor kunnen apparaten tijdens hun leven een willekeurig aantal verschillende IP adressen aannemen.
  • Fysiek versus logisch. In het verlengde van het bovenstaande wordt een MAC adres ook wel een fysiek adres of hardware adres genoemd, terwijl IP adressen soms (maar niet zo vaak) logische adressen worden genoemd.
  • Toegewezen op verschillende tijdstippen. Zoals eerder vermeld worden MAC adressen eenmalig toegewezen bij de fabricage. IP adressen kunnen daarna een willekeurig aantal keren worden toegewezen, net zo vaak als het apparaat verbinding maakt met een netwerk.

Dus waar komt ARP om de hoek kijken?

Omdat elke computer beide adressen heeft, moet er een manier zijn om het ene aan het andere te koppelen, zodat pakketten op de juiste plaats terechtkomen. Dit brengt ons bij de kernfunctie van ARP: het MAC adres van een apparaat koppelen aan het steeds veranderende IP adres en omgekeerd.

Laten we eens nader bekijken hoe dit precies werkt.

Hoe werkt ARP?

Nu we de vraag “Wat is ARP?” hebben beantwoord, laten we eens begrijpen hoe het werkt. ARP houdt een bijgewerkte lijst bij van MAC adressen en hun bijbehorende IP adressen. Deze lijst wordt gewoonlijk bijgehouden door een gateway of router – in wezen elke netwerkschakelaar die verantwoordelijk is voor het beheer van de datastroom tussen netwerken en apparaten.

Laten we, om dit te begrijpen, eens kijken naar het onderstaande schema.

Diagram dat laat zien hoe ARP werkt op een Ethernet netwerk
ARP op een Ethernet netwerk (Bron: Fortinet)

Hier probeert de “HOST” computer links iets te sturen naar de computer rechts met het IP adres 34.40.21.20. Om met succes gegevens naar deze computer te sturen, heeft de HOST computer zijn IP adres en MAC adres nodig.

Gelukkig heeft de HOST computer het IP adres van de computer al. Hij heeft alleen nog het MAC adres van de computer nodig, en daar komt ARP om de hoek kijken.

Op het netwerk aangesloten apparaten en switches (in dit geval een router) houden houden een lijst bij van bekende IP-naar-MAC-adresvertalingen op hun besturingssystemen. Deze lijst staat bekend als een ARP cache of ARP tabel, die voortdurend moet worden bijgewerkt om de steeds veranderende IP adressen bij te houden.

Wanneer een computer iets naar een bepaald IP adres wil sturen, controleert hij eerst zijn ARP cache om te zien of hij een passend MAC adres heeft. Zo niet, dan stuurt hij aanvraagpakketten voor het MAC adres.

Laten we dit proces illustreren aan de hand van de twee computers in het schema:

  1. De HOST computer controleert zijn ARP cache om te zien of hij het MAC adres van 34.40.21.20 al kent. Zo ja, dan heeft hij alles wat hij nodig heeft en verstuurt het bericht.
  2. De HOST computer stuurt een verzoek om het MAC adres van 34.40.21.20.
  3. De router ontvangt het verzoek om netwerkadressen van de HOST computer en gebruikt ARP om te proberen het MAC adres te vinden.
  4. ARP zal proberen te verwijzen naar de bestaande ARP cache van de router, en als het MAC adres niet gevonden kan worden, stuurt hij een verzoek naar 34.40.21.20.
  5. 34.40.21.20 stuurt hun MAC adres (A5:22:98:5C:24:93) terug naar de router.
  6. De router werkt zijn ARP cache bij en stuurt het MAC adres van 34.40.21.20 terug naar de HOST computer, waarmee het verzoek is afgerond.
  7. De HOST computer stuurt iets naar 34.40.21.20.

Hoewel dit slechts een basisvoorbeeld is, zou het je een idee moeten geven van de kernfunctie van ARP.

Een andere kernfunctie van ARP is het onderhouden (en wissen) van IP-naar-MAC vertalingen in de ARP cache. De ARP cache relatief leeg houden is niet alleen nodig om de laatste informatie te krijgen; het helpt ook om onnauwkeurige of ongebruikte adressen te verwijderen. Zoals we later zullen zien is het wissen van vertalingen ook nodig om te voorkomen dat IP adressen in verkeerde handen vallen.

Entries in een ARP cache kunnen zowel dynamisch als statisch zijn. Dynamische gegevens worden automatisch ingevuld op de manier die we al beschreven hebben. Gebruikers kunnen echter ook handmatig statische entries opgeven die ze permanent willen bewaren. Dit is handig voor permanente netwerkapparaten met vaste (d.w.z. statische) IP adressen.

ARP vs DHCP vs DNS: Wat is het verschil?

Als je ook maar enigszins bekend bent met netwerken, heb je waarschijnlijk wel eens gehoord van Dynamic Host Configuration Protocol (DHCP) en/of het Domain Name System (DNS). Dan vraag je je misschien ook af hoe ARP in netwerken verschilt van deze soortgelijke protocollen.

  • DHCP vs ARP: ARP bestaat grotendeels omdat IP adressen op een netwerk altijd worden veranderd en opnieuw toegewezen. DHCP is verantwoordelijk voor deze constante verandering en is het protocol dat een dynamisch IP adres voor hosts configureert – vandaar de naam dynamic host configuration protocol. DHCP helpt ook conflicten te voorkomen, zoals meerdere computers die hetzelfde IP adres toegewezen krijgen.
  • DNS vs ARP: Waar ARP IP en MAC adressen associeert, associeert DNS IP adressen en domeinnamen (zoals “kinsta.com”). Alle websites vertrouwen op webhosting om hun webpagina’s, afbeeldingen en al het andere te hosten. Net als elk ander netwerkapparaat hebben webhosting servers een IP adres. Dankzij DNS hoef je echter niet het IP adres van een host in te typen om toegang te krijgen tot een website. In plaats daarvan typ je gewoon een URL in zoals “www.example.com,” en de DNS server haalt het bijbehorende IP adres op, zodat je webbrowser de webpagina’s van de webhost kan opvragen en serveren.
DNS koppelt een domeinnaam aan een IP adres
DNS koppelt een domeinnaam aan een IP adres (Bron: GeeksforGeeks)

Gebruik en soorten ARP

Hoewel ARP een groot, monolithisch proces lijkt, kan het op veel verschillende manieren worden toegepast.

Schema met de vier belangrijkste soorten ARP
De vier belangrijkste soorten ARP (Bron: IPXO)

Bij de uitleg van wat ARP is, zijn er vier speciale typen: proxy ARP, gratuit ARP, reverse ARP (RARP), en inverse ARP (IARP). Elk type heeft verschillende use cases en in sommige gevallen duidelijke voor- en nadelen.

Wat is proxy ARP?

Bij proxy ARP handelt een door ARP geconfigureerde switch (zoals een router) de ARP verzoeken (d.w.z. verzoeken om MAC adressen) van apparaten/hosts af buiten zijn directe netwerk. De switch stuurt zijn eigen MAC adres als antwoord, en fungeert in feite als “vertegenwoordiger” van elke host in zijn netwerk.

Router als proxy ARP voor verzoeken over netwerken heen
Router als proxy ARP voor verzoeken over netwerken heen (Bron: Practical Networking)

Laten we ter verduidelijking het bovenstaande diagram eens nader bekijken. Hier bedient de groene router in het midden twee afzonderlijke lokale netwerken: 10.0.0.0/24 en 10.0.4.0/24.

Stel dat Host B een bericht wil sturen naar Host D. Hoewel dat geen probleem zou zijn als Host D zich op hetzelfde lokale netwerk zou bevinden (zoals Host A), bevindt hij zich helaas op een ander netwerk. Host B bevindt zich daardoor in een lastige situatie: hoe komt hij aan het MAC adres van Host D?

Gelukkig schiet de router te hulp. Wanneer Host B een ARP verzoek naar de router stuurt, grijpt de router in en geeft als antwoord zijn eigen MAC adres. Met het MAC adres van de router in de hand stuurt Host B zijn bericht naar de router, die nu letterlijk als “proxy” voor Host B fungeert. De router stuurt vervolgens het bericht van Host B naar Host D, de beoogde ontvanger.

Zoals je je kunt voorstellen is proxy ARP heel gebruikelijk in computernetwerken, met typische toepassingen als VPN verbindingen en firewalls.

Er zijn echter enkele nadelen aan proxy ARP, waarvan de meeste voortkomen uit verkeerde configuraties. Eén zo’n nadeel is het verhoogde risico om berichten naar de verkeerde plaatsen te sturen, omdat apparaten buiten het netwerk zich misschien niet bewust zijn van onjuiste configuraties als ze alleen met een proxy ARP te maken hebben. Proxy ARP’s kunnen ook dienen als vectoren voor denial of service (DoS) aanvallen, die we later zullen onderzoeken.

Wat is een gratuitous ARP?

Een gratuitous ARP is een ARP antwoord dat niet eerder is aangevraagd. Met andere woorden, gratuitous ARP gaat los om met het sturen van ARP antwoorden, en zendt in feite zijn IP-naar-MAC vertaling uit naar elke host/apparaat op het netwerk. Het is bijna alsof iemand een “bulk e-mail” stuurt om iedereen te laten weten dat hij zijn contactgegevens heeft bijgewerkt.

Een host die een netwerk op de hoogte stelt van een bijgewerkt MAC adres met een gratuitous ARP
Een host die een netwerk op de hoogte stelt van een bijgewerkt MAC adres met een gratuitous ARP (Bron: IPCisco.com)

Gratuitous ARP heeft verschillende nuttige toepassingen. Ten eerste is het essentieel voor het bijwerken van ARP caches en mapping, vooral als een nieuw apparaat of knooppunt zich bij het netwerk voegt. In het geval van een nieuw apparaat vermijdt gratuitous ARP het sturen en beantwoorden van individuele ARP verzoeken naar elk ander apparaat op het lokale netwerk.

Het waarborgen van redundantie is een andere belangrijke toepassing van gratuitous ARP. Sommige redundante netwerken gebruiken bijvoorbeeld twee of meer routers met hetzelfde IP adres. Wanneer één van deze routers uitvalt, stuurt de “overlevende” router een gratuitous ARP om het netwerk te informeren waarheen berichten gestuurd moeten worden.

Wat is reverse ARP (RARP)?

Reverse ARP (RARP) doet wat zijn naam suggereert. Het stuurt een IP adres in plaats van een MAC adres.

Host stuurt een RARP verzoek om zijn IP adres te weten te komen
Host stuurt een RARP verzoek om zijn IP adres te weten te komen (Bron: NetworkLessons)

Maar waarom zou je dit überhaupt doen? Zijn IP adressen niet al bekend bij de hosts in een netwerk?

Niet altijd. Hoe onwaarschijnlijk het ook lijkt, sommige hosts kennen niet eens hun eigen IP adres. Dit is vaak het gevolg van het feit dat een host simpelweg niet genoeg geheugen of ruimte heeft om zijn IP informatie op te slaan, waardoor een RARP verzoek nodig is voor communicatie. Vergeet niet dat alleen MAC adressen permanent worden toegewezen – en dat hosts daarom mogelijk niets anders weten dan hun MAC adres!

Wat is inverse ARP (IARP of InARP)?

Net als RARP stuurt ook inverse ARP (afgekort als IARP of InARP) IP adressen in plaats van MAC adressen. In tegenstelling tot RARP werkt inverse ARP echter precies hetzelfde als traditionele ARP, alleen vertaalt het MAC adressen naar IP adressen in plaats van IP adressen naar MAC adressen.

IARP is vooral nuttig voor steeds veranderende IP adressen (opnieuw dankzij DHCP). Hier kan een host het MAC adres kennen van een andere host of router waarvan het IP adres inmiddels is veranderd. Met alleen het MAC adres in de hand is IARP nodig voor de host om het nieuwe IP adres te krijgen en het bericht te versturen.

Wat is ARP spoofing?

ARP Spoofing – ook bekend als ARP poisoning – treedt op wanneer hackers valse ARP berichten naar een doelnetwerk sturen in een poging hun eigen MAC adres te koppelen aan een legitiem IP adres op het netwerk.

Een afbeelding die laat zien hoe een hacker ARP spoofing uitvoert om netwerkverkeer te onderscheppen
Hoe een hacker ARP spoofing uitvoert om netwerkverkeer te onderscheppen (Bron: OKTA)

Als dat lukt, worden berichten die bedoeld zijn voor de computer met het legitieme IP adres in plaats daarvan naar de hacker gestuurd. Hierdoor kan de hacker verschillende andere soorten cyberaanvallen uitvoeren, waaronder:

Man-in-the-middle (MTM)

Bij een man-in-the-middle (MTM) aanval “luistert” een hacker het netwerkverkeer af, waarbij mogelijk waardevolle gegevens zoals wachtwoorden, bankgegevens, enz. worden onderschept. In het geval van ARP spoofing aanvallen, gebruiken hackers frauduleuze ARP berichten om netwerkverkeer door hun computers te leiden, en geven het vaak door aan de beoogde ontvanger zodat het lijkt alsof er niets gebeurd is.

Session hijacking

Session hijacking is het stelen en overnemen door een hacker van de sessie ID van een gebruiker, een speciaal soort gegevens waarmee gebruikers bepaalde handelingen op websites kunnen verrichten. Sessie ID’s worden vaak door websites verspreid in de vorm van cookies, waardoor gebruikers ingelogd kunnen blijven of toegang krijgen tot opgeslagen winkelwagentjes.

Door verkeer om te leiden via ARP spoofing kunnen hackers gemakkelijk toegang krijgen tot sessie ID’s en zich voordoen als de gebruiker. Dit betekent dat ze alles kunnen doen waartoe de gebruiker gemachtigd is, zoals toegang krijgen tot ingelogde bankrekeningen.

Denial-of-Service (DoS)

Een Denial of Service (DoS) of Distributed Denial of Service (DDoS) aanval kan twee vormen aannemen: een hacker blokkeert berichten naar een host of een hacker overweldigt een host met te veel berichten. Het laatste komt vaker voor.

In beide gevallen is het echter ARP spoofing dat hackers in staat stelt om berichten massaal te blokkeren of door te sturen. Door regulier netwerkverkeer te onderscheppen kan de hacker berichten blokkeren voor de beoogde ontvangers of ze omleiden naar een enkel doelwit.

Samenvatting

In dit artikel hebben we een diepgaand antwoord gegeven op “Wat is ARP?” – een van de meest voorkomende en nuttige protocollen in computernetwerken. Dankzij ARP kunnen computers en netwerkapparaten fysieke MAC adressen koppelen aan steeds veranderende IP adressen, wat de gemakkelijke communicatie mogelijk maakt waarvan we tegenwoordig genieten.

Maar zelfs de meest goedbedoelde ARP kan leiden tot beveiligingsproblemen en cyberaanvallen. Met beveiligingsfeatures zoals DDoS bescherming kan Kinsta’s managed WordPress hosting helpen beschermen tegen vele cyberaanvallen die te maken hebben met ARP spoofing.