Na blogu Spoofedpacket vyšel zajímavý zápisek o problémů s použitím IPv6 adresy těsně po jejím přiřazení k síťové kartě. Problém způsobuje detekce duplicitních adres (DAD), která je v IPv6 povinná. Během této detekce je IPv6 adresa označena příznakem tentative
a aplikace ji dosud nemohou používat. To způsobuje problémy především ve spouštěcích skriptech, kdy se těsně po nastavení adresy spouští služby.
Autor blogu doporučuje nejjednodušší řešení – vložit do bootovací sekvence příkaz sleep
. O něco sofistikovanější řešení je vestavěné ve spouštěcích skriptech distribuce Gentoo:
_iproute2_ipv6_tentative() { # Only check tentative when we have a carrier. LC_ALL=C ip link show dev "${IFACE}" | grep -q "NO-CARRIER" && return 1 LC_ALL=C ip addr show dev "${IFACE}" | \ grep -q "^[[:space:]]*inet6 .* tentative" } iproute2_post_start() { local n=5 … if _iproute2_ipv6_tentative; then ebegin "Waiting for IPv6 addresses" while [ $n -ge 0 ]; do _iproute2_ipv6_tentative || break sleep 1 n=$(($n - 1)) done [ $n -ge 0 ] eend $? fi return 0 }