为什么隐私 ipv6 地址无法在客户虚拟机中连接互联网

为什么隐私 ipv6 地址无法在客户虚拟机中连接互联网

我在 kvm 中安装了一台 ubuntu 14.04 虚拟机,主机是 fedora 20。虚拟机的 eth1 网卡处于 macvtap 桥接模式。Ubuntu 默认启用 ipv6 隐私扩展,并首选临时地址:

$ ip -6 addr show dev eth1
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qlen 1000
inet6 2001:da8:207:e216:a935:a562:3102:7e00/64 scope global temporary dynamic 
   valid_lft 599380sec preferred_lft 80380sec
inet6 2001:da8:207:e216:5054:ff:fed5:8cae/64 scope global dynamic 
   valid_lft 2591548sec preferred_lft 604348sec
inet6 fe80::5054:ff:fed5:8cae/64 scope link 
   valid_lft forever preferred_lft forever
$ sysctl net.ipv6.conf.all.use_tempaddr
net.ipv6.conf.all.use_tempaddr = 2

但是我无法通过ipv6连接到互联网:

ping6 ipv6.google.com
PING ipv6.google.com(hkg03s10-in-x06.1e100.net) 56 data bytes
^C
--- ipv6.google.com ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3023ms

如果我删除临时地址2001:da8:207:e216:a935:a562:3102:7e00/64或将其设置net.ipv6.conf.all.use_tempaddr为 1,它将起作用:

# sysctl net.ipv6.conf.eth1.use_tempaddr=1
net.ipv6.conf.eth1.use_tempaddr = 1
# ifdown eth1                              
# ifup eth1
# ping6 ipv6.google.com
PING ipv6.google.com(hkg03s10-in-x06.1e100.net) 56 data bytes
64 bytes from hkg03s10-in-x06.1e100.net: icmp_seq=1 ttl=47 time=305 ms
64 bytes from hkg03s10-in-x06.1e100.net: icmp_seq=2 ttl=47 time=305 ms

ipv6.google.com即使我设置net.ipv6.conf.all.use_tempaddr为 2,主机操作系统(fedora 20)也可以访问。

我觉得 kvm guest 中的隐私地址无法访问 ipv6 网络。这是为什么?

答案1

我遇到了同样的问题。似乎是因为在 libvirt 中,该trustGuestRxFilters属性的默认设置是no

在客户机的 libvirt XML 中将元素设置trustGuestRxFilters为开启后,客户机中的 IPv6 隐私地址现在可以为我使用了。yesinterface

相关内容