ARP - Address Resolution Protocol
Was ist ARP?
ARP (Address Resolution Protocol) ist ein Netzwerkprotokoll, das dafΓΌr zustΓ€ndig ist herauszufinden, welche GerΓ€te im lokalen Netzwerk erreichbar sind und wo sie sich befinden. Das Protokoll lΓΆst IP-Adressen in MAC-Adressen auf, damit die Kommunikation auf Layer 2 (Data Link Layer) stattfinden kann.
Funktionsweise von ARP
Das Problem ohne ARP
PC A (192.168.1.10)
βββββββββββββββββββ
β "Ich mΓΆchte mit β
β 192.168.1.20 β
β kommunizieren" β
β β
β β Aber welche β
β MAC-Adresse hat β
β dieses GerΓ€t? β
βββββββββββββββββββ
ARP Request (Broadcast)
Wenn ein PC mit einem anderen GerΓ€t kommunizieren mΓΆchte, sendet er einen ARP Request als Broadcast an alle GerΓ€te im lokalen Netzwerk:
Netzwerk: 192.168.1.0/24
PC A Switch PC B
βββββββββββ βββββββββββ βββββββββββ
β192.168. β β β β192.168. β
β1.10 β β β β1.20 β
βMAC: β β β βMAC: β
βAA:BB:CC ββββββββββββββ€ βββββββββββββββββDD:EE:FF β
β β β β β β
βββββββββββ βββββββββββ βββββββββββ
β β
β ARP Request (Broadcast) β
β "Wer hat IP 192.168.1.20?" β
βββββββββββββββββββββββββββββββββββββββββββββββββ€
β Destination MAC: FF:FF:FF:FF:FF:FF β
β Source MAC: AA:BB:CC:DD:EE:FF β
β Target IP: 192.168.1.20 β
β Sender IP: 192.168.1.10 β
ARP Reply (Unicast)
Das ZielgerΓ€t antwortet mit einem ARP Reply direkt an den Absender:
PC A Switch PC B
βββββββββββ βββββββββββ βββββββββββ
β192.168. β β β β192.168. β
β1.10 β β β β1.20 β
βMAC: β β β βMAC: β
βAA:BB:CC βββββββββββββ€ βββββββββββββββββDD:EE:FF β
β β β β β β
βββββββββββ βββββββββββ βββββββββββ
β β
β ARP Reply (Unicast) β
β "Ich bin 192.168.1.20!" β
βββββββββββββββββββββββββββββββββββββββββββββββββ€
β Destination MAC: AA:BB:CC:DD:EE:FF β
β Source MAC: DD:EE:FF:GG:HH:II β
β Target IP: 192.168.1.10 β
β Sender IP: 192.168.1.20 β
ARP-Tabelle (ARP Cache)
Nach dem ARP-Austausch speichert jeder PC die gelernten Zuordnungen in seiner ARP-Tabelle:
PC A's ARP-Tabelle
βββββββββββββββββββ¬ββββββββββββββββββββ¬ββββββββββββββββββ
β IP-Adresse β MAC-Adresse β Typ β
βββββββββββββββββββΌββββββββββββββββββββΌββββββββββββββββββ€
β 192.168.1.1 β 11:22:33:44:55:66 β Dynamisch β
β 192.168.1.20 β DD:EE:FF:GG:HH:II β Dynamisch β
β 192.168.1.30 β 99:AA:BB:CC:DD:EE β Dynamisch β
βββββββββββββββββββ΄ββββββββββββββββββββ΄ββββββββββββββββββ
ARP-Prozess im Detail
Schritt 1: IP-Paket soll versendet werden
βββββββββββββββββββββββββββββββββββββββ
β Anwendung mΓΆchte Daten an β
β 192.168.1.20 senden β
βββββββββββββββββββββββββββββββββββββββ
β
βΌ
Schritt 2: ARP-Tabelle prΓΌfen
βββββββββββββββββββββββββββββββββββββββ
β Ist MAC-Adresse fΓΌr 192.168.1.20 β
β bereits bekannt? β
βββββββββββββββββββββββββββββββββββββββ
β β
JA β β NEIN
βΌ βΌ
βββββββββββββββββββββββ βββββββββββββββββββββββ
β Paket direkt β β ARP Request senden β
β versenden β β (Broadcast) β
βββββββββββββββββββββββ βββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββ
β ARP Reply empfangen β
β MAC-Adresse lernen β
βββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββ
β ARP-Tabelle β
β aktualisieren β
βββββββββββββββββββββββ
β
βΌ
βββββββββββββββββββββββ
β Paket versenden β
βββββββββββββββββββββββ
Verschiedene ARP-Typen
1. Standard ARP (IPv4)
- LΓΆst IPv4-Adressen in MAC-Adressen auf
- Funktioniert nur im lokalen Netzwerksegment
2. Proxy ARP
Netzwerk A Router Netzwerk B
192.168.1.0/24 (Proxy ARP) 192.168.2.0/24
PC A βββββββββββββ Router βββββββββββββ PC B
192.168.1.10 192.168.1.1 192.168.2.10
192.168.2.1
PC A fragt: "Wer hat 192.168.2.10?"
Router antwortet: "Ich!" (mit seiner MAC-Adresse)
3. Gratuitous ARP
PC sendet ARP Request fΓΌr seine EIGENE IP-Adresse
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β Zweck: β
β β’ IP-Duplikate erkennen β
β β’ ARP-Tabellen anderer GerΓ€te aktualisieren β
β β’ Nach IP-Γnderung das Netzwerk informieren β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
ARP-Sicherheitsprobleme
ARP Spoofing/Poisoning
Normaler Betrieb:
PC A βββββββββ Switch βββββββ PC B
ARP: "B = MAC:DD:EE:FF"
Angriff durch Attacker:
PC A βββββββββ Switch βββββββ PC B
β β
β ARP Reply β
β "B = MAC: β
ββ 99:88:77" β
(Falsch!) β
β
[Attacker]
MAC: 99:88:77
ARP-Befehle (Windows/Linux)
ARP-Tabelle anzeigen
# Windows
arp -a
# Linux
arp -a
ip neighbor show
ARP-Eintrag hinzufΓΌgen
# Windows
arp -s 192.168.1.20 dd-ee-ff-gg-hh-ii
# Linux
arp -s 192.168.1.20 dd:ee:ff:gg:hh:ii
ARP-Cache leeren
# Windows
arp -d *
# Linux
ip neighbor flush all
Zusammenfassung
Aspekt | Beschreibung |
---|---|
Zweck | IP-Adressen in MAC-Adressen auflΓΆsen |
Bereich | Nur lokales Netzwerksegment |
Methode | Broadcast Request, Unicast Reply |
Cache | TemporΓ€re Speicherung der Zuordnungen |
Sicherheit | AnfΓ€llig fΓΌr Spoofing-Angriffe |
Protokoll-Layer | Layer ⅔ Γbergang |
ARP ist ein essentielles Protokoll fΓΌr die Ethernet-Kommunikation und ermΓΆglicht es GerΓ€ten, sich im lokalen Netzwerk zu finden und miteinander zu kommunizieren.