Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

TDAT2004 Datakommunikasjon med nettverksprogrammering
Oppgave 50: arp
Av Roger Rambjør Holten

1. Innledning

ARP (Address Resolution Protocol) er en protokoll som brukes for å finne en nodes MAC-adresse ut fra en IPv4-adresse. Dette er en viktig funksjon på et ethernettverk da noder kommuniserer med hverandre via MAC-adresser. IPv6 bruker Neighbor Discovery Protocol.

2. Protokollens virkemåte

Når en node A skal kommunisere med node B på samme subnett, så vil den sende ut en ARP-forespørsel på nettverket. Denne sendes som en broadcast-pakke med MAC-adresse ff:ff:ff:ff:ff:ff. Forespørselen inneholder IPv4-adressen til node B. Node B vil deretter sende et svar som inneholder dennes MAC-adresse og kommunikasjon kan begynne.

 

ARP-pakke for IPv4
Byte12
1

Maskinvaretype (HTYPE) (2 bytes)
Definerer nettverkstype. Settes til 1 for ethernet og MAC-adresser. 

3Protokolltype (PTYPE) (2 bytes)
Settes til hex-verdien 0x0800 for IPv4. Kan settes til andre verdier hvis man ikke bruker IP. 
5

Maskinevareadresselengde (HLEN) (1 byte)
Lengde på maskinvareadresse i byte. Dette er MAC-adressen i ethernet og den er 6 byte lang.

Protokolladresselengde (PLEN) (1 byte)
 
Lengden på IPv4-adressen, som er 4 byte.

 

7

Operasjon (OPER) (2 bytes)
Settes til 1 hvis dette er en forespørsel, 2 hvis det er et svar. 

9Avsenders maskinvareadresse (SHA) (6 bytes)
I en forespørsel er dette MAC-adressen til noden som sender forespørselen. I svaret er det MAC-adressen til noden forespørselen gjelder. 
11
13
15Avsenders protokolladresse (SPA) (4 bytes)
Avsenders IPv4-adresse .
17
19Mottakers maskinevareadresse (THA) (6 bytes)
I en forespørsel er denne satt til 00:00:00:00:00:00. I et svar er den satt til MAC-adressen til noden som sendte forespørselen. 
21
23
25Mottakers protokolladresse (TPA) (4 bytes)
IPv4-adressen til mottaker. 
27

3. ARP-kommandoen

Når en node sender ut en forespørsel og får et svar, så vil den lagre dette svaret i en lokal ARP-cache. I flere operativsystem kan man hente ut og modifisere denne cachen ved hjelp av arp-kommandoen. Følgende bruker arp-kommandoen slik den fungerer i Windows.

Kommandoen har en rekke argumenter. De vanligste er som følger:

a viser ARP-tabellen:

Code Block
languagepowershell
C:\WINDOWS\system32>arp -a

Interface: 10.20.203.233 --- 0xf
  Internet Address      Physical Address      Type
  10.20.203.1           84-78-ac-17-f5-c2     dynamic
  10.20.203.255         ff-ff-ff-ff-ff-ff     static
  224.0.0.2             01-00-5e-00-00-02     static
  224.0.0.22            01-00-5e-00-00-16     static
  224.0.0.251           01-00-5e-00-00-fb     static
  224.0.0.252           01-00-5e-00-00-fc     static
  239.255.255.250       01-00-5e-7f-ff-fa     static
  255.255.255.255       ff-ff-ff-ff-ff-ff     static

s lar deg legge til oppføringer manuelt i ARP-tabellen. Denne oppføringen blir lagt til som en statisk adresse (forandrer seg ikke hvis nettverkskortet tar imot motstridende ARP-pakker), men blir slettet ved neste omstart.

Code Block
languagepowershell
C:\WINDOWS\system32>arp -s 10.20.203.250 00-10-20-30-40-50 10.20.203.233

C:\WINDOWS\system32>arp -a

Interface: 10.20.203.233 --- 0xf
  Internet Address      Physical Address      Type
  10.20.203.1           84-78-ac-17-f5-c2     dynamic
  10.20.203.250         00-10-20-30-40-50     static
  10.20.203.255         ff-ff-ff-ff-ff-ff     static
  224.0.0.2             01-00-5e-00-00-02     static
  224.0.0.22            01-00-5e-00-00-16     static
  224.0.0.251           01-00-5e-00-00-fb     static
  224.0.0.252           01-00-5e-00-00-fc     static
  239.255.255.250       01-00-5e-7f-ff-fa     static
  255.255.255.255       ff-ff-ff-ff-ff-ff     static

d sletter oppføringer:

Code Block
languagepowershell
C:\WINDOWS\system32>arp -d 10.20.203.250

C:\WINDOWS\system32>arp -a

Interface: 10.20.203.233 --- 0xf
  Internet Address      Physical Address      Type
  10.20.203.1           84-78-ac-17-f5-c2     dynamic
  10.20.203.255         ff-ff-ff-ff-ff-ff     static
  224.0.0.2             01-00-5e-00-00-02     static
  224.0.0.22            01-00-5e-00-00-16     static
  224.0.0.251           01-00-5e-00-00-fb     static
  224.0.0.252           01-00-5e-00-00-fc     static
  239.255.255.250       01-00-5e-7f-ff-fa     static
  255.255.255.255       ff-ff-ff-ff-ff-ff     static

Fullstendig kommer opp ved å skrive arp -?.