6 Zwischen Layer 2 und 3: Adressauflösungsprotokolle

6.1 Einführung: Die Brücke zwischen logischer und physischer Adressierung

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.

6.2 Address Resolution Protocol (ARP)

ARP ist das grundlegende Protokoll zur Auflösung von IPv4-Adressen in MAC-Adressen in Ethernet-Netzwerken.

6.2.1 Funktionsprinzip von ARP

  1. Ein Gerät möchte ein IP-Paket an ein Ziel im selben Netzwerk senden, kennt aber nur dessen IP-Adresse
  2. Das Gerät prüft zuerst seinen lokalen ARP-Cache nach einem bestehenden Eintrag
  3. Falls kein Eintrag vorhanden ist, sendet es einen ARP-Request als Broadcast (FF:FF:FF:FF:FF:FF)
  4. Der ARP-Request fragt: “Wer hat die IP-Adresse x.x.x.x?”
  5. Das Gerät mit der gesuchten IP-Adresse antwortet mit einem ARP-Reply, der seine MAC-Adresse enthält
  6. Der Absender speichert die IP-MAC-Zuordnung in seinem ARP-Cache und kann nun das Paket direkt senden

6.2.2 ARP-Paketformat

Ein ARP-Paket besteht aus folgenden Feldern:

6.2.3 ARP-Cache

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

6.2.4 Praktische Beispiele mit ARP

6.2.4.1 ARP-Cache anzeigen (Betriebssystembeispiele)

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

6.2.4.2 ARP-Request und -Reply mit Wireshark analysieren

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

6.2.5 ARP-Sicherheitsprobleme

6.2.5.1 ARP-Spoofing/ARP-Poisoning

Angreifer senden gefälschte ARP-Nachrichten, um den Traffic umzuleiten:

  1. Angreifer (192.168.1.100) sendet gefälschte ARP-Replies an Opfer (192.168.1.10)
  2. Die gefälschten Replies behaupten, dass die MAC-Adresse des Gateways (192.168.1.1) die MAC-Adresse des Angreifers ist
  3. Das Opfer sendet Traffic zum Gateway nun an den Angreifer

Schutzmaßnahmen:

6.3 Neighbor Discovery Protocol (NDP) für IPv6

NDP ist das Äquivalent zu ARP in IPv6-Netzwerken, bietet jedoch mehr Funktionen.

6.3.1 Hauptfunktionen von NDP

  1. Adressauflösung: Umwandlung von IPv6-Adressen in MAC-Adressen
  2. Router Discovery: Automatisches Auffinden von Routern im Netzwerk
  3. Prefix Discovery: Ermittlung von Netzwerkpräfixen
  4. Parameter Discovery: Ermittlung von Netzwerkparametern
  5. Adresskonfiguration: Automatische Konfiguration von IPv6-Adressen
  6. Next-Hop-Bestimmung: Ermittlung des nächsten Routers für ein Paket
  7. Neighbor Unreachability Detection (NUD): Überprüfung der Erreichbarkeit von Nachbarn
  8. Duplicate Address Detection (DAD): Vermeidung von IPv6-Adresskonflikten

6.3.2 NDP-Nachrichtentypen

NDP verwendet ICMPv6-Nachrichten für seine Funktionen:

  1. Router Solicitation (RS): Host fordert Router-Informationen an
  2. Router Advertisement (RA): Router sendet Informationen an Hosts
  3. Neighbor Solicitation (NS): Ähnlich dem ARP-Request, fragt nach MAC-Adresse eines Nachbarn
  4. Neighbor Advertisement (NA): Antwort auf NS, enthält MAC-Adresse
  5. Redirect: Router informiert Host über besseren Pfad zu einem Ziel

6.3.3 Neighbor Cache in IPv6

Ä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

6.3.4 Praktische Beispiele mit NDP

6.3.4.1 Neighbor Cache anzeigen

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

6.4 Inverse ARP (InARP) und Reverse ARP (RARP)

6.4.1 Inverse ARP (InARP)

6.4.2 Reverse ARP (RARP)

6.5 Gratuitous ARP

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

6.6 Proxy ARP

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:

6.7 ARP und Routing

6.7.1 ARP in Router-Umgebungen

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

6.7.2 Next-Hop-Resolution

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

6.8 Praktische Fehlerbehebung

6.8.1 ARP-bezogene Probleme erkennen und beheben

  1. IP-Adresskonflikte:

  2. ARP-Cache-Probleme:

    Linux:

    $ sudo ip neigh flush all

    Windows:

    C:\> netsh interface ip delete arpcache
  3. ARP-Spoofing erkennen: