orm@doc-tcpip.org

Erstellt: Mai 2001 - Letzte Modifikation: Mai 2001

[ Main | Local ]


Address Resolution Protocol

ARP im Trace


ARP Paket Format

Auf einem Ethernet sieht das ARP-Paket so aus:
0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     Ethernet Destination Address (6 Byte)                     |
+---------------+---------------+---------------+---------------+
|                               |      Ethernet Source          |
+-------------------------------+-------------------------------+
| Frame Type (ARP, 0x0806)      | HW Address Format (Ether 0x1) |
+-------------------------------+-------------------------------+
| Prot-Addr Format(IP 0x0800)   |  HW Länge: 6  | Prot-Länge: 4 |
+-------------------------------+-------------------------------+
| Op-Code: Req. 1, Rep. 2       |          HW Adresse des       |
+-------------------------------+-------------------------------+
|            Senders (Ethernetadresse) (6 Byte)                 |
+---------------------------------------------------------------+
|      Protokoll Adresse des Senders (IP Adresse) (4 Byte)      |
+---------------------------------------------------------------+
|                 HW Adresse des Zieles                         |
+---------------------------------------------------------------+
|  (Ethernetadresse) (6 Byte)   |      Protokoll Adresse des    |
+---------------------------------------------------------------+
| Zieles (IP Adresse)  (4 Byte) |
+-------------------------------+
Bei einem ARP-Request ist die gesuchte Ziel-Adresse leer (Null). Im ARP-Reply wird die Ziel-Adresse eingetragen, beide Blöcke werden vertauscht und der Op-Code wird angepasst. Dann kommt das Paket auf den Draht.

Das ganze im Trace

Die beiden Maschinen sind auf einem Token-Ring Netz. Der Trace ist unter AIX mit dem iptrace-Kommando aufgenommen. Hier das erste Paket, der ARP Request (Operation Type: Request).

Es wird festgelegt, welcher HW Typ es ist, das definiert den Format der MAC Adresse. Dann kommt MAC und IP des Senders, gefolgt von der gesuchten MAC in nur Nullen, mit der zugehörigen IP Adresse.


Packet Number 389
TOK: ====( 52 bytes transmitted on interface tr0 )==== 13:43:38.792629944
TOK: 00000000     0040ffff ffffffff 800629b9 503f8240     |.@........).P?.@|
TOK: 00000010     aaaa0300 00000806 00060800 06040001     |................|
TOK: 00000020     000629b9 503f0927 004a0000 00000000     |..).P?.'.J......|
TOK: 00000030     0927004d                                |.'.M            |
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 0, frame control field = 40
TOK: [ src = 80:06:29:b9:50:3f, dst = ff:ff:ff:ff:ff:ff]
TOK: routing control field = 8240,  0 routing segments
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 806 (ARP)
ARP: hardware address format = 6 (802.3, 802.5)
ARP: protocol address format = 800 (IP)
ARP: address lengths ; hardware = 6, protocol = 4
ARP: arp operation = 1 (request)
ARP: source addresses: hw [00:06:29:b9:50:3f]
ARP:             protocol [9.39.0.74]
ARP: target addresses: hw [00:00:00:00:00:00]
ARP:             protocol [9.39.0.77]

Das ganze nochmal. Warum?
Nun, die erste Zeile jedes Paketes zeigt:
Packet Number 389: 52 bytes transmitted on interface tr0
Packet Number 390: 52 bytes received on interface tr0
Es ist also unser eigener Broadcast, den wir nun nochmal hören.


Packet Number 390
TOK: ====( 52 bytes received on interface tr0 )==== 13:43:38.792840930
TOK: 00000000     1840ffff ffffffff 800629b9 503f8240     |.@........).P?.@|
TOK: 00000010     aaaa0300 00000806 00060800 06040001     |................|
TOK: 00000020     000629b9 503f0927 004a0000 00000000     |..).P?.'.J......|
TOK: 00000030     0927004d                                |.'.M            |
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 18, frame control field = 40
TOK: [ src = 80:06:29:b9:50:3f, dst = ff:ff:ff:ff:ff:ff]
TOK: routing control field = 8240,  0 routing segments
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 806 (ARP)
ARP: hardware address format = 6 (802.3, 802.5)
ARP: protocol address format = 800 (IP)
ARP: address lengths ; hardware = 6, protocol = 4
ARP: arp operation = 1 (request)
ARP: source addresses: hw [00:06:29:b9:50:3f]
ARP:             protocol [9.39.0.74]
ARP: target addresses: hw [00:00:00:00:00:00]
ARP:             protocol [9.39.0.77]

Und jetzt die Antwort (Operation Type: Reply).
Die gewünschte Adresse ist jetzt eingetragen. Und das Paket wird dem Sender direkt zugeschickt.


Packet Number 391
TOK: ====( 50 bytes received on interface tr0 )==== 13:43:38.793602490
TOK: 00000000     18400006 29b9503f 08005ae8 bd60aaaa     |.@..).P?..Z..`..|
TOK: 00000010     03000000 08060006 08000604 00020800     |................|
TOK: 00000020     5ae8bd60 0927004d 000629b9 503f0927     |Z..`.'.M..).P?.'|
TOK: 00000030     004a                                    |.J              |
TOK: 802.5 packet
TOK: 802.5 MAC header:
TOK: access control field = 18, frame control field = 40
TOK: [ src = 08:00:5a:e8:bd:60, dst = 00:06:29:b9:50:3f]
TOK: 802.2 LLC header:
TOK: dsap aa, ssap aa, ctrl 3, proto 0:0:0, type 806 (ARP)
ARP: hardware address format = 6 (802.3, 802.5)
ARP: protocol address format = 800 (IP)
ARP: address lengths ; hardware = 6, protocol = 4
ARP: arp operation = 2 (reply)
ARP: source addresses: hw [08:00:5a:e8:bd:60]
ARP:             protocol [9.39.0.77]
ARP: target addresses: hw [00:06:29:b9:50:3f]
ARP:             protocol [9.39.0.74]

Thats it.....


[ Main | Local ]

[ Allgemein | UNIX | AIX | TCP-IP | TCP | ROUTING | DNS | NTP | NFS | FreeBSD | Linux | SMTP | Tracing | GPS ]

Copyright 2001-2014 by Orm Hager - Es gilt die GPL
Feedback bitte an: Orm Hager (orm@doc-tcpip.org )