In Netzwerken existiert eine entscheidende Funktionslücke zwischen der Vermittlungsschicht (Layer 3) und der Sicherungsschicht (Layer 2). Layer 3 arbeitet mit logischen IP-Adressen für die Kommunikation zwischen verschiedenen Netzwerken, während Layer 2 physische MAC-Adressen für die direkte Kommunikation verwendet. Die Adressauflösungsprotokolle bilden die Brücke zwischen diesen beiden Welten und ermöglichen die Übersetzung zwischen IP- und MAC-Adressen.
ARP ist das grundlegende Protokoll zur Auflösung von IPv4-Adressen in MAC-Adressen in Ethernet-Netzwerken.
Ein ARP-Paket besteht aus folgenden Feldern:
Der ARP-Cache ist eine temporäre Tabelle, die IP-zu-MAC-Adress-Zuordnungen speichert:
Beispiel eines ARP-Cache-Eintrags:
IP-Adresse MAC-Adresse Typ Interface
192.168.1.1 00:1A:2B:3C:4D:5E dynamisch eth0
192.168.1.100 00:11:22:33:44:55 statisch eth0
Linux/Unix:
$ arp -a
? (192.168.1.1) at 00:1a:2b:3c:4d:5e [ether] on eth0
? (192.168.1.5) at 00:de:ad:be:ef:00 [ether] on eth0
Windows:
C:\> arp -a
Interface: 192.168.1.10 --- 0x4
Internet Address Physical Address Type
192.168.1.1 00-1a-2b-3c-4d-5e dynamic
192.168.1.5 00-de-ad-be-ef-00 dynamic
Ein typischer ARP-Request:
Ethernet II, Src: 00:11:22:33:44:55, Dst: ff:ff:ff:ff:ff:ff
Address Resolution Protocol (request)
Hardware type: Ethernet (1)
Protocol type: IPv4 (0x0800)
Hardware size: 6
Protocol size: 4
Opcode: request (1)
Sender MAC address: 00:11:22:33:44:55
Sender IP address: 192.168.1.10
Target MAC address: 00:00:00:00:00:00
Target IP address: 192.168.1.1
Der entsprechende ARP-Reply:
Ethernet II, Src: 00:1a:2b:3c:4d:5e, Dst: 00:11:22:33:44:55
Address Resolution Protocol (reply)
Hardware type: Ethernet (1)
Protocol type: IPv4 (0x0800)
Hardware size: 6
Protocol size: 4
Opcode: reply (2)
Sender MAC address: 00:1a:2b:3c:4d:5e
Sender IP address: 192.168.1.1
Target MAC address: 00:11:22:33:44:55
Target IP address: 192.168.1.10
Angreifer senden gefälschte ARP-Nachrichten, um den Traffic umzuleiten:
Schutzmaßnahmen:
NDP ist das Äquivalent zu ARP in IPv6-Netzwerken, bietet jedoch mehr Funktionen.
NDP verwendet ICMPv6-Nachrichten für seine Funktionen:
Ähnlich dem ARP-Cache speichert der Neighbor Cache IPv6-zu-MAC-Zuordnungen mit zusätzlichen Zustandsinformationen:
Beispiel eines Neighbor Cache-Eintrags:
IPv6-Adresse MAC-Adresse Status Interface
fe80::1a2b:3c4d:5e6f 00:1A:2B:3C:4D:5E REACHABLE eth0
2001:db8::100 00:11:22:33:44:55 STALE eth0
Linux:
$ ip -6 neigh show
fe80::1a2b:3c4d:5e6f dev eth0 lladdr 00:1a:2b:3c:4d:5e REACHABLE
2001:db8::100 dev eth0 lladdr 00:11:22:33:44:55 STALE
Windows:
C:\> netsh interface ipv6 show neighbors
Interface 4: Ethernet
Internet Address Physical Address Type
-------------------------------------------- ----------------- -----------
fe80::1a2b:3c4d:5e6f 00-1a-2b-3c-4d-5e Stale
2001:db8::100 00-11-22-33-44-55 Stale
Ein Gratuitous ARP ist ein ARP-Paket, bei dem Sender- und Ziel-IP-Adresse identisch sind.
Verwendungszwecke: 1. Duplizierte IP-Adressen erkennen: Wenn ein anderes Gerät antwortet, gibt es einen IP-Konflikt 2. ARP-Caches aktualisieren: Nach Änderung der MAC-Adresse (z.B. nach Netzwerkkartentausch) 3. Hochverfügbarkeit: Bei Failover-Szenarien, wenn ein Backup-System eine IP-Adresse übernimmt
Proxy ARP ermöglicht einem Router, ARP-Requests für Hosts in anderen Netzwerken zu beantworten.
Funktionsweise: 1. Host A sendet ARP-Request für Host B, der sich in einem anderen Netzwerk befindet 2. Router mit aktiviertem Proxy ARP antwortet mit seiner eigenen MAC-Adresse 3. Host A sendet Pakete für Host B an den Router 4. Router leitet die Pakete an Host B weiter
Anwendungsfälle:
Nachteile:
Wenn ein Host ein Paket an ein Ziel in einem anderen Netzwerk senden möchte: 1. Host prüft seine Routing-Tabelle und bestimmt, dass das Paket an den Default-Gateway gesendet werden muss 2. Host verwendet ARP, um die MAC-Adresse des Gateways zu ermitteln 3. Host sendet das Paket an die MAC-Adresse des Gateways, aber mit der Ziel-IP des endgültigen Empfängers
Wenn ein Router ein Paket weiterleiten soll: 1. Router bestimmt anhand seiner Routing-Tabelle den Next-Hop-Router oder das Zielnetzwerk 2. Router verwendet ARP, um die MAC-Adresse des Next-Hop zu ermitteln 3. Router sendet das Paket an die MAC-Adresse des Next-Hop, aber mit der ursprünglichen Ziel-IP
IP-Adresskonflikte:
ARP-Cache-Probleme:
Linux:
$ sudo ip neigh flush all
Windows:
C:\> netsh interface ip delete arpcacheARP-Spoofing erkennen: