Если на хосте запустить rtadvd с параметром rltime равным 0, то клиенты через сообщения Router Advertisement (RA) получат свои IPv6-адреса и адреса DNS-серверов, но не получат шлюз по умолчанию

bsd$ less /etc/rtadvd.conf

em0:\ 
 :rltime#0:\
 :addr="2001:5c0:1101:1700::":prefixlen#64:\
 :rdnss="2001:4860:4860::8888":

А если rltime установить больше нуля, то сервис не стартует из-за ошибки non-zero lifetime RA on RA receiving interface em0. Ignored

bsd$ man rtadvd.conf

rltime(num) Router lifetime field (unit: seconds). The value must be
 either zero or between the value of maxinterval and 9000. When
 rtadvd runs on a host, this value must explicitly set 0 on all
 the advertising interfaces as described in rtadvd(8). The
 default value is 1800.

Пришлось заново собрать rtadvd. Скачать исходники можно из соответствующей ветки http://svn.freebsd.org

bsd$ sudo mkdir -p /usr/src

bsd$ sudo svn co svn://svn.freebsd.org/base/releng/10.0 /usr/src

bsd$ sudo svn ci /usr/src

bsd$ sudo vi /usr/src/usr.sbin/rtadvd/rtadvd.c

if (rai->rai_lifetime != 0) { if (getinet6sysctl(IPV6CTL_FORWARDING) == 0) { syslog(LOG_ERR, "non-zero lifetime RA " "but net.inet6.ip6.forwarding=0. " "Ignored."); return; } /* if (check_accept_rtadv(ifi->ifi_ifindex)) { syslog(LOG_ERR, "non-zero lifetime RA " "on RA receiving interface %s." " Ignored.", ifi->ifi_ifname); return; }*/}

bsd$ cd /usr/src/usr.sbin/rtadvd/

bsd$ sudo make all install

Проверяем конфигурацию сервиса и запускаем

bsd$ less /etc/rtadvd.conf

em0:\ 
 :addr="2001:5c0:1101:1700::":prefixlen#64:\
 :rdnss="2001:4860:4860::8888":

В общем случае, необходимо указать параметры автозапуска сервиса в /etc/rc.conf

Если же установлен порт gogoc, то он сам будет запускать сервис rtadvdи ничего прописывать в rc.conf не нужно. Но файл конфигурации /etc/rtadvd.conf должен быть


bsd$ grep rtadvd /etc/rc.conf

rtadvd_interfaces="em0"

rtadvd_enable="YES"

Для интерфейса следует установить разрешение на обработку сообщений RA и RS

Вообще, gogoc сам добавляет в rc.conf строчку ifconfig_em0_ipv6 accept_rtadv

bsd$ sudo ifconfig em0 inet6 accept_rtadv

bsd$ sudo /etc/rc.d/rtadvd start


Windows не имеет встроенной поддержки получения адреса DNS-серверов из пакетов RA. Для этого приходится дополнительно ставить утилиту rdnssd-win32


http://lists.freebsd.org/pipermail/freebsd-bugs/2011-November/046372.html

bsd$ man rtadvd.conf

FreeBSD 10.2-RELEASE: Sun Nov 29 21:19:07 YEKT 2015