Din computer har to adresser på internettet: en permanent fysisk adresse ellerMAC-adresse ( Media Access Control ) og en logisk IP-adresse (Internet Protocol). Men når mange computere ændrer IP-adresser hele tiden, hvordan kan netværk så knytte forskellige IP-adresser til en enkelt MAC-adresse?

Det er ARP, der formelt er kendt som Address Resolution Protocol.

ARP’s opgave er at oversætte mellem en computers MAC-adresse og IP-adresse(r) – en ret nyttig funktion for ethvert netværk. På trods af sin nytteværdi kan ARP imidlertid også indebære adskillige sikkerhedsrisici, herunder risici, der kan opsnappe potentielt følsomme data.

Men hvordan fungerer det hele?

I denne artikel vil vi definere ARP, sætte den i kontrast til lignende netværksprotokoller, undersøge dens forskellige typer og anvendelsesmuligheder og de risici, der er forbundet med at bruge den i dit netværk. Læs videre for at få mere at vide om denne almindelige – og til tider risikable – netværksprotokol.

Hvad er ARP?

Address Resolution Protocol eller ARP er en almindelig måde for netværk at oversætte mellem (eller opløse) en computers IP-adresse til dens fysiske maskines adresse.

Da disse to adresser er forskellige i længde og format, er ARP afgørende for, at computere og andre enheder kan kommunikere via et netværk. For virkelig at forstå, hvorfor dette er vigtigt, skal vi dog lige genopfriske disse to adressetyper, og hvordan de hænger sammen med vores daglige netværksmodeller.

ARP forbinder en computers MAC- og IP-adresser
ARP forbinder en computers MAC- og IP-adresser

IP vs. MAC-adresser

Din computer, smartphone og andre tilsluttede enheder har to adresser på internettet: en IP-adresse og en MAC-adresse.

Men hvorfor har du to forskellige adresser til én enhed?

Forestil dig et øjeblik, at din computer er et mobilhome. Når et mobilhome kommer fra produktionslinjen, har det måske et serienummer (eller en anden unik identifikator), der adskiller det fra alle andre mobile homes. Med andre ord kan mobile homes identificeres ved hjælp af sit serienummer.

Et billede, der viser mobile homes
Mobile homes har unikke serienumre

Lad os nu sige, at du parkerer mobile home’et i dit nabolag. Afhængigt af hvilken parkeringsplads du har parkeret det, får mobilhomeet en gadeadresse – lad os sige “27 Kinsta Lane” Hvis dit mobile home parkeres på den samme grund, vil dets gadeadresse fortsat være 27 Kinsta Lane. Du kan dog lige så godt flytte det længere nede ad vejen og give det en ny gadeadresse, f.eks. “93 Kinsta Lane”

Bemærk her, at parkering af dit mobile home giver det to former for identifikation: dets serienummer og gadeadresse. Her fortæller gadeadressen alle, hvor mobile home’et er placeret i forhold til resten af verden, mens serienummeret adskiller mobile home’et fra andre mobile homes, der måtte stå på samme grund.

Din computers IP- og MAC-adresse tjener nøjagtig samme formål, bortset fra at nabolaget fra vores eksempel nu er et lokalt netværk.

Her er din computers MAC-adresse dens unikke fysiske identifikator på et netværk – på samme måde som dit mobile homes serienummer var dets unikke fysiske identifikator. Derfor kaldes MAC-adressen ofte for en fysisk adresse eller hardwareadresse. Ligesom et serienummer kan du heller ikke ændre din computers MAC-adresse.

En MAC-adresse trykt direkte på hardwaren
En MAC-adresse trykt direkte på hardwaren (Kilde: LearnTomato)

I mellemtiden er din computers IP-adresse dens “gadeadresse” på netværket. Når en computer opretter forbindelse til et netværk, får den tildelt en IP-adresse, ligesom et mobilhome får tildelt en gadeadresse, når det er parkeret på en parkeringsplads.

Men hvis computeren afbryder forbindelsen til netværket, mister den IP-adressen, ligesom hvis man fjerner et mobilhome fra en parkeringsplads, mister den sin gadeadresse. At genforbinde til netværket er også det samme som at parkere sit mobile home et andet sted, hvor computeren får en ny IP-adresse, ligesom mobile home får en ny gadeadresse.

IP- og MAC-adresser er naturligvis stadig meget forskellige fra gadeadresser og serienumre.

Hvor en postarbejder kan levere post til et mobile home uden at kende dets serienummer, har internet-ækvivalenten – Internetprotokollen eller IP – brug for begge adresser for at levere post eller pakker til den rigtige computer.

De vigtigste forskelle mellem MAC- og IP-adresser
De vigtigste forskelle mellem MAC- og IP-adresser (Kilde: TechTarget)

Kort sagt identificerer MAC-adresser og IP-adresser enheder på et netværk på forskellige måder. Her er nogle af de vigtigste forskelle mellem de to:

  • Adresser på forskellige lag. MAC- og IP-adresser arbejder på forskellige lag i OSI-modellen (Open Systems Interconnection), som beskriver de forskellige stadier, som data gennemløber, når de sendes mellem computere. Vi vil ikke gå for meget i detaljer her, men MAC-adresser arbejder på Data Link-laget (eller lag 2), som direkte omsætter elektriske signaler, der sendes over en ledning, til logiske data. IP-adresser arbejder et lag højere på netværkslaget (eller lag 3), som håndterer adressering og routing i hele netværket – næsten som at skrive en adresse på en kuvert.
  • Lokal vs. global rækkevidde. MAC-adresser bruges til at identificere forskellige enheder på et “lokalt” niveau, f.eks. forskellige computere, der deler et netværk i en kontorbygning. IP-adresser fungerer mere globalt og styrer, hvordan enheder på hele internettet finder og kommunikerer med hinanden.
  • Forskellige adresseformater. Da MAC- og IP-adresser arbejder på forskellige lag og gør forskellige ting, har de også forskellige formater. En MAC-adresse har et serienummerlignende format med 12 cifre grupperet i par og adskilt af bindestreger eller kolon (00:00:00:00:00:00:00:00:00), mens en typisk IPv4-adresse er en 32-bit-adresse (bit betyder binært ciffer) grupperet i fire decimaltal (000.000.000.000.0000). Selv om du ikke behøver at kende detaljerne nu, skal du være opmærksom på, at ARP’s hovedfunktion er at associere disse to adresseformater.
  • MAC-adresser er permanente. MAC-adresser tildeles en enhed af producenten, så snart den er bygget. Denne adresse er i princippet “indlejret” i enhedens netværkshardware, hvilket gør den permanent og uforanderlig – ligesom vores mobile homes serienummer fra tidligere. IP-adresser er midlertidige og tildeles, når enheden opretter forbindelse til et netværk. Derfor kan enhederne få et vilkårligt antal forskellige IP-adresser i løbet af deres levetid.
  • Fysisk vs. logisk. I forlængelse af ovenstående er en MAC-adresse også kendt som en fysisk adresse eller hardwareadresse, mens IP-adresser undertiden (men ikke så almindeligt) kaldes logiske adresser.
  • Tildeles på forskellige tidspunkter. Som tidligere nævnt tildeles MAC-adresser én gang på fremstillingstidspunktet. IP-adresser kan derefter tildeles et vilkårligt antal gange efterfølgende, så mange gange som enheden tilsluttes et netværk.

Hvor kommer ARP så ind i billedet?

Da alle computere har begge adresser, må der være en måde at tilknytte den ene til den anden på, så pakker leveres til det rigtige sted. Dette bringer os til ARP’s kernefunktion: at forbinde en enheds MAC-adresse med dens konstant skiftende IP-adresse og omvendt.

Lad os se nærmere på, hvordan dette præcist fungerer.

Hvordan fungerer ARP?

Nu hvor vi har besvaret spørgsmålet “Hvad er ARP?”, skal vi forstå, hvordan det fungerer. ARP vedligeholder en opdateret liste over MAC-adresser og deres tilknyttede IP-adresser. Denne liste vedligeholdes normalt af en gateway eller router – i det væsentlige enhver netværksswitch, der er ansvarlig for at styre datastrømmen mellem netværk og enheder.

Lad os se på nedenstående diagram for at forstå dette.

ARP på et Ethernet-netværk
ARP på et Ethernet-netværk (Kilde: Fortinet)

Her forsøger “HOST”-computeren til venstre at sende noget til computeren til højre med IP-adressen 34.40.21.20. For at kunne sende data til denne computer skal HOST-computeren bruge dens IP-adresse og MAC-adresse for at kunne sende data til denne computer.

Heldigvis har HOST-computeren allerede computerens IP-adresse. Nu mangler den blot computerens MAC-adresse, og det er her ARP kommer ind i billedet.

Netværksforbundne enheder og switche (i dette tilfælde en router) opretholder en liste over kendte oversættelser af IP- til MAC-adresser i deres operativsystemer. Denne liste er kendt som en ARP-cache eller ARP-tabel, som kræver konstante opdateringer for at følge med de konstant skiftende IP-adresser.

Når en computer ønsker at sende noget til en bestemt IP-adresse, tjekker den først ARP-cachen for at se, om den har en tilsvarende MAC-adresse. Hvis det ikke er tilfældet, sender den anmodningspakker til MAC-adressen.

Lad os illustrere denne proces ved hjælp af de to computere i diagrammet:

  1. HOST-computeren kontrollerer sin ARP-cache for at se, om den allerede kender MAC-adressen 34.40.21.20. Hvis den gør, har den alt, hvad den har brug for, og den sender meddelelsen.
  2. HOST-computeren sender en anmodning om 34.40.21.20’s MAC-adresse.
  3. Routeren modtager anmodningen om netværksadresser fra HOST-computeren og bruger ARP til at forsøge at finde MAC-adressen.
  4. ARP forsøger at henvise til routerens eksisterende ARP-cache, og hvis MAC-adressen ikke kan findes, sender den en anmodning til 34.40.21.20.
  5. 34.40.21.20 sender sin MAC-adresse (A5:22:98:5C:24:93) tilbage til routeren.
  6. Routeren opdaterer sin ARP-cache og sender 34.40.21.20’s MAC-adresse tilbage til HOST-computeren og afslutter dermed anmodningen.
  7. HOST-computeren sender noget til 34.40.21.20.

Selv om dette kun er et grundlæggende eksempel, bør det give dig en idé om ARP’s kernefunktion.

En anden central funktion i ARP er at vedligeholde (og rense) IP-MAC-oversættelser i ARP-cachen. Det er ikke kun nødvendigt at holde ARP-cachen relativt ren for at få de nyeste oplysninger; det hjælper også med at fjerne unøjagtige eller ubrugte adresser. Som vi vil se senere, er det også nødvendigt at rense oversættelser for at forhindre, at IP-adresser falder i de forkerte hænder.

Posteringer i en ARP-cache kan også være enten dynamiske eller statiske. Dynamiske poster er poster, der udfyldes automatisk på den måde, som vi allerede har beskrevet. Brugere kan dog også manuelt angive statiske poster, som de ønsker at beholde permanent. Dette er nyttigt for vedvarende netværksenheder med faste (dvs. statiske) IP-adresser.

ARP vs. DHCP vs. DNS: Hvad er forskellen?

Hvis du er bare nogenlunde bekendt med netværk, har du sikkert hørt om Dynamic Host Configuration Protocol (DHCP) og/eller Domain Name System (DNS). Hvis det er tilfældet, undrer du dig måske også over, hvordan ARP i netværk adskiller sig fra disse lignende protokoller.

  • DHCP vs. ARP: ARP eksisterer i høj grad, fordi IP-adresser altid ændres og tildeles på ny på et netværk. DHCP er ansvarlig for denne konstante ændring, da det er den protokol, der konfigurerer en dynamisk IP-adresse til værter – deraf navnet dynamisk værtskonfigurationsprotokol. DHCP hjælper også med at undgå konflikter, f.eks. at flere computere får tildelt den samme IP-adresse.
  • DNS vs. ARP: Hvor ARP forbinder IP- og MAC-adresser, forbinder DNS IP-adresser og domænenavne (f.eks. “kinsta.com”). Alle websteder er afhængige af webhosting til at hoste deres websider, billeder og alt andet, der indgår i dem. Som enhver anden netværksenhed har webhosting-servere en IP-adresse. Takket være DNS behøver du dog ikke at indtaste en hosts IP-adresse for at få adgang til et websted. I stedet skal du blot indtaste en URL-adresse som “www.example.com”, og DNS-serveren henter den tilsvarende IP-adresse, så din webbrowser kan anmode om og servere websiderne fra webhotellet.
DNS knytter et domænenavn til en IP-adresse
DNS knytter et domænenavn til en IP-adresse (Kilde: GeeksforGeeks)

Anvendelse og typer af ARP

Selv om ARP kan virke som en stor, monolitisk proces, kan den implementeres på mange forskellige måder.

Diagram, der viser de fire hovedtyper af ARP
De fire hovedtyper af ARP (Kilde: IPXO)

Når man skal forklare, hvad ARP er, er der fire specielle typer: proxy ARP, gratuit ARP, reverse ARP (RARP) og inverse ARP (IARP). Hver type har forskellige anvendelsesmuligheder og i nogle tilfælde forskellige fordele og ulemper.

Hvad er proxy-ARP?

En proxy-ARP er en ARP-konfigureret switch (f.eks. en router), der håndterer ARP-forespørgsler (dvs. forespørgsler om MAC-adresser) fra enheder/hosts uden for sit umiddelbare netværk. Switchen sender sin egen MAC-adresse som svar og fungerer således som “repræsentant” for alle hosts i sit netværk.

Router som proxy-ARP for anmodninger på tværs af netværk
Router som proxy-ARP for anmodninger på tværs af netværk (Kilde: Practical Networking)

Lad os se nærmere på ovenstående diagram for at få klarhed over dette. Her betjener den grønne router i midten to separate lokalnetværk: 10.0.0.0.0/24 og 10.0.4.0/24.

Lad os sige, at host B ønsker at sende en meddelelse til vært D. Det ville ikke være noget problem, hvis vært D befandt sig på samme lokale netværk (som host A), men desværre befinder den sig på et andet netværk. Som følge heraf befinder host B sig i en vanskelig situation: Hvordan kan den få fat i MAC-adressen på host D?

Heldigvis kommer routeren til undsætning. Når Host B sender en ARP-anmodning til routeren, træder routeren til og giver sin egen MAC-adresse som svar. Med routerens MAC-adresse i hånden sender vært B sin besked til routeren, som nu bogstaveligt talt fungerer som en “proxy” for vært B. Routeren sender derefter host B’s besked til host D, som er den tiltænkte modtager.

Som du måske kan forestille dig, er proxy-ARP ekstremt udbredt i computernetværk, med typiske anvendelser, herunder VPN-forbindelser og firewalls.

Der er imidlertid nogle ulemper ved proxy ARP, hvoraf de fleste skyldes ukorrekte konfigurationer. En af disse ulemper er den øgede risiko for at sende meddelelser til de forkerte steder, da enheder uden for netværket måske ikke er opmærksomme på ukorrekte konfigurationer, når de kun har med en proxy-ARP at gøre. Proxy ARP’er kan også tjene som vektorer for DoS-angreb (denial of service), hvilket vi vil undersøge lidt senere.

Hvad er gratuitous ARP?

En gratis ARP er et ARP-svar, som ikke tidligere er blevet anmodet om. Med andre ord er gratis ARP gratis med hensyn til at sende ARP-svar og sender effektivt sin IP-MAC-oversættelse til alle værter/enheder på netværket. Det svarer næsten til, at nogen sender en “masse-e-mail” for at fortælle alle, at de har opdateret deres kontaktoplysninger.

En host, der meddeler et netværk om en opdateret MAC-adresse med en gratis ARP-sending
En host, der meddeler et netværk om en opdateret MAC-adresse med en gratis ARP-sending (Kilde: IPCisco.com)

Gratuitous ARP har flere nyttige anvendelser. For det første er det vigtigt for opdatering af ARP-cacher og -mapping, især når en ny enhed eller knude tilsluttes netværket. I tilfælde af en ny enhed undgår gratuit ARP at sende og besvare individuelle ARP-forespørgsler til alle andre enheder på det lokale netværk.

Sikring af redundans er en anden vigtig anvendelse af gratis ARP. Nogle redundante netværk kan f.eks. bruge to eller flere routere med samme IP-adresse. Når en af disse routere svigter, sender den “overlevende” router en gratis ARP for at informere netværket om, hvor meddelelser skal sendes hen.

Hvad er omvendt ARP (RARP)?

Reverse ARP (RARP) gør præcis, hvad navnet antyder. Den sender en IP-adresse i stedet for en MAC-adresse.

Host, der sender en RARP-forespørgsel for at få sin IP-adresse
Host, der sender en RARP-forespørgsel for at få sin IP-adresse (Kilde: NetworkLessons)

Men hvorfor overhovedet gøre dette? Er IP-adresser ikke allerede kendt af værter på et netværk?

Ikke altid. Hvor usandsynligt det end kan virke, kender nogle værter ikke engang deres egne IP-adresser. Dette skyldes ofte, at en vært simpelthen ikke har hukommelse eller plads til at gemme sine IP-oplysninger, hvilket gør en RARP-anmodning nødvendig for at kunne kommunikere. Husk, at kun MAC-adresser tildeles permanent – og derfor kan det være, at hosts ikke kender andet end deres MAC-adresse!

Hvad er Inverse ARP (IARP eller InARP)?

Ligesom RARP sender omvendt ARP (forkortet som IARP eller InARP) også IP-adresser i stedet for MAC-adresser. Men i modsætning til RARP fungerer omvendt ARP nøjagtig på samme måde som traditionel ARP, blot at den oversætter MAC-adresser til IP-adresser i stedet for IP-adresser til MAC-adresser.

IARP er især nyttig ved konstant skiftende IP-adresser (igen takket være DHCP). Her kender en vært måske MAC-adressen på en anden host eller router, hvis IP-adresse er blevet ændret siden da. Med kun MAC-adressen i hånden er IARP nødvendig for at værten kan få den nye IP-adresse og sende sin besked.

Hvad er ARP-spoofing?

ARP Spoofing, også kendt som ARP Poisoning, er, når hackere sender falske ARP-meddelelser til et målnetværk i et forsøg på at forbinde deres egen MAC-adresse med en legitim IP-adresse på netværket.

Billede, der viser, hvordan en hacker udfører ARP-spoofing for at opsnappe netværkstrafik
Sådan udfører en hacker ARP-spoofing for at opsnappe netværkstrafik (Kilde: OKTA)

Hvis det lykkes, sendes meddelelser, der er beregnet til computeren med den legitime IP-adresse, i stedet til hackeren. Dette giver hackeren mulighed for at iværksætte flere andre typer cyberangreb, herunder:

Man-in-the-Middle (MTM)

Et MTM-angreb (man-in-the-middle) er et angreb, hvor en hacker “aflytter” netværkstrafikken og potentielt opsnapper værdifulde data som f.eks. passwords, bankoplysninger osv. I tilfælde af ARP-spoofing-angreb bruger hackere falske ARP-meddelelser til at omdirigere netværkstrafikken gennem deres computere og ofte sende den videre til den tilsigtede modtager for at få det til at se ud som om, der ikke er sket noget.

Session hijacking

Ved session hijacking stjæler og overtager en hacker en brugers sessions-id, en særlig type data, der giver brugeren tilladelse til at udføre visse handlinger på websteder. Sessions-id’er, der ofte distribueres af websteder i form af cookies, giver brugerne mulighed for at forblive logget ind eller få adgang til gemte indkøbsvogne.

Ved at omdirigere trafikken via ARP-spoofing kan hackere nemt få adgang til sessions-id’er og udgive sig for at være brugeren. Det betyder, at de kan gøre alt, hvad brugeren er autoriseret til at gøre, f.eks. få adgang til loggede bankkonti.

Denial-of-Service (DoS)

Et denial of service-angreb (DoS) eller distribueret denial of service-angreb (DDoS) kan antage to former: En hacker blokerer meddelelser til en host eller en hacker overvælder en host med for mange meddelelser. Sidstnævnte er oftere tilfældet.

I begge tilfælde er det imidlertid ARP-spoofing, der gør det muligt for hackere enten at blokere eller sende meddelelser i massevis. Ved at opsnappe almindelig netværkstrafik kan hackeren blokere meddelelser til deres tilsigtede modtagere eller omdirigere dem til et enkelt mål.

Opsummring

Her har vi givet et dybdegående svar på “Hvad er ARP?” – en af de mest almindelige og nyttige protokoller i computernetværk. Takket være ARP kan computere og netværksenheder knytte fysiske MAC-adresser til konstant skiftende IP-adresser, hvilket giver mulighed for den nemme kommunikation, som vi nyder godt af i dag.

Men selv den mest velmente ARP kan føre til sikkerhedshuller og cyberangreb. Med sikkerhedsfunktioner som DDoS-beskyttelse kan Kinsta’s administrerede WordPress-hosting hjælpe med at beskytte mod mange cyberangreb, der er forbundet med ARP-spoofing.