My setup is:
Debian Wheezy x64 on the host and on the guest.
I am using a tun/tap setup to connect a virtual machine to the host.
The KVM network options I use are:
-net nic,macaddr=DE:AD:BE:EF:1A:DC
-net tap,ifname=tap3,script=no,downscript=no
IPv4 networking works using NAT, so I can ssh into the machine from the outside just fine.
IPv6 is another story.
The host has full IPv6 connectivity, I can reach it from the outside and I can reach outside IPv6 hosts.
Host /etc/network/interfaces (IPv6 part)
iface eth0 inet6 static
address 2a01:...::2
netmask 64
gateway fe80::1
Guest /etc/network/interfaces (IPv6 part)
iface eth0 inet6 static
address 2a01:...::3
netmask 64
gateway route add 2a01:...::1:3
The tap3
interface is setup this way:
ip -6 addr add 2a01:...::1:3/64 dev tap3 # The tap3 address
ip -6 route add 2a01:...::3 dev tap3 # The guest eth0 address
ip -6 route add 2a01:...::2 dev tap3 # The host eth0 address
The host can reach 2a01:...:3
.
The guest can reach 2a01:...::1:3
and even
2a01:...::2
, but no address outside the host.
ping6 www.google.de
PING www.google.de(fra07s32-in-x1f.1e100.net) 56 data bytes
^C
--- www.google.de ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3024ms
The packets get lost, there is no ICMP response. (From the host it works as expected)
I have enabled forwarding on sysctl:
net.ipv6.conf.eth0.forwarding = 1
net.ipv6.conf.eth0.mc_forwarding = 0
net.ipv6.conf.tap3.forwarding = 1
net.ipv6.conf.tap3.mc_forwarding = 0
How do I get packets through the host?
Edit: "..." is always the same value for all addresses in the above file and command listings. It's the /64 network that I got from RIPE.
ip -6 route
in the guest?ndp_proxy
in the kernel, do I still needradvd
?