0

I cannot ping6 the network interface "tun0" on the host computer from a virtual machine.

Using vmware, I installed a Ubuntu 12.04 virtual machine, that is connected to the host machine with NAT. Typing

Virtual Machine $ping6 aaaa::1

on the virtual machine results in

PING aaaa::1(aaaa::1) 56 data bytes
From aaaa::2 icmp_seq=1 Destination unreachable: Address unreachable

The "vmnet8" interface connecting the virtual machine and the host works(confirmed by typing "ping6 " in the virtual machine). To my understanding, the a request to the "tun0" interface from the "eth0" should be routed, but please correct me if I am wrong.

Both machines are not connected to the Internet, but should only form a LAN.

Setup virtual machine (Ubuntu 12.04):

eth0      Link encap:Ethernet  HWaddr 00:0c:29:16:XX:d0  
          inet addr:172.16.136.130  Bcast:172.16.136.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe16:XXd0/64 Scope:Link
          inet6 addr: aaaa::2/64 Scope:Global

Setup host machine (Ubuntu 12.04):

vmnet8    Link encap:Ethernet  HWaddr 00:XX:xx:c0:00:08  
          inet addr:172.16.136.1  Bcast:172.16.136.255  Mask:255.255.255.0
          inet6 addr: fe80::xx:xxxx:fec0:8/64 Scope:Link

tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00
          inet addr:127.0.1.1  P-t-P:127.0.1.1  Mask:255.255.255.255
          inet6 addr: fe80::1/64 Scope:Link
          inet6 addr: aaaa::1/64 Scope:Global

Thank you for your time.

slm
  • 7,615
  • 16
  • 56
  • 76
  • Did you turn on IPv6 routing? What's in your v6 routing table on the host and the guest? – ch2500 May 27 '13 at 14:44
  • `aaaa::` is an invalid netblock. Did you just use that as a fake address? – Michael Hampton May 27 '13 at 21:41
  • @ch2500: Yes it is on. On the host, the IPv6 table is:`aaaa::/64 dev tun0 proto kernel metric 256 | fe80::/64 dev vmnet8 proto kernel metric 256 | fe80::/64 dev tun0 proto kernel metric 256` and on the VM: `aaaa::/64 dev eth0 proto kernel metric 256` – user2313131 May 28 '13 at 08:38
  • @MichaelHampton I am using aaaa:: as a address. I thought it would not matter on a network not connected to the internet. Which address would you recommend? – user2313131 May 28 '13 at 08:42
  • Use unique local addresses. That's what they're for. – Michael Hampton May 28 '13 at 16:32

1 Answers1

0

From route.c code it looks like the kernel will drop addresses it doesn't consider to be link local or unicast when forwarding (in the 'standard' case).

I don't have a good suggestion on what address to use for testing, other than getting a subnet from your local address space registry.

ch2500
  • 806
  • 6
  • 9
  • I changed the address of tun0 to `2002::1` and updated the routing table, however I still could not ping6 it from the Virtual Machine. The ping4 works fine, so the error has to be in the IPv6 forward settings of the host machine. On the host machine I turned on the forwarding for all interfaces using: `sudo sysctl -w net.ipv6.conf.all.forwarding=1` but it still didn't work. Anything else that might could cause the problem? – user2313131 May 28 '13 at 14:06
  • Can you update the question with your current setup? - Which v4 did you ping? The 127.x on tun0? – ch2500 May 28 '13 at 21:11