主机/客户机都使用 FreeBSD 11.1,我使用以下方式创建虚拟机虚拟主机。
这是主机配置/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,在某些情况下,我需要重新启动韓國只有这样我才能获得 IP,日志中出现的错误是这样的:
rtadvd[1871]: <getconfig> inet_pton failed for 2a01:4f8:150:84ec::
VM 获取 IP 后,我可以 ping 其他主机,例如2001:4860:4860::8844,但不是主机本身,因此我无法解析任何域,这是因为我正在使用未绑定在主机上,是我定义的DNS(/etc/resolve.conf)。
到目前为止我发现解决此问题的唯一方法是从主机 ping 到客户机的 IPv6,这样做之后一切都按预期运行。
知道可能出了什么问题吗?为了进行测试,我禁用了普法(pfctl -d
)但仍然不起作用。
提前致谢。
答案1
我设法解决这个问题,主要的技巧是仅使用桥接接口并auto_linklocal
在其上启用,如下所示:
ifconfig_bridge0_ipv6="inet6 2a01:4f8:350:84ec::1 prefixlen 64 auto_linklocal"
rtadvd_enable="YES"
rtadvd_interfaces="bridge0"