Debian 7 Wie werden lokale IPv6-Verbindungsadressen festgelegt?

10

Wenn dhclient auf eth0 ausgeführt wird, erhalte ich anscheinend eine IPv4-Adresse vom DHCP-Server und eine an eth0 angehängte Scope: Link-IPv6-Adresse:

inet6 addr: fe80::a00:27ff:fed0:4d41/64 Scope:Link

Aber ich kann aus dem Dhclient-Skript nicht ersehen, wie diese Adresse hinzugefügt wird. Auf einer anderen Schnittstelle mit einer statischen IP-Adresse möchte ich eine lokale IPv6-Linkadresse hinzufügen, und ich habe mich gefragt, ob es einen generischen Befehl gibt, um dies zu tun, ohne den Mac zu kennen.

Bearbeiten:
Es sieht so aus, als würde der Kernel die lokale Linkadresse zuweisen, wenn Sie "ip link set dev ethX up" oder "ifconfig ethX up" ausführen. In meinem Fall war jedoch ein Kabel an die DHCP-Schnittstelle angeschlossen und kein Kabel an die statisch eingerichtete Schnittstelle angeschlossen. Kann erst am Montag überprüft werden, aber ich vermute, dass der Kernel der Schnittstelle keine lokalen Linkadressen zuweist, wenn kein Link vorhanden ist.

Aaron
quelle
2
Keiner hat etwas mit dem anderen zu tun.
Michael Hampton
2
Ich verstehe das. Durch das Ausführen von dhclient erhalten Sie eine IPv6LL-Adresse, beim Festlegen einer statischen IPv4-Adresse jedoch nicht. Ein Nebeneffekt eines Befehls, der von dhclient ausgeführt wird, führt dazu, dass dies eingerichtet wird.
Aaron
1
Nein, Sie erhalten keine IPv6-Link-Local-Adresse, wenn Sie dhclient ausführen.
Michael Hampton

Antworten:

6

Lokale Verbindungsadressen werden von der MAC-Adresse des Geräts abgeleitet. Sie werden automatisch generiert, um die Benutzeroberfläche aufzurufen. Die automatische Konfiguration umfasst einen Erkennungsprozess, um sicherzustellen, dass die Adresse im Netzwerk eindeutig ist.

Ein ähnlicher Prozess wird verwendet, um routbare Adressen automatisch zu konfigurieren, wenn eine Router-Ankündigung verfügbar ist. Diese Adressen können regelmäßig neu generiert werden, um den Datenschutz zu gewährleisten.

RFC 4862 gibt die zu befolgenden Prozesse an.

BillThor
quelle
1
"Sie werden automatisch generiert, wenn die Benutzeroberfläche aufgerufen wird." Richtig, das ist es, wonach ich suche, wer es automatisch generiert? Es wird nicht automatisch generiert, wenn Sie eine statische IPv4-Adresse zuweisen, sondern wenn dhclient ausgeführt wird. Implementiert dhclient also RFC 4862 oder ist es ein Nebeneffekt eines Befehls im dhclient-Skript? Wie repliziere ich es auf einer statischen Schnittstelle, ohne meine eigene Implementierung von RFC 4862 zu schreiben?
Aaron
Wie vom Kernel automatisch generiert, siehe oben.
Aaron
6

Fand es! Dieser Befehl reicht nicht aus:

ifconfig eth0 up

Stattdessen muss ich tun:

ifconfig eth0 up
sysctl -w net.ipv6.conf.eth0.disable_ipv6=0

Nur letzteres stellt die lokale IPv6-Verbindungsadresse auf eth0 wieder her.

Mit anderen Worten, in meiner Distribution scheint irgendwo Code versteckt zu sein, der sich net.ipv6.conf.eth0.disable_ipv6jedes Mal dynamisch ändert, wenn er aufgefordert wird, das Netzwerk hoch- oder runterzufahren. Ihr Kilometerstand kann variieren.

Ich bin dem auf den Grund gegangen:

sysctl -a | grep ipv6
März
quelle
Übrigens kann ich nicht verstehen, warum meine Distribution disable_ipv6 umdreht: Sobald der Link unterbrochen wird, macht es keinen Unterschied.
MarcH
Dies gilt perfekt für Ubuntu 16.04. Vielen Dank.
Cbhihe