Оба хоста / гостя используют FreeBSD 11.1, я создал виртуальную машину, используя vm-byhbe.
Это конфигурация хоста в /etc/rc.conf
ifconfig_igb0_ipv6="inet6 2a01:4f8:150:84ec::1 prefixlen 64"
ipv6_activate_all_interfaces="YES"
ipv6_defaultrouter="fe80::1%igb0"
rtadvd_enable="YES"
В /etc/rtadvd.conf
igb0:\
:addrs#1:addr="2a01:4f8:150:84ec::"\
:prefixlen#64\
:tc=ether\
:rltime#0\
:rdnss="2a01:4f8:150:84ec::1":
Это бхиве гость /etc/rc.conf
ifconfig_vtnet0_ipv6="inet6 accept_rtadv"
ipv6_defaultrouter="fe80::1%vtnet0"
rtsold_enable="YES"
Это результат ifconfig bridge0
на хосте:
bridge0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
description: vm-public
ether 02:e0:41:b7:a4:00
nd6 options=1<PERFORMNUD>
groups: bridge
id 00:00:00:00:00:00 priority 0 hellotime 2 fwddelay 15
maxage 20 holdcnt 6 proto rstp maxaddr 2000 timeout 1200
root id 00:00:00:00:00:00 priority 0 ifcost 0 port 0
member: tap0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
ifmaxaddr 0 port 7 priority 128 path cost 2000000
member: igb0 flags=143<LEARNING,DISCOVER,AUTOEDGE,AUTOPTP>
ifmaxaddr 0 port 1 priority 128 path cost 2000000[/CODE]
Первая проблема, которую я обнаружил, заключается в том, что после загрузки виртуальной машины требуется время, чтобы получить IP-адрес, в некоторых случаях мне нужно перезапустить rtadvd и только тогда я могу получить IP, ошибка в логах такая:
rtadvd[1871]: <getconfig> inet_pton failed for 2a01:4f8:150:84ec::
После того, как виртуальная машина получит IP, я могу, например, пинговать другие хосты 2001: 4860: 4860 :: 8844, но не сам хост, поэтому я не могу разрешить ни один домен, потому что я использую несвязанный на хосте и это DNS (/etc/resolve.conf), который я определил.
Единственный способ, который я нашел до сих пор, чтобы исправить эту проблему, - это выполнить эхо-запрос с хоста на IPv6 на гостевой машине, после чего все будет работать, как ожидалось.
Есть идеи о том, что может быть не так? для тестирования я отключил pf (pfctl -d
) но все еще не работает.
Заранее спасибо.
Мне удается почини это, основная уловка заключалась в использовании только интерфейса моста и включении auto_linklocal
на нем примерно так:
ifconfig_bridge0_ipv6="inet6 2a01:4f8:350:84ec::1 prefixlen 64 auto_linklocal"
rtadvd_enable="YES"
rtadvd_interfaces="bridge0"