I've got a IPv4 only ISP and get a public IPv4 address from them. On my router, a Linux machine, I've setup a 6in4 tunnel using a tunnel provider. So I now have a tunnel interface (point-to-point) with a Global scope IPv6 address: 2001:abcd:abcd::2/64. As I understand it, the whole /64 block is routed to me, i.e., I can freely define any address in that block (::3, ::4, etc). From my router, I can reach IPv6 sevices just fine (ping6 works, traceroute6 works). The router does NAT for my LAN. Now I want to route one machine inside my LAN using IPv6 as well, assigning it ::3.

The current setup:

eth0.123: DHCP from public Internet on VLAN 123

eth1: + IPv6 link local

tun6: 2001:abcd:abcd::2/64

I've tried adding 2001:abcd:abcd::3/64 to the interface IP of my LAN machine, but it cannot ping 2001:abcd:abcd::2/64. Therefore, I fail to setup my IPv6 network even before I come to the routing part.

How do I have to configure the network interfaces so my router can talk to my local machine using IPv6 and then how do I allow routing of IPv6 traffic to the Internet?

  • 1
    Use ip -6 route and ip get 2001:abcd:abcd::2 on your LAN machine to test if the routing is correct. If not, you can configure all of that manually; but usually you'd run radvd on your router (correctly configured), and let it advertise your prefix to the rest of the LAN. The LAN machines can then configure themselves automatically via SLAAC (stateless IPv6 autoconf).
    – dirkt
    Commented Jul 5, 2018 at 12:54
  • 1
    You're meant to use the other routed netblock the tunnel provider should have given you. The initial /64 is only for the point to point connection. Commented Jul 6, 2018 at 14:35


You must log in to answer this question.

Browse other questions tagged .