QVINTVS · SCRIBET

Kurztipp: IPv6 Duplicate Address Detection deaktivieren

Betreibt man ArchLinux auf seinem Router und verwendet netctl zur Zuweisung der IP-Adressen, kommt es seit einiger Zeit zu einem Fehler bezüglich der IPv6 Duplicate Address Detection.

Eigentlich ist die Duplicate Address Detection (DAD) von IPv6 eine feine Sache. Es wird verhindert, dass ein Gerät versehentlich dieselbe IPv6-Adresse bekommt — problematisch ist nur, dass die DAD eine bestehende Verbindung auf dem betroffenen Interface voraussetzt. Weist man seine IPv6-Adresse statisch zu, gibt es diese u.U. noch nicht; bei mir konkret etwa weise ich wlan0 eine statische Adresse zu, um später (!) mit hostapd einen WLAN-Accesspoint zu betreiben. Da aber auf dem Interface keinerlei Verbindung besteht, schlägt die DAD bei Zuweisung der Adresse mit netctl wie folgt fehl:

Sep 28 17:50:27 avalon network[3543]: Duplicate Address Detection is taking too long on interface 'wlan0'
Sep 28 17:50:27 avalon network[3543]: Failed to bring the network up for profile 'wifi-static'
Sep 28 17:50:27 avalon systemd[1]: netctl@wifi\x2dstatic.service: main process exited, code=exited, status=1/FAILURE
Sep 28 17:50:27 avalon systemd[1]: Failed to start Wifi AP static configuration.

Das dazugehörte nettctl-Profil sieht so aus:

Description='Wifi AP static configuration'
Interface=wlan0
Connection=ethernet
SkipNoCarrier=yes
IP=static
Address=('10.XXX.XXX.2/26')

IP6=static
Address6=('2001:XXX::1/80')

SkipNoCarrier räumt im Übrigen das Problem aus, keinen Carrier auf dem Interface zu finden (wie gesagt, da ist ja auch noch rein gar nichts verbunden). Um nun die oben gezeigte Fehlermeldung loszuwerden, bin ich auf Websuche gegangen und im netctl-Mail-Archiv fündig geworden. Tatsächlich steht es auch in der Manpage netctl.profile(5), aber da bin ich zu schnell drübergeflogen :-). Man muss einen Modifier nodad an die Adresszuweisung anhängen:

Address6=('2001:XXX::1/80 nodad')

Schon schnurrt netctl wieder so, wie man es gewöhnt ist.

Valete.