Snooping für zustandslose IPv6-Adressen-Autokonfiguration (SLAAC)
Grundlegendes zu SLAAC-Snooping
Die dynamische Adresszuweisung ist aufgrund der enormen Vergrößerung des Adressraums gegenüber IPv4 ein wichtiges Merkmal von IPv6. Zusätzlich zur statischen Adressierung bietet IPv6 zwei Optionen für Clients, um Adressen dynamisch abzurufen: DHCPv6 (zustandsbehaftet) und zustandslose automatische Adresskonfiguration (SLAAC).
SLAAC vereinfacht die Verwaltung von IPv6-Adressen durch Plug-and-Play-IP-Konnektivität ohne manuelle Konfiguration der Hosts. SLAAC ermöglicht es einem IPv6-Client, seine eigenen Adressen zu generieren, indem er eine Kombination aus lokal verfügbaren Informationen und Informationen verwendet, die von Routern über das Neighbor Discovery Protocol (NDP) angekündigt werden.
NDP-Nachrichten sind ungesichert, was SLAAC anfällig für Angriffe macht, bei denen Link-Layer-Adressen gefälscht (oder gefälscht) werden. Sie müssen SLAAC-Snooping konfigurieren, um IPv6-Clients mithilfe von SLAAC zu validieren, bevor Sie ihnen den Zugriff auf das Netzwerk gestatten.
SLAAC-Prozess
Der Client beginnt mit der automatischen Konfiguration, indem er eine Link-Local-Adresse für die IPv6-fähige Schnittstelle generiert. Dies geschieht durch die Kombination des angekündigten Link-Local-Präfixes (erste 64 Bit) mit der Schnittstellenkennung (letzte 64 Bit). Die Adresse wird nach folgendem Format generiert: [fe80 (10 Bit) + 0 (54 Bit)] + interface ID (64 Bit).
Vor dem Zuweisen der verbindungslokalen Adresse zu seiner Schnittstelle überprüft der Client die Adresse, indem er die Duplicate Address Detection (DAD) ausführt. DAD sendet eine Neighbor Solicitation-Nachricht, die für die neue Adresse bestimmt ist. Wenn es eine Antwort gibt, ist die Adresse ein Duplikat und der Prozess wird gestoppt. Wenn die Adresse eindeutig ist, wird sie der Schnittstelle zugewiesen.
Um eine globale Adresse zu generieren, sendet der Client eine Routeranforderungsnachricht, um alle Router auf dem Link aufzufordern, Router Advertisement (RA)-Nachrichten zu senden. Router, die für die Unterstützung von SLAAC aktiviert sind, senden eine RA, die ein Subnetzpräfix für benachbarte Hosts enthält. Der Client hängt den Schnittstellenbezeichner an das Subnetzpräfix an, um eine globale Adresse zu bilden, und führt erneut DAD aus, um die Eindeutigkeit zu bestätigen.
SLAAC-Schnüffeln
SLAAC unterliegt den gleichen Sicherheitslücken wie NDP. Sie können SLAAC-Snooping konfigurieren, um den Datenverkehr von IPv6-Clients mithilfe von SLAAC für die dynamische Adresszuweisung zu sichern. Weitere Informationen zu NDP finden Sie unter IPv6 Neighbor Discovery Inspection.
SLAAC-Snooping ähnelt DHCP-Snooping, da Pakete ausspioniert werden, um eine Tabelle mit IP-MAC-Adressbindungen zu erstellen. SLAAC-Snooping extrahiert Adressinformationen aus DAD-Paketen, die während des SLAAC-Prozesses ausgetauscht werden, um die SLAAC-Snooping-Tabelle zu erstellen. Die Adressbindungen in dieser Tabelle werden verwendet, um NDP/IP-Pakete zu überprüfen und zu validieren, die von IPv6-Clients mithilfe von SLAAC gesendet werden.
Konfigurieren von SLAAC-Snooping
SLAAC-Snooping wird pro VLAN aktiviert. Standardmäßig ist SLAAC-Snooping für alle VLANs deaktiviert.
Verwenden Sie die folgenden Befehle, um SLAAC zu aktivieren:
Konfigurieren von Auto-DAD
Wenn DAD auf der Client-Seite deaktiviert ist oder DAD-Pakete aufgrund von Datenverkehrsüberlastungen verworfen werden, führt SLAAC-Snooping Auto-DAD im Namen des Clients durch. Die vom Client generierte Adresse befindet sich in einem vorläufigen Zustand, bis der DAD-Prozess abgeschlossen ist.
Auto-DAD sendet eine Neighbor Solicitation-Nachricht mit der vom Client generierten Adresse als Ziel und wartet auf eine Neighbor Advertisement als Antwort. Wenn es eine Antwort gibt, ist die Adresse ein Duplikat und kann dem Client nicht zugewiesen werden. Wenn keine Antwort erfolgt, wird die Adresse bestätigt.
Die Zeitspanne, die Auto-DAD auf eine Antwort wartet, beträgt standardmäßig 1 Sekunde, ohne Wiederholungsversuche. Sie können die Anzahl der Wiederholungsversuche und die Länge des Intervalls zwischen den Übertragungen konfigurieren.
Während einer MAC-Verschiebung führt das erste Neighbor Solicitation-Paket zu einem SLAAC-Eintrag, der vom alten Port geleert wird, und das zweite zur Erstellung eines SLAAC-Eintrags für den neuen Port.
Verwenden Sie die folgenden Befehle, um die Anzahl der Wiederholungsversuche für Auto-DAD-Parameter zu konfigurieren:
Verwenden Sie die folgenden Befehle, um das Intervall zwischen Auto-DAD-Übertragungen zu konfigurieren:
Für eine bestimmte Schnittstelle:
[edit] user@switch# set forwarding-options access-security slaac-snooping interface interface-name auto-dad retrans-interval seconds
Für alle Schnittstellen:
[edit] user@switch# set forwarding-options access-security slaac-snooping interface all auto-dad retrans-interval seconds
Konfigurieren des Ablaufs der verbindungslokalen Adresse
Die von SLAAC ermittelte verbindungslokale Adresse hat einen Standardablaufzeitraum von 1 Tag. Wenn die Lease für die Adresse abläuft, sendet das Snooping-Gerät eine DAD-Nachricht mit der Clientadresse als Ziel. Wenn der Kunde noch erreichbar ist, wird der Mietvertrag verlängert.
Verwenden Sie den folgenden Befehl, um die Länge des Ablaufzeitraums zu konfigurieren:
[edit] user@switch# set forwarding-options access-security slaac-snooping link-local expiry interval seconds
Konfigurieren der zulässigen DAD-Konflikte
Sie können die maximale Anzahl von DAD-Konfliktnachrichten (Neighbor Solicitation oder Neighbor Advertisement) für eine Schnittstelle konfigurieren. Wenn die maximale Anzahl von Konflikten während des zulässigen Zeitintervalls überschritten wird, wird die Schnittstelle als ungültig betrachtet, und die SLAAC-Snooping-Tabelle wird nicht mit Bindungen für diesen Client aktualisiert.
Die maximal zulässigen Konflikte werden pro Schnittstelle konfiguriert, um Schnittstellen zuzulassen, die zu mehr als einem VLAN gehören.
Verwenden Sie den folgenden Befehl, um die maximale Anzahl von DAD-Konflikten und das zulässige Zeitintervall zu konfigurieren:
[edit] user@switch# set forwarding-options access-security slaac-snooping interface interface-name max-allowed-contention count integer duration seconds
Konfigurieren einer Schnittstelle als vertrauenswürdig für SLAAC-Snooping
Wenn Sie eine Schnittstelle als vertrauenswürdig konfigurieren, wird der Bindungseintrag für die Schnittstelle der SLAAC-Snooping-Tabelle mit dem gleichen Prozess wie für nicht vertrauenswürdige Schnittstellen hinzugefügt.
Wenn eine DAD-Anforderung an einem vertrauenswürdigen Port mit einem IP/MAC-Eintrag empfangen wird, der bereits auf einem nicht vertrauenswürdigen Port vorhanden ist, sendet SLAAC-Snooping eine Unicast-DAD an den nicht vertrauenswürdigen Port, um festzustellen, ob der Host live ist.
Wenn der Host mit einer NA-Nachricht auf dem nicht vertrauenswürdigen Port antwortet, wird die Leasezeit für den vorhandenen Bindungseintrag erneuert.
Wenn auf dem nicht vertrauenswürdigen Port keine Antwort (NA) vorhanden ist, wird der entsprechende Bindungseintrag gelöscht.
Wenn der Eintrag für den nicht vertrauenswürdigen Port gelöscht wird, wird die Bindung für den vertrauenswürdigen Port nicht sofort erstellt. Wenn der vertrauenswürdige Port beginnt, Datenverkehr zu senden, sendet er eine NS-Nachricht. Zu diesem Zeitpunkt fügt SLAAC-Snooping die neue Bindung am vertrauenswürdigen Port hinzu.
Router-Ankündigungspakete, die an einem vertrauenswürdigen Port empfangen werden, werden an alle Ports in diesem VLAN geflutet, unabhängig vom SLAAC-Eintrag für den empfangenden Port.
Die maximale Anzahl von DAD-Konflikten gilt nicht für vertrauenswürdige Schnittstellen.
Verwenden Sie den folgenden Befehl, um eine Schnittstelle als vertrauenswürdig für SLAAC-Snooping zu konfigurieren:
[edit] user@switch# set forwarding-options access-security slaac-snooping interface interface-name mark-interface trusted
Konfigurieren von persistenten SLAAC-Snooping-Bindungen
Die IP-MAC-Bindungen in der DHCP-Snooping-Datenbankdatei sind nicht persistent. Wenn der Switch neu gestartet wird, gehen die Bindungen verloren. Sie können persistente Bindungen konfigurieren, indem Sie einen lokalen Pfadnamen oder eine Remote-URL für den Speicherort der SLAAC-Snooping-Datenbankdatei angeben.
Verwenden Sie den folgenden Befehl, um persistente Bindungen für SLAAC-Snooping zu konfigurieren:
[edit] user@switch# set system processes slaac-snooping persistent-file (local-pathname | remote-url) write-interval seconds