Address Resolution Protocol

Från Rilpedia

Version från den 23 februari 2009 kl. 11.17 av ArthurBot (Diskussion)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)
Hoppa till: navigering, sök
Wikipedia_letter_w.pngTexten från svenska WikipediaWikipedialogo_12pt.gif
rpsv.header.diskuteraikon2.gif
Protokollstack för IP-nätverk
IP-skikt Protokoll
5.Applikation BitTorrent, DHCP, DNS, FTP, HTTP, IMAP, IRC, NNTP, POP3, SIP, SMTP, SNMP, SSH, Telnet,TLS, SSL , TFTP, …
4.Transport DCCP, SCTP, TCP, RTP, UDP, IL, RUDP, …
3.Nätverk ARP, ICMP, IGMP, IP (IPv4, IPv6),RIP
2.Länk ATM, Ethernet, FDDI, ISDN, MPLS, Token Ring, PPP, SLIP, Wi-Fi, …
1.Fysiska ISDN, RS232, IrDA, Bluetooth, xDSL, …

ARP är en förkortning för "Address Resolution Protocol". Protokollet används för att koppla samman en IP-adress med en MAC-adress. ARP brukar anses som ett nätverksprotokoll, och är "klistret" mellan nätverk- och länklagret i OSI-modellen.

Ett nätverkskort, exempelvis för ethernet, är en nivå 2-utrustning som kan skicka ramar (frames) från en nod till en annan. Alla noder är adresserbara genom sina MAC-adresser. Den fysiska signaleringen från nod till nod utgår alltså från dessa MAC-adresser, medan applikationerna som kommunicerar använder sig av IP-adresser. För att detta skall ske måste alltså en nod mappa mottagarens IP-adress till mottagarens MAC-adress.

Innehåll

Hur ARP fungerar

En ARP-förfrågan (ARP-request) frågar i princip "Vem har IP-adress x.x.x.x" och är en nivå-2 broadcast med den egna nodens MAC-adress som avsändaradress. Noden med IP-adress x.x.x.x svarar med en unicast tillbaka.

ARP-trafik loggad med tcpdump kan se ut så här:

[root@teacher ~]# tcpdump -ennqti eth0 \( arp or icmp \)
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
00:19:5b:4c:2c:5A > ff:ff:ff:ff:ff:ff, ARP, length 60: arp who-has 192.168.10.179 (ff:ff:ff:ff:ff:ff) tell 192.168.10.1
00:14:22:52:6b:03 > 00:19:5b:4c:2c:59, ARP, length 42: arp reply 192.168.10.179 is-at 00:14:22:52:6b:03
00:14:22:52:6b:03 > ff:ff:ff:ff:ff:ff, ARP, length 42: arp who-has 192.168.10.31 tell 192.168.10.179
00:40:8c:55:70:9c > 00:14:22:52:6b:03, ARP, length 60: arp reply 192.168.10.31 is-at 00:40:8c:55:70:9c

Först kommer det en fråga ("who-has") från värden med ip-adress 192.168.10.1 som skickats till broadcastadressen ff:ff:ff:ff:ff:ff. Den kommer att uppfattas av alla noder inom broadcastdomänen. Den dator på vilken loggningen sker är efterfrågad och svarar därför (reply). Alla andra datorer ignorerar denna förfrågan.

Andra exemplet är hur den loggande datorn skickar en fråga efter MAC-adressen som motsvarar ip 192.168.10.31 och får svar från noden med MAC-adress 00:40:8c:55:70:9c.

ARP-tabeller

För att slippa göra en ARP-förfrågan för varje paket som ska skickas cachar operativsystemet resultatet i en tabell. På många operativsystem finns kommandot arp för att visa och manipulera arp-cachen. Exempelvis listar arp -a cachen och arp -d raderar cachen.

[root@teacher ~]# arp -a
gw (192.168.10.1) at 00:19:5B:4C:2C:5A [ether] on eth0
server (192.168.10.11) at 00:30:05:C7:D4:04 [ether] on eth0
? (192.168.10.31) at 00:40:8C:55:70:9C [ether] on eth0

Tag bort värden gw från tabllen:

[root@teacher ~]# arp -d gw

Ny tabell:

[root@teacher ~]# arp -a
gw (192.168.10.1) at <incomplete> on eth0
server (192.168.10.11) at 00:30:05:C7:D4:04 [ether] on eth0
? (192.168.10.31) at 00:40:8C:55:70:9C [ether] on eth0

ARP och routning

ARP används i 4 fall när två noder vill kommunicera.

  1. När två noder är på samma nätverk och vill kommunicera
  2. När två noder är på olika nätverk och behöver använda sig utav en router för att nå den andra noden.
  3. När en router behöver vidarebefordra ett paket åt en nod genom en annan router.
  4. När en router behöver vidarebefordra ett paket från en nod till en annan på samma nätverk.

Första fallet används när två noder är på samma subnät ( dvs, de kan kommunicera med varandra utan att gå igenom en router). De 3 sista fallen används oftast över internet eftersom två datorer på internet är separerade längre än 3 hops.

I första fallet, hade du haft två noder på samma nätverk, A och B. Om t.ex Nod A vill skicka ett IPv4 paket till Nod B, då måste Nod A redan ha en ip adress till Nod B. Att den skall kunna sända paketet till Nod B, Nod A måste ha Nod Bs MAC adress. Om den inte känner till MAC adressen hade den skickat en ARP förfrågan efter den Mac Adressen till Nod B och alla andra noder på nätverket, som kan ge den specifika Mac Adressen.

I andra fallet, t.ex, Noderna A och B är på olika nätverks segment, men de finns en router på samma LAN segment som Nod A, som antingen är på samma nätverks segment som Nod B, eller på samma nätverks segment som en annan router som är på samma nätverks segment som Nod B o.s.v. Nod A skulle inte skicka IPv4 paketet till Nod B utan först till den första av dessa routers, routern skulle leta upp Nod B i dess routingtabell för att fastställa Ipv4 adressen till den rätta routern. Då skulle den, om den inte redan känner till routerns MAC adress, använda ARP för att fastställa MAC Adressen

Tredje fallet är liknande de andra; routern skulle leta upp Nod B i dess routingtabell för att faställa IPv4 adressen av nästa router som den ska skicka paket till, och om den inte kände till routerns MAC adress använder den sig utav ARP.

Fjärde fallet liknar de första; Routern har fastställt att Nod B är på samma LAN segment, och om den inte känner till Nod Bs MAC adress använder den sig utav ARP.

InARP

InARP är en akronym för "Inverse Adress Resolution Protocol". Det är ett protokoll som används för att få tag på adresser på nätverksskiktet (t.ex IP-adresser) från en station på datalänkskiktet. Det används främst inom Frame Relay protokollet och ATM nätverk, där en Virtuell Kanals Datalänk adresser fås ibland av Datalänk signalering, de motsvarande adresserna i nätverksskitet måste vara tillgängliga innan man kan använda Virtuella kanaler.

ARP mappar nätverks adresser till datalänk adresser, InARP fungerar på samma sätt men omvänt, dessutom så är InARP implementerat som en utvidgning av ARP.

Se även


Artikeln är, helt eller delvis, en översättning från engelskspråkiga Wikipedia.
Personliga verktyg