2018-03-24 No IPv6

I had to disable IPv6 on my laptop. I don’t know why. Do you know how to figure out what my problem is? Is this a config of mine somewhere? My operating system? My router? My ISP?

This is how it starts:

alex@melanobombus:~$ ping irc.freenode.net
PING irc.freenode.net(2606:2e00:8003:1:ec4:7aff:fe53:57ea (2606:2e00:8003:1:ec4:7aff:fe53:57ea)) 56 data bytes
^C
--- irc.freenode.net ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 4089ms

For hosts that resolve to an IPv6, I get 100% packet loss.

So now I’m going to disable IPv6 and it will work again.

First, show that I have IPv6 enabled:

alex@melanobombus:~$ ifconfig
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 44  bytes 3144 (3.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 44  bytes 3144 (3.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.178.28  netmask 255.255.255.0  broadcast 192.168.178.255
        inet6 fe80::42d6:72e6:52d2:be3c  prefixlen 64  scopeid 0x20<link>
        inet6 2a02:168:48ac:0:6390:7121:3b0e:23b2  prefixlen 64  scopeid 0x0<global>
        ether 18:cf:5e:f4:02:3b  txqueuelen 1000  (Ethernet)
        RX packets 61  bytes 7718 (7.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 104  bytes 15249 (14.8 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Create the file `/etc/sysctl.d/70-disable-ipv6.conf` with the following content:

net.ipv6.conf.all.disable_ipv6 = 1

Apply it:

sudo sysctl -p -f /etc/sysctl.d/70-disable-ipv6.conf

Verify that IPv6 is off:

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 44  bytes 3144 (3.0 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 44  bytes 3144 (3.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.178.28  netmask 255.255.255.0  broadcast 192.168.178.255
        ether 18:cf:5e:f4:02:3b  txqueuelen 1000  (Ethernet)
        RX packets 180  bytes 44953 (43.8 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 115  bytes 16444 (16.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

And verify that packets are no longer lost:

alex@melanobombus:~$ ping irc.freenode.net
PING chat.freenode.net (130.185.232.126) 56(84) bytes of data.
64 bytes from hitchcock.freenode.net (130.185.232.126): icmp_seq=1 ttl=55 time=32.8 ms
64 bytes from hitchcock.freenode.net (130.185.232.126): icmp_seq=2 ttl=55 time=32.3 ms
64 bytes from hitchcock.freenode.net (130.185.232.126): icmp_seq=3 ttl=55 time=32.5 ms
^C
--- chat.freenode.net ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 32.390/32.604/32.887/0.294 ms

Oh, and this is what the router says:

Router Screenshot

​#Debian ​#Administration

Comments

(Please contact me if you want to remove your comment.)

My ISP’s router (a ZyXel something) sometimes loses IPv6 service - and only regains it after a reboot or powercycle.

I’ve set a cron job that tries to ping an IPv6 address up, so I get a notice when the router freaks out.

– Adam 2018-03-24 18:47 UTC

Adam

---

Oh wow! I need to check that.

– Alex Schroeder 2018-03-24 21:50 UTC

---

Got help by Marcin Cieślak <@saper> on Mastodon and I was able to remove the change I had made.

@saper

on Mastodon

For my router, I basically did two things:

1. use native IPv6 connection

2. no ULA (even though it is not recommended)

use native IPv6 connection

no ULA

Marcin ended by saying I was now ready for the Hurricane Electric IPv6 Sage certification program. Maybe one day! 😄

Hurricane Electric IPv6 Sage

– Alex Schroeder 2018-03-24 23:48 UTC

---

Months later, here I am again. I replaced all the IPv6 numbers with an ellipsis.

$ ping alexschroeder.ch
PING alexschroeder.ch(... (...)) 56 data bytes
^C
--- alexschroeder.ch ping statistics ---
38 packets transmitted, 0 received, 100% packet loss, time 912ms

$ traceroute6 alexschroeder.ch
traceroute to alexschroeder.ch (...) from ..., 30 hops max, 24 byte packets
 1  fritz.box (...)  1.332 ms  0.787 ms  0.738 ms
 2  2a02:168:2000:4::1 (...)  2.98 ms  1.128 ms  5.378 ms
 3  r1zlz1.core.init7.net (...)  3.235 ms  1.033 ms  0.91 ms
 4  * * *
 5  * * *
 6  * * *

Basically the browser still works, but SSH to my servers is extremely slow. It takes a minute or so to connect but once I’m connected there is no problem.

In June I asked for a static IPv6 prefix and got it. Using `ifconfig` I see that my local machine still uses the prefix, so everything should be fine.

– Alex Schroeder 2018-12-07 14:12 UTC