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 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Byte | 1 | 2 | ||||||||||||||
1 | Maskinvaretype (HTYPE) (2 bytes) | |||||||||||||||
3 | Protokolltype (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) | Protokolladresselengde (PLEN) (1 byte)
| ||||||||||||||
7 | Operasjon (OPER) (2 bytes) | |||||||||||||||
9 | Avsenders 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 | ||||||||||||||||
15 | Avsenders protokolladresse (SPA) (4 bytes) Avsenders IPv4-adresse . | |||||||||||||||
17 | ||||||||||||||||
19 | Mottakers 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 | ||||||||||||||||
25 | Mottakers 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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
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 -?.