Address Resolution Protocol
ARP, Address Resolution Protocol, är ett kommunikationsprotokoll som används för att koppla samman en IP-adress med en MAC-adress. ARP brukar anses som ett nätverksprotokoll, och är förbindelsen 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 associera mottagarens IP-adress med mottagarens MAC-adress. Hur ARP fungerarEn 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:5A, 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-tabellerFö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 tabellen: [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 routningARP används i fyra fall när noder vill kommunicera:
InARPInARP ä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 (till exempel 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ätverksskiktet 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
Källor
|