主机/来宾都使用 FreeBSD 11.1,我使用vm-byhbe创建了 VM 。
这是主机配置/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":
这是bhyve客人/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]
我发现的第一个问题是,在启动 VM 后,需要一段时间才能获得 IP,在某些情况下我需要重新启动rtadvd才能获得 IP,我在日志中的错误是这个:
rtadvd[1871]: <getconfig> inet_pton failed for 2a01:4f8:150:84ec::
VM 获得 IP 后,我可以 ping 其他主机,例如2001:4860:4860::8844,但不能 ping 主机本身,因此我无法解析到任何域,这是因为我在主机上使用unbound并且是我定义的 DNS (/etc/resolve.conf)。
到目前为止,我发现解决此问题的唯一方法是从主机 ping 到客户机上的 IPv6,之后一切都按预期工作。
有什么想法可能是错的吗?为了测试,我禁用了pf ( pfctl -d
) 但仍然无法正常工作。
提前致谢。
我设法解决了这个问题,主要技巧是只使用桥接接口并启用
auto_linklocal
它,如下所示: