ARP

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 10. februar 2022; checks kræver 6 redigeringer .
ARP
Navn Adresseopløsningsprotokol
Niveau (ifølge OSI-modellen ) kanaliseret
Familie TCP/IP
Oprettet i 1982
Port/ID 0x0806/ Ethernet
Formål med protokollen Konvertering af netværksadresser til kanaladresser
Specifikation RFC 826
Vigtigste implementeringer (klienter) implementeringer af TCP/IP-stakken i Microsoft Windows , Linux og BSD
Kerneimplementeringer ( servere ) implementeringer af TCP/IP-stakken i Windows , Linux og BSD
 Mediefiler på Wikimedia Commons

ARP ( Eng.  Address Resolution Protocol  - address determination protocol) er en protokol i computernetværk designet til at bestemme MAC-adressen på en anden computer ved hjælp af en kendt IP-adresse .

Beskrivelsen af ​​protokollen blev offentliggjort i november 1982 i RFC 826 . ARP blev designet til at transmittere IP-pakker over Ethernet-pakker (rammer). Princippet om at finde ud af hardwareadressen på målværten, brugt i ARP, blev derefter brugt i andre typer netværk.

ARP er blevet mest udbredt på grund af de allestedsnærværende IP- netværk bygget oven på Ethernet, da de næsten altid bruger ARP. ARP findes ikke i IPv6 -protokolfamilien , dens funktioner er tildelt ICMPv6 .

Beskrivelse

Overvej essensen af ​​ARP 's funktion i et simpelt eksempel. Computer A (IP-adresse 10.0.0.1) og computer B (IP-adresse 10.22.22.2) er forbundet via et Ethernet -netværk . Computer A ønsker at sende en datapakke til computer B, IP-adressen på computer B er kendt af den. Ethernet-netværket, de er tilsluttet, fungerer dog ikke med IP-adresser. Derfor skal computer A kende adressen på computer B på Ethernet-netværket ( MAC-adressen i Ethernet-termer) for at kunne transmittere over Ethernet. Til denne opgave bruges ARP-protokollen. Under denne protokol sender computer A en broadcast-anmodning adresseret til alle computere i det samme broadcast-domæne . Essensen af ​​anmodningen: "computer med IP-adresse 10.22.22.2, fortæl din MAC-adresse til computeren med MAC-adresse (f.eks. a0:ea:d1:11:f1:01)". Ethernet-netværket leverer denne anmodning til alle enheder på det samme Ethernet-segment, inklusive computer B. Computer B svarer på computer A med anmodningen og rapporterer dens MAC-adresse (f.eks. 00:ea:d1:11:f1:11) Nu, Efter at have modtaget MAC-adressen på computer B, kan computer A sende alle data til den via Ethernet-netværket.

Der er følgende typer ARP-meddelelser: ARP-anmodning ( ARP-anmodning ) og ARP-svar ( ARP-svar ). Det afsendende system, ved hjælp af en ARP-anmodning, anmoder om hardwareadressen på det modtagende system, som kommer inde i ARP-svaret.

Før en netværkslagspakke sendes over et Ethernet-segment, tjekker netværksstakken ARP-cachen for at se, om den påkrævede destinationsknudeinformation allerede er registreret i dens tabel. Hvis der ikke er en sådan indtastning i ARP-cachen, foretages en ARP-udsendelsesanmodning. Denne anmodning om enheder på netværket har følgende betydning: "Kender nogen den fysiske adresse på enheden med sådan en IP-adresse?" Når en vært med denne IP-adresse modtager sådan en anmodningspakke, skal den svare: "Ja, dette er min IP-adresse og min hardwareadresse er sådan og sådan." Derefter vil afsenderen af ​​anmodningen gemme modtagerens hardwareadresse i sin ARP-cache og vil være i stand til at adressere oplysningerne til modtageren.

Nedenfor er et eksempel på en ARP-anmodning og -svar. < se nederst på siden>

Indtastninger i ARP-cachen kan være statiske eller dynamiske. Eksemplet ovenfor beskriver en dynamisk cache-indgang. Du kan også oprette statiske poster i tabellen. På de fleste operativsystemer kan dette gøres med kommandoen:

arp -s <IP-адрес> <MAC-адрес>

I Windows Server 2003 forbliver ARP-tabelposter, der er oprettet dynamisk, i cachen i 2 minutter. Hvis der i løbet af disse to minutter var en gentransmission af data til denne adresse, forlænges lagringstiden for posten i cachen med yderligere 2 minutter. Denne procedure kan gentages flere gange, men den maksimale indtastning i cachen varer op til 10 minutter. Herefter vil posten blive fjernet fra cachen, og om nødvendigt vil en ny ARP-anmodning [1] blive sendt .

På nyere operativsystemer er opbevaringstiden for indtastninger i ARP-tabellen og lagringsmetoden programmatisk valgbare og kan ændres, hvis det ønskes.

Varianter af ARP-protokollen

ARP blev oprindeligt udviklet ikke kun til IP, denne protokol kan også bruges til at finde ud af MAC-adresser i forskellige Layer 3 -protokoller adresser .  ARP er også blevet tilpasset til at opnå andre (hardware) lag 2-adresser af OSI-modellen ( Layer 2-adresser ).

InARP- og ATM ARP-protokollerne bruges i forskellige IP over ATM-indkapslinger beskrevet i RFC 1577 ( Classic IP and ARP over ATM ) [2] .

I øjeblikket bruges ARP hovedsageligt til at matche IP- og MAC-adresser på ethernet-netværk.

Omvendt ARP

Inverse Address Resolution Protocol , Inverse ARP eller InARP  er en protokol til at opnå netværkslagsadresser (for eksempel IP-adresser ) på andre arbejdsstationer ved deres linklagsadresser (for eksempel DLCI i Frame Relay - netværk). InARP er almindeligt anvendt i Frame Relay og ATM -netværk .

Sammenligning af ARP og InARP

ARP oversætter netværkslagsadresser til linklagsadresser, mens InARP kan ses som dets omvendte. InARP er implementeret som en udvidelse til ARP. Pakkeformaterne for disse protokoller er de samme, kun de operationskoder og felter, der skal udfyldes, er forskellige.

RARP

Reverse Address Resolution Protocol , Reverse ARP eller RARP , ligesom InARP , oversætter linklagsadresser til netværkslagsadresser. Men RARP bruges til at få de logiske adresser på selve afsenderstationerne, mens afsenderen i InARP-protokollen kender sine egne adresser og anmoder om den logiske adresse på en anden station. RARP blev opgivet til fordel for BOOTP , som igen blev erstattet af DHCP .

Sådan virker det

  1. En vært, der skal tilknytte en IP-adresse til en hardwareadresse (Ethernet-hardwareadresse, MAC-adresse ), danner en ARP-anmodning med destinations-IP-adressen, vedhæfter den til en linklagsprotokolramme og udsender den.
  2. Alle værter på det lokale netværkssegment modtager ARP-anmodningen og sammenligner den IP-adresse, der er angivet der, med deres egen.
  3. Hvis dens egen IP-adresse matcher den, der er modtaget i ARP-anmodningen, genererer noden et ARP-svar, hvori den angiver både sin IP-adresse og sin hardwareadresse, og sender den adresseret til hardwareadressen på afsenderen af ​​ARP-anmodningen.

Adresseoversættelse udføres ved at slå korrespondancetabellen op mellem IP- og MAC-adresser. Denne tabel, kaldet ARP-tabellen, er gemt i operativsystemets hukommelse og indeholder indgange for hver vært kendt af den. De to kolonner indeholder IP- og Ethernet-adresserne (MAC). Hvis du vil konvertere en IP-adresse til en MAC, så leder ARP-tabellen efter en post med den tilsvarende IP-adresse.

Eksempel på forenklet ARP-tabel
223.1.2.1 08:00:39:00:2F:C3
223.1.2.3 08:00:5A:21:A7:22
223.1.2.4 08:00:10:99:AC:54

Struktur af en ARP-pakke

Pakkestrukturen, der bruges i ARP-anmodninger og -svar, er illustreret nedenfor. På Ethernet -netværk bruger disse pakker EtherType 0x0806, og anmodninger sendes til broadcast- MAC-adressen  - FF:FF:FF:FF:FF:FF. Bemærk, at i pakkestrukturen vist nedenfor, bruges 32- bit ord konventionelt som SHA, SPA, THA og TPA - den faktiske længde bestemmes af den fysiske enhed og protokol.

+ bit 0-7 8 - 15 16 - 31
0 Hardwaretype (HTYPE) Protokoltype (PTYPE)
32 hardwarelængde (HLEN) Protokollængde (PLEN) Betjening (OPER)
64 Afsenderhardwareadresse (SHA)
? Afsenderprotokoladresse (SPA)
? Målhardwareadresse (THA)
? Målprotokoladresse (TPA)
Hardwaretype (HTYPE) Hver kanaldataoverførselsprotokol har sit eget nummer, som er gemt i dette felt. For eksempel er Ethernet nummereret 0x0001. Protokoltype (PTYPE) Netværksprotokolkode. For IPv4 vil f.eks. 0x0800 blive skrevet. hardwarelængde (HLEN) Længden af ​​den fysiske adresse i bytes. Ethernet-adresser er 6 byte lange (0x06). Protokollængde (PLEN) Længden af ​​den logiske adresse i bytes. IPv4-adresser er 4 byte lange (0x04). operation Afsenderens opkode: 0x0001 for en anmodning og 0x0002 for et svar. Afsenderhardwareadresse (SHA) Afsenderens fysiske adresse. Afsenderprotokoladresse (SPA) Afsenderens logiske adresse. Målhardwareadresse (THA) Modtagerens fysiske adresse. Ikke påkrævet efter anmodning. Målprotokoladresse (TPA) Den logiske adresse på modtageren.

Eksempel på anmodning

Hvis en vært med IPv4-adresse 10.10.10.123 og MAC-adresse 00:0D:9D:86:59:E2 ønsker at sende en pakke til en anden vært med adresse 10.10.10.140, men ikke kender sin MAC-adresse, skal den sende en ARP anmodning om at løse adressen.

Pakken vist nedenfor repræsenterer en udsendelsesanmodning. Hvis værten med IP 10.10.10.140 er til stede på netværket og tilgængelig, så modtager den denne ARP-anmodning og returnerer et svar.

bit 0-7 8 - 15 16 - 31
0 hardwaretype = 0x0001 protokoltype = 0x0800
32 Hardwarelængde = 0x06 protokollængde = 0x04 Operation = 0x0001
64 SHA (første 32 bit) = 0x000D9D86
96 SHA (sidste 16 bit) = 0x59E2 SPA (første 16 bit) = 0x0A0A
128 SPA (sidste 16 bit) = 0x0A7B THA (første 16 bit) = 0x0000
160 THA (sidste 32 bit) = 0x00000000
192 TPA=0x0A0A0A8C

Svareksempel

I situationen beskrevet ovenfor, hvis noden med adressen 10.10.10.140 har en MAC-adresse på 00:09:58:D8:33:AA, vil den sende pakken, der er illustreret nedenfor, tilbage. Bemærk, at afsender- og modtageradresseblokkene nu har ændret værdier (afsenderen af ​​svaret er nu modtageren af ​​anmodningen; modtageren af ​​svaret er afsenderen af ​​anmodningen). Svaret har også en værts-MAC-adresse på 10.10.10.140 i feltet for den fysiske kildeadresse (SHA), og THA-feltet er ikke tomt (unicast-svar).

Enhver vært på samme netværk som afsender og modtager vil også modtage anmodningen (fordi det er en udsendelse) og dermed tilføje information om afsenderen til sin cache. ARP-svaret er kun rettet til oprindelsen af ​​ARP-anmodningen, så ARP-svaret er ikke tilgængeligt for andre værter på netværket.

+ bit 0-7 8 - 15 16 - 31
0 hardwaretype = 0x0001 protokoltype = 0x0800
32 Hardwarelængde = 0x06 protokollængde = 0x04 Operation = 0x0002
64 SHA (første 32 bit) = 0x000958D8
96 SHA (sidste 16 bit) = 0x33AA SPA (første 16 bit) = 0x0A0A
128 SPA (sidste 16 bit) = 0x0A8C THA (første 16 bit) = 0x000D
160 THA (sidste 32 bit) = 0x9D8659E2
192 TPA=0x0A0A0A7B
  • Kommentar. Længden af ​​felterne SHA, SPA, THA, TPA afhænger af henholdsvis hardwarelængde- og protokollængdeparametrene.

ARP-cache

Effektiviteten af ​​ARP afhænger i høj grad af den ARP-cache ( ARP-cache ), der er tilgængelig på hver vært. Cachen indeholder en korrespondancetabel mellem MAC- og IP-adresser kompileret af operativsystemet.

Levetiden for en cachepost er overladt til udviklerens skøn. Standarden kan være fra titusinder af sekunder (f.eks. 20 sekunder) til fire timer ( Cisco IOS ). [3]

Registrering af adressekonflikt

ARP kan bruges til at detektere IP-adressekonflikter på et lokalt netværk. RFC 5227 definerer et ARP Probe - anmodningsformat med et SPA - felt helt nul (IP-adresse 0.0.0.0). Før du tildeler en IP-adresse til en grænseflade, KAN en vært verificere, at adressen ikke er i brug af en anden vært på LAN-segmentet.

ARP-meddelelse

En ARP- meddelelse er en pakke (normalt en ARP-anmodning [4] ), der indeholder den korrekte SHA og SPA for den afsendende vært, med en TPA lig med SPA. Dette er ikke en anmodning om tilladelse, men en anmodning om at opdatere ARP-cachen for andre værter, der modtager pakken.

De fleste operativsystemer sender sådan en pakke, når en vært kommer online, hvilket hjælper med at forhindre en række problemer. For eksempel, når netværkskortet ændres (når tilknytningen mellem IP- og MAC-adresser skal opdateres), vil en sådan anmodning rette indtastningerne i ARP-cachen på andre værter på netværket.

ARP-advarsler bruges også til at "sikre" IP-adresser i Zeroconf -protokollen , beskrevet i RFC 3927 .

Frivillig anmodning ARP (Gratuitous ARP)

Et særligt tilfælde af en ARP-anmodning er en anmodning om ens egen IP-adresse, det kaldes " Gratuitous ARP " (frivillig ARP-anmodning) [5] .

I en sådan anmodning er IP-adresserne på afsender og modtager de samme.

Gratis ARP bruges til to formål [5] :

  1. meddelelse om tilstødende enheder om, at en ny IP-adresse er dukket op i netværkssegmentet;
  2. kontrol af ledigheden af ​​IP-adressen (om den bruges af en anden enhed).

Se også

Noter

  1. Se ARP-cachen (Address Resolution Protocol)  : [ eng. ]  : [ bue. 25. februar 2021 ] // MSDN. - 2009. - 8. oktober.
  2. TCP/IP over ATM  : [ eng. ]  : [ bue. 9. februar 2022 ]. — IBM .
  3. Embedded System Testing Blog: ARP Timeout Value for Linux, Windows, Cisco 2960 og DELL Switch . Hentet 8. november 2013. Arkiveret fra originalen 21. september 2013.
  4. Re: [dhcwg] Vederlagsfri ARP i DHCP vs. IPv4 ACD-udkast Arkiveret fra originalen den 12. oktober 2007.
  5. 12 ZvonDozvon . _

Litteratur

  •   RFC 826 :  Address Resolution Protocol
  •   RFC 1577 :  Klassisk IP og ARP over ATM
  •   RFC 2390 :  Inverse Address Resolution Protocol
  •   RFC 5227 :  Registrering af IPv4-adressekonflikt

Links