IPv6 addresses lost after reboot

I configured IPv6 addresses for all virtual hosts in virtualmin. That worked great, but after a reboot of the server the configured IPv6 addresses are not assigned to the network interface eth0 anymore. The only two IPv6 addresses are the link-local address and the autoconfigured global-unicast address. The file /etc/networ/interfaces seems to be correct configured (anonymized):

iface eth0 inet6 static pre-up modprobe ipv6 address 2001:1620:abcd:1::11/64 gateway 2001:1620:abcd:1::1/64 up /sbin/ifconfig eth0 inet6 add 2001:1620:abcd::100/64 up /sbin/ifconfig eth0 inet6 add 2001:1620:abcd:1::101/64 up /sbin/ifconfig eth0 inet6 add 2001:1620:abcd:1::102/64 ....

The command "/etc/init.d/networking restart" does not help. When I click on "Apply Selected Interfaces" in Webmin the IPv6 addresses will be correctly assigned but the routing seems to be wrong after that (two default routes, one to the link-local address of the router and one to the global-unicast address).

What can I do to get the IPv6 networking working?

Status: 
Active

Comments

That config looks OK to me.

When you run /etc/init.d/networking restart , what does it output?

Here are some more details:

ifconfig eth0 after reboot: eth0 Link encap:Ethernet HWaddr c6:9b:e4:4a:12:68
inet addr:10.0.0.11 Bcast:10.255.255.255 Mask:255.0.0.0 inet6 addr: 2001:1620:f0e:1:c49b:e4ff:fe4a:1268/64 Scope:Global inet6 addr: fe80::c49b:e4ff:fe4a:1268/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:42315900 errors:0 dropped:0 overruns:0 frame:0 TX packets:7005136 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:7749191559 (7.7 GB) TX bytes:31346016425 (31.3 GB)

route -6 after reboot: Kernel IPv6 routing table Destination Next Hop Flag Met Ref Use If 2001:1620:f0e:1::/64 :: UAe 256 0 88437 eth0 fe80::/64 :: U 256 0 0 eth0 ::/0 fe80::20d:b9ff:fe15:c75c UGDAe 1024 0 57591 eth0 ::/0 :: !n -1 1147109 lo ::1/128 :: Un 0 2 61293 lo 2001:1620:f0e:1:c49b:e4ff:fe4a:1268/128 :: Un 0 1120930 lo fe80::c49b:e4ff:fe4a:1268/128 :: Un 0 1 19139 lo ff00::/8 :: U 256 0 0 eth0 ::/0 :: !n -1 1147109 lo

ping6 to ipv6.google.com: ING ipv6.google.com(fx-in-x67.1e100.net) 56 data bytes 64 bytes from fx-in-x67.1e100.net: icmp_seq=1 ttl=53 time=20.8 ms 64 bytes from fx-in-x67.1e100.net: icmp_seq=2 ttl=53 time=22.1 ms 64 bytes from fx-in-x67.1e100.net: icmp_seq=3 ttl=53 time=21.2 ms

running /etc/init.d/networking restart * Reconfiguring network interfaces... SIOCADDRT: File exists Failed to bring up eth0. [ OK ]

the above commands still show the same after restarting the network.

selecting eth0 on webmin network configuration and clicking on apply selected interfaces changes the configuration.

ifconfig eth0 after webmin network configuration: eth0 Link encap:Ethernet HWaddr c6:9b:e4:4a:12:68
inet addr:10.0.0.11 Bcast:10.255.255.255 Mask:255.0.0.0 inet6 addr: 2001:1620:f0e:1::110/64 Scope:Global inet6 addr: 2001:1620:f0e:1::101/64 Scope:Global inet6 addr: 2001:1620:f0e:1::11/64 Scope:Global inet6 addr: 2001:1620:f0e:1::111/64 Scope:Global inet6 addr: 2001:1620:f0e:1::100/64 Scope:Global inet6 addr: 2001:1620:f0e:1::112/64 Scope:Global inet6 addr: 2001:1620:f0e:1::103/64 Scope:Global inet6 addr: 2001:1620:f0e:1::113/64 Scope:Global inet6 addr: 2001:1620:f0e:1::102/64 Scope:Global inet6 addr: 2001:1620:f0e:1::114/64 Scope:Global inet6 addr: 2001:1620:f0e:1::105/64 Scope:Global inet6 addr: 2001:1620:f0e:1::115/64 Scope:Global inet6 addr: 2001:1620:f0e:1::104/64 Scope:Global inet6 addr: 2001:1620:f0e:1::116/64 Scope:Global inet6 addr: 2001:1620:f0e:1::107/64 Scope:Global inet6 addr: 2001:1620:f0e:1::117/64 Scope:Global inet6 addr: 2001:1620:f0e:1::106/64 Scope:Global inet6 addr: 2001:1620:f0e:1::118/64 Scope:Global inet6 addr: 2001:1620:f0e:1::109/64 Scope:Global inet6 addr: 2001:1620:f0e:1::119/64 Scope:Global inet6 addr: 2001:1620:f0e:1::108/64 Scope:Global inet6 addr: 2001:1620:f0e:1::11a/0 Scope:Global inet6 addr: 2001:1620:f0e:1::10b/64 Scope:Global inet6 addr: 2001:1620:f0e:1::10a/64 Scope:Global inet6 addr: 2001:1620:f0e:1::10d/64 Scope:Global inet6 addr: 2001:1620:f0e:1::10c/64 Scope:Global inet6 addr: 2001:1620:f0e:1::10f/64 Scope:Global inet6 addr: 2001:1620:f0e:1::10e/64 Scope:Global UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:42330371 errors:0 dropped:0 overruns:0 frame:0 TX packets:7017163 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:7767965577 (7.7 GB) TX bytes:31352035262 (31.3 GB)

route -6 after webmin network configuration: Kernel IPv6 routing table Destination Next Hop Flag Met Ref Use If 2001:1620:f0e:1::/64 :: Ue 256 0 12 eth0 fe80::/64 :: U 256 0 0 eth0 ::/0 :: U 256 0 0 eth0 ::/0 fe80::20d:b9ff:fe15:c75c UGDAe 1024 0 0 eth0 ::/0 :: !n -1 1147216 lo ::1/128 :: Un 0 2 61416 lo 2001:1620:f0e:1::11/128 :: Un 0 1 0 lo 2001:1620:f0e:1::100/128 :: Un 0 1 0 lo 2001:1620:f0e:1::101/128 :: Un 0 1 15 lo 2001:1620:f0e:1::102/128 :: Un 0 1 0 lo 2001:1620:f0e:1::103/128 :: Un 0 1 0 lo 2001:1620:f0e:1::104/128 :: Un 0 1 0 lo 2001:1620:f0e:1::105/128 :: Un 0 1 0 lo 2001:1620:f0e:1::106/128 :: Un 0 1 0 lo 2001:1620:f0e:1::107/128 :: Un 0 1 0 lo 2001:1620:f0e:1::108/128 :: Un 0 1 0 lo 2001:1620:f0e:1::109/128 :: Un 0 1 0 lo 2001:1620:f0e:1::10a/128 :: Un 0 1 0 lo 2001:1620:f0e:1::10b/128 :: Un 0 1 0 lo 2001:1620:f0e:1::10c/128 :: Un 0 1 0 lo 2001:1620:f0e:1::10d/128 :: Un 0 1 0 lo 2001:1620:f0e:1::10e/128 :: Un 0 1 0 lo 2001:1620:f0e:1::10f/128 :: Un 0 1 0 lo 2001:1620:f0e:1::110/128 :: Un 0 1 0 lo 2001:1620:f0e:1::111/128 :: Un 0 1 0 lo 2001:1620:f0e:1::112/128 :: Un 0 1 0 lo 2001:1620:f0e:1::113/128 :: Un 0 1 0 lo 2001:1620:f0e:1::114/128 :: Un 0 1 0 lo 2001:1620:f0e:1::115/128 :: Un 0 1 0 lo 2001:1620:f0e:1::116/128 :: Un 0 1 0 lo 2001:1620:f0e:1::117/128 :: Un 0 1 0 lo 2001:1620:f0e:1::118/128 :: Un 0 1 0 lo 2001:1620:f0e:1::119/128 :: Un 0 1 0 lo 2001:1620:f0e:1::11a/128 :: Un 0 1 9 lo ff00::/8 :: U 256 0 0 eth0 ::/0 :: !n -1 1147216 lo

ping6 to ipv6.google.com after webmin network configuration: PING ipv6.google.com(fx-in-x68.1e100.net) 56 data bytes From 2001:1620:f0e:1::119 icmp_seq=2 Destination unreachable: Address unreachable From 2001:1620:f0e:1::119 icmp_seq=3 Destination unreachable: Address unreachable From 2001:1620:f0e:1::119 icmp_seq=4 Destination unreachable: Address unreachable

That seems OK to me.

Could you post your full /etc/network/interfaces file to this ticket? I'd like to see if some other section is interfering with the IPv6 interfaces..

Here it is...:

# 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 eth0 eth0:1
auto lo eth0
iface lo inet loopback

# The primary network interface
iface eth0 inet static
        address 10.0.0.11
        netmask 255.0.0.0
        network 10.0.0.0
        gateway 10.0.0.1

iface eth0 inet6 static
        pre-up modprobe ipv6
        address 2001:1620:f0e:1::11/64
        gateway 2001:1620:f0e:1::1/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::100/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::101/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::102/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::103/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::104/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::105/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::106/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::107/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::108/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::109/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::10a/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::10b/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::10c/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::10d/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::10e/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::10f/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::110/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::111/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::112/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::113/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::114/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::115/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::116/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::117/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::118/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::119/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::11a/64

I noticed two things that maybe the cause :

  • The address and gateway lines include a /netmask when then shouldn't. Remove the /64 from both lines, and put netmask 64 on a separate line.

  • Make sure that no other device on your network has the IPv6 address 2001:1620:f0e:1::11 . That error message "SIOCADDRT: File exists" could be caused by an address clash.

Thanks for your suggestion. I changed the config file:

# 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 eth0 eth0:1
auto lo eth0
iface lo inet loopback

# The primary network interface
iface eth0 inet static
        address 10.0.0.11
        netmask 255.0.0.0
        network 10.0.0.0
        gateway 10.0.0.1

iface eth0 inet6 static
        pre-up modprobe ipv6
        address 2001:1620:f0e:1::11
        gateway 2001:1620:f0e:1::1
        netmask 64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::100/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::101/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::102/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::103/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::104/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::105/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::106/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::107/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::108/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::109/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::10a/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::10b/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::10c/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::10d/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::10e/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::10f/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::110/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::111/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::112/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::113/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::114/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::115/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::116/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::117/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::118/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::119/64
        up /sbin/ifconfig eth0 inet6 add 2001:1620:f0e:1::11a/64

I checked that this address does not exist on another device. After a reboot, the behaviour is the same as before. Nothing changed... Only the autoconfig and link-local address is assigned:

eth0      Link encap:Ethernet  HWaddr c6:9b:e4:4a:12:68
          inet addr:10.0.0.11  Bcast:10.255.255.255  Mask:255.0.0.0
          inet6 addr: 2001:1620:f0e:1:c49b:e4ff:fe4a:1268/64 Scope:Global
          inet6 addr: fe80::c49b:e4ff:fe4a:1268/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:8067 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5719 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2311557 (2.3 MB)  TX bytes:2820681 (2.8 MB)

And restarting the network gives the same error as before:

root@tarantula:~# /etc/init.d/networking restart
* Reconfiguring network interfaces...                                                                                          SIOCADDRT: File exists
Failed to bring up eth0.
                                                                                                                         [ OK ]

I cannot ping 2001:1620:f0e:1::11 (it does not exist on the network), but I can ping 2001:1620:f0e:1::1 (gateway). Perhaps I should disable autoconfiguration (if yes: how?)? Is it possible that the timing on boot is wrong (first it does configure the network from /etc/network/interfaces and then does autoconfiguration and overrides the other config? And why does internet network access work after boot, but after webmin config not?

Is autoconfiguration perhaps enabled in /etc/sysctl.conf , via the line net.ipv6.conf.all.autoconf=1 ?

No, it is disabled

net.ipv6.conf.all.autoconf = 0
net.ipv6.conf.all.accept_ra = 0

That looks fine to me ..

At this point, I am out of ideas - from what I can see, Virtualmin's /etc/network/interfaces file looks fine. You may have to ask Debian experts why the IPv6 addresses are not being activate at boot.

It also looks fine for me, thats the problem =) Ok, I will see what I can do... Thanks for your help!

Thats odd --- I don't have any issues with IPv6 and debian.

I have this same issue on Ubuntu 12.04 - but what I see is the first few addresses get activated, the rest do not until I manually enter the ifconfig commands.