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
}