IPv6 connection dropping on Debian 7

Jonny Barnes asked:

EDIT: I’ve tried something different based on searching around. This is now my /etc/network/interfaces:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# This line makes sure the interface will be brought up during boot
auto eth0
allow-hotplug eth0

# The primary network interface
iface eth0 inet static
    # dns-* options are implemented by the resolvconf package, if installed
    dns-search localdomain
    # up commands
    up ip addr add dev eth0
    up ip -6 addr add 2001:1af8:4100:a00e:4::1/64 dev eth0
    up ip -6 ro add default via 2001:1af8:4100:a00e::1 dev eth0

Then ip addr show eth0 outputs:

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
link/ether d4:ae:52:c5:d2:1b brd ff:ff:ff:ff:ff:ff
inet brd scope global eth0
inet scope global secondary eth0
inet6 2001:1af8:4100:a00e:d6ae:52ff:fec5:d21b/64 scope global dynamic 
   valid_lft 2591870sec preferred_lft 604670sec
inet6 2001:1af8:4100:a00e:4::1/64 scope global 
   valid_lft forever preferred_lft forever
inet6 fe80::d6ae:52ff:fec5:d21b/64 scope link 
   valid_lft forever preferred_lft forever

further ip -6 ro outputs:

2001:1af8:4100:a00e::/64 dev eth0  proto kernel  metric 256 
fe80::/64 dev eth0  proto kernel  metric 256 
default via 2001:1af8:4100:a00e::1 dev eth0  metric 1024 
default via fe80::2d0:ff:fe9e:1800 dev eth0  proto kernel  metric 1024  expires 1627sec
default via fe80::2d0:2ff:fe33:3c00 dev eth0  proto kernel  metric 1024  expires 1627sec

Eventually the two default proto kernel routes disappear from the output. My IPv6 connection still dropped at some point over night though. Again, simply running sudo service networking stop && sudo service networking start got everything working again. Those two fe80 routes reappeared as well, not surprising. Anyone any ideas?

aside: at no point has any IPv4 connectivity had issues.

My answer:

The correct way to configure IPv6 in Debian’s /etc/network/interfaces file is:

iface eth0 inet6 static
        address 2001:1af8:4100:a00e:4::1
        netmask 64
        gateway 2001:1af8:4100:a00e::1

You should not have any of those extra up statements to configure your IPv6 address.

View the full question and any other answers on Server Fault.

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.