I have built a router based on Ubuntu server 16.04 LTS, which also acts as my home server. Right after fresh installation when I use ip addr, it successfully gave me the global ipv6 (not the local link that looks like fe80::) that Comcast assigns (stateless). So I continued on setting up isc-dhcp-server and iptables rules for the ipv4 connections, which was fairly straight forward with all the guides available online. This allows me to ssh in and set up the rest from my desk and made things so much easier. Here is when I started running into problems. So I have two nics, and the /etc/network/interfaces is as follows:

# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8)
# Generated by debian-installer.

# The loopback interface
auto lo
iface lo inet loopback

# WAN interface
auto enp37s0
iface enp37s0 inet dhcp
iface enp37s0 inet6 dhcp

# LAN interface
auto enp30s0
iface enp30s0 inet static

Very few posts online details the scenario where Ubuntu machine as a router directly connected to ISP modem that capable of native stateless ipv6. But I managed to find one post "here" and piece up info from a range of other posts. The things I had tried was isc-dhcp-server6,wide-dhcp6-client and dibbler-client plus radvd for forwarding the ipv6 advertisement to my other hosts within the network. Nothing really worked, where the furthest I got was being able to have my ubuntu router assigning ipv6 addresses defined in various .conf files. Then I realized that even if my dhcp setup worked, I wouldn't have gotten internet through ipv6 because I am no longer getting global ipv6 address from modem, here is the ip addr output from my wan nic:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
   valid_lft forever preferred_lft forever
2: enp30s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet brd scope global enp30s0
   valid_lft forever preferred_lft forever
inet6 fe80::21b:xxxx:xxxx:xxxx/64 scope link
   valid_lft forever preferred_lft forever
3:enp37s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 71.xxx.xxx.x/22 brd scope global enp37s0
   valid_lft forever preferred_lft forever
inet6 fe80::7285:xxxx:xxxx:xxxx/64 scope link
   valid_lft forever preferred_lft forever

As you can see that it is clearly missing the address with 2001:558:6017:a0:: prefix that I used to get. At this point, I am basically really tired after wasting days trying to get my ubuntu router to be Ipv6 ready. So I just want to revert back to the original state where Ipv6 at least works for the ubuntu router itself, and maybe try again later. So I stopped and removed all the packages I installed for the ipv6 'experiment'. I also reverted back the changes in the sysctl.conf with these lines according to the post1 and post2 I read:

net.ipv6.conf.enp37s0.accept_ra =1

Unfortunately, no matter what I do, the ipv6 link is not coming back! Here are a few more things I tried:

dmesg |grep IPv6
[   27.515582] IPv6: ADDRCONF(NETDEV_UP): enp30s0: link is not ready
[   27.565749] IPv6: ADDRCONF(NETDEV_UP): enp37s0: link is not ready
[   30.417452] IPv6: ADDRCONF(NETDEV_CHANGE): enp37s0: link becomes ready
[   32.088828] IPv6: ADDRCONF(NETDEV_CHANGE): enp30s0: link becomes ready

test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"
Running kernel is IPv6 ready

At this point, I do not know what I should try, but I am extremely bothered by this. I would greatly appreciate any suggestions at this point.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.