IPv6: Ask for help: No re-connect to v6

ipv6

#1

Issue:
Turris can not provide v6-Internet if the upstream Internet-router was rebooted (or was completely down).

Normal:
Turris provides v6 + v4 to hosts in the network, works mostly fine.
v4 (static) always operational.

Question:

  • How can I overcome this v6 failure?
  • How to enable Turris to re-connect v6 ?
  • Workaround in dhcp possible? Known bug??
    Thank you very much in advance for help and hints!!

Situation / Details

Devices

  • requesting router: Turris Omnia - rtrom01, OS 3.11.4, ICMP Reachable, config firewall, routing: factory default;
  • delegating router: Fritz 7430, FRITZ!OS 07.01
  • Layout: like in RFC 3633 page 3 :slight_smile:
    (+ 2. Turris for testing purpose having default factory settings; same behaviour like 1st Turris)
  • ISP: v6 native Hansenet + v4 Telefonica; v6 native Hansenet provides Prefix Delegation

Case 1:

First boot Fritz. When up and connected boot up Turris. Hosts are connected to Turris by Ethernet LAN (+ WLAN hosts)
Works fine.
Hosts connect via v6 or v4 to Internet.
IA-PD from Fritz is fine.
„ip a“ on hosts shows global address like
inet6 2a01:c23:6859:5bfc::8c0/128 scope global dynamic noprefixroute
inet6 2a01:c23:6859:5bfc:30df:de32:64:7fa5/64 scope global temporary dynamic
inet6 2a01:c23:6859:5bfc:76da:38ff:fea1:2659/64 scope global dynamic mngtmpaddr noprefixroute
Turris shows in Luci-GUI:
Typ: dhcpv6-pd
Prefix Delegated: 2a01:c23:6859:5bfc::/62
Adresse: 2a01:c23:6859:5b00:da58:d7ff:fe00:268c/64
Gateway: fe80::7eff:4dff:fec6:f7a
DNS 1: fd00::7eff:4dff:fec6:f7a

Case 2:

We start like case 1, everything fine.
Then reboot Fritz. Or power down Fritz. Then reboot Fritz. Immediately or hours later (no difference).
Unchanged: Turris, Hosts (permanently up and running).
Problem:

  • No v6 connect to Internet any more for Hosts (LAN, WLAN). Does not come back within hours.

„ip a“ on Host shows
inet6 2a01:c23:6859:5bfc::8c0/128 scope global dynamic noprefixroute
inet6 2a01:c23:6859:5bfc:30df:de32:64:7fa5/64 scope global temporary deprecated dynamic
inet6 2a01:c23:6859:5bfc:76da:38ff:fea1:2659/64 scope global deprecated dynamic mngtmpaddr noprefixroute
all ping-able.

Turris shows in Luci-GUI:
Typ: dhcpv6
Adresse: 2a01:c23:742e:f400:da58:d7ff:fe00:268c/64
Gateway: fe80::7eff:4dff:fec6:f7a
DNS 1: fd00::7eff:4dff:fec6:f7a

Case 3:
Case 1 + Case 2 + Turris rebooted
Works fine like Case 1.

------- Case 1 example / samples -------------
root@turris:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP group default qlen 532
link/ether d8:ZZ:ZZ:ZZ:ZZ:8b brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 532
link/ether d8:ZZ:ZZ:ZZ:ZZ:8c brd ff:ff:ff:ff:ff:ff
inet 192.168.ZZZ.222/24 brd 192.168.ZZZ.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 2a01:c23:6859:5b00:da58:d7ff:fe00:268c/64 scope global noprefixroute dynamic
valid_lft 6884sec preferred_lft 3284sec
inet6 fe80::da58:d7ff:fe00:268c/64 scope link
valid_lft forever preferred_lft forever
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP group default qlen 532
link/ether d8:ZZ:ZZ:ZZ:ZZ:8d brd ff:ff:ff:ff:ff:ff
5: ifb0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 32
link/ether 72:ZZ:ZZ:ZZ:ZZ:82 brd ff:ff:ff:ff:ff:ff
6: ifb1: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 32
link/ether 06:ZZ:ZZ:ZZ:ZZ:d8 brd ff:ff:ff:ff:ff:ff
8: teql0: mtu 1500 qdisc noop state DOWN group default qlen 100
link/void
10: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether d8:ZZ:ZZ:ZZ:ZZ:8b brd ff:ff:ff:ff:ff:ff
inet 192.168.ZZZ.Z1/24 brd 192.168.ZZZ.255 scope global br-lan
valid_lft forever preferred_lft forever
inet6 2a01:c23:6859:5bfc::1/62 scope global noprefixroute dynamic
valid_lft 6660sec preferred_lft 3060sec
inet6 fd13:5c6a:a163::1/60 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::da58:d7ff:fe00:268b/64 scope link
valid_lft forever preferred_lft forever
11: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP group default qlen 1000
link/ether 04:ZZ:ZZ:ZZ:ZZ:5f brd ff:ff:ff:ff:ff:ff
inet6 fe80::6f0:21ff:fe24:b5f/64 scope link
valid_lft forever preferred_lft forever
12: wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP group default qlen 1000
link/ether 04:ZZ:ZZ:ZZ:ZZ:8b brd ff:ff:ff:ff:ff:ff
inet6 fe80::6f0:21ff:fe23:3d8b/64 scope link
valid_lft forever preferred_lft forever
:~#

Host:

enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1280 qdisc fq_codel state UP group default qlen 1000
link/ether 74:da:ZZ:ZZ:ZZ:59 brd ff:ff:ff:ff:ff:ff
inet 192.168.ZZZ.Z3/24 brd 192.168.ZZZ.255 scope global noprefixroute enp6s0
valid_lft forever preferred_lft forever
inet6 fd13:5c6a:a163::8c0/128 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 2a01:c23:6859:5bfc::8c0/128 scope global dynamic noprefixroute
valid_lft 6527sec preferred_lft 2927sec
inet6 fd13:5c6a:a163:0:30df:de32:64:7fa5/64 scope global temporary dynamic
valid_lft 7088sec preferred_lft 1688sec
inet6 fd13:5c6a:a163:0:76da:38ff:fea1:2659/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 7088sec preferred_lft 1688sec
inet6 2a01:c23:6859:5bfc:30df:de32:64:7fa5/64 scope global temporary dynamic
valid_lft 6526sec preferred_lft 1688sec
inet6 2a01:c23:6859:5bfc:76da:38ff:fea1:2659/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 6526sec preferred_lft 1688sec
inet6 fe80::76da:38ff:fea1:2659/64 scope link noprefixroute
valid_lft forever preferred_lft forever

Host:
:~$ ip -6 route show
2a01:c23:6859:5bfc::8c0 dev enp6s0 proto kernel metric 101 pref medium
2a01:c23:6859:5bfc::/64 dev enp6s0 proto ra metric 101 pref medium
2a01:c23:6859:5bfc::/62 via fe80::da58:d7ff:fe00:268b dev enp6s0 proto ra metric 101 pref medium
fd13:5c6a:a163::8c0 dev enp6s0 proto kernel metric 101 pref medium
fd13:5c6a:a163::/64 dev enp6s0 proto ra metric 101 pref medium
fd13:5c6a:a163::/48 via fe80::da58:d7ff:fe00:268b dev enp6s0 proto ra metric 101 pref medium
fe80::/64 dev enp6s0 proto kernel metric 101 pref medium
default via fe80::da58:d7ff:fe00:268b dev enp6s0 proto ra metric 20101 pref medium

Host:
:~$ netstat -rn -A inet6
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
::1/128 :: U 256 1 0 lo
2a01:c23:6859:5bfc::8c0/128 :: U 101 1 0 enp6s0
2a01:c23:6859:5bfc::/64 :: U 101 5 145 enp6s0
2a01:c23:6859:5bfc::/62 fe80::da58:d7ff:fe00:268b UG 101 1 0 enp6s0
fd13:5c6a:a163::8c0/128 :: U 101 1 0 enp6s0
fd13:5c6a:a163::/64 :: U 101 5 401 enp6s0
fd13:5c6a:a163::/48 fe80::da58:d7ff:fe00:268b UG 101 1 0 enp6s0
fe80::/64 :: U 101 1 0 enp6s0
::/0 fe80::da58:d7ff:fe00:268b UG 20101 5 2061 enp6s0
::1/128 :: Un 0 6 20 lo
2a01:c23:6859:5bfc::8c0/128 :: Un 0 2 0 enp6s0
2a01:c23:6859:5bfc:30df:de32:64:7fa5/128 :: Un 0 5 816 enp6s0
2a01:c23:6859:5bfc:76da:38ff:fea1:2659/128 :: Un 0 2 0 enp6s0
fd13:5c6a:a163::8c0/128 :: Un 0 2 0 enp6s0
fd13:5c6a:a163:0:30df:de32:64:7fa5/128 :: Un 0 5 527 enp6s0
fd13:5c6a:a163:0:76da:38ff:fea1:2659/128 :: Un 0 2 0 enp6s0
fe80::76da:38ff:fea1:2659/128 :: Un 0 5 185 enp6s0
ff00::/8 :: U 256 5 308 enp6s0
::/0 :: !n -1 1 1 lo
:~$

WLAN Host:

wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether f0:d5:ZZ:ZZ:ZZ:d5 brd ff:ff:ff:ff:ff:ff
inet 192.168.ZZZ.Z85/24 brd 192.168.ZZZ.255 scope global noprefixroute wlan1
valid_lft forever preferred_lft forever
inet6 fd13:5c6a:a163::90f/128 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 2a01:c23:6859:5bfc::90f/128 scope global dynamic noprefixroute
valid_lft 5131sec preferred_lft 1531sec
inet6 fd13:5c6a:a163:0:4ce0:b395:57d7:908f/64 scope global dynamic noprefixroute
valid_lft 7094sec preferred_lft 1694sec
inet6 2a01:c23:6859:5bfc:f797:d2fe:d373:a4ae/64 scope global dynamic noprefixroute
valid_lft 6931sec preferred_lft 1694sec
inet6 fe80::29ef:d330:685:fc7/64 scope link noprefixroute
valid_lft forever preferred_lft forever

:~$ ip -6 route show
::1 dev lo proto kernel metric 256 pref medium
2a01:c23:6859:5bfc::90f dev wlan1 proto kernel metric 600 pref medium
2a01:c23:6859:5bfc::/64 dev wlan1 proto ra metric 600 pref medium
2a01:c23:6859:5bfc::/62 via fe80::da58:d7ff:fe00:268b dev wlan1 proto ra metric 600 pref medium
fd13:5c6a:a163::90f dev wlan1 proto kernel metric 600 pref medium
fd13:5c6a:a163::/64 dev wlan1 proto ra metric 600 pref medium
fd13:5c6a:a163::/48 via fe80::da58:d7ff:fe00:268b dev wlan1 proto ra metric 600 pref medium
fe80::/64 dev wlan1 proto kernel metric 600 pref medium
default via fe80::da58:d7ff:fe00:268b dev wlan1 proto ra metric 20600 pref medium
:~$

:~$ netstat -rn -A inet6
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
::1/128 :: U 256 2 0 lo
2a01:c23:6859:5bfc::90f/128 :: U 600 1 0 wlan1
2a01:c23:6859:5bfc::/64 :: U 600 1 0 wlan1
2a01:c23:6859:5bfc::/62 fe80::da58:d7ff:fe00:268b UG 600 1 0 wlan1
fd13:5c6a:a163::90f/128 :: U 600 1 0 wlan1
fd13:5c6a:a163::/64 :: U 600 1 0 wlan1
fd13:5c6a:a163::/48 fe80::da58:d7ff:fe00:268b UG 600 1 0 wlan1
fe80::/64 :: U 600 2 0 wlan1
::/0 fe80::da58:d7ff:fe00:268b UG 20600 5 0 wlan1
::1/128 :: Un 0 6 0 lo
2a01:c23:6859:5bfc::90f/128 :: Un 0 4 0 wlan1
2a01:c23:6859:5bfc:f797:d2fe:d373:a4ae/128 :: Un 0 4 0 wlan1
fd13:5c6a:a163::90f/128 :: Un 0 2 0 wlan1
fd13:5c6a:a163:0:4ce0:b395:57d7:908f/128 :: Un 0 4 0 wlan1
fe80::29ef:d330:685:fc7/128 :: Un 0 5 0 wlan1
ff00::/8 :: U 256 6 0 wlan1
::/0 :: !n -1 1 0 lo
:~$

------- Case 2 example samples -------------
Case 2:
Fritz rebooted.
Unchanged: Turris, Hosts (permanently up and running).
Problem:

  • No v6 connect to Internet any more for Hosts. Does not come back within hours.

„ip a“ on Host shows
inet6 2a01:c23:6859:5bfc::8c0/128 scope global dynamic noprefixroute
inet6 2a01:c23:6859:5bfc:30df:de32:64:7fa5/64 scope global temporary deprecated dynamic
inet6 2a01:c23:6859:5bfc:76da:38ff:fea1:2659/64 scope global deprecated dynamic mngtmpaddr noprefixroute

Turris shows in Luci-GUI:
Typ: dhcpv6
Adresse: 2a01:c23:742e:f400:da58:d7ff:fe00:268c/64
Gateway: fe80::7eff:4dff:fec6:f7a
DNS 1: fd00::7eff:4dff:fec6:f7a

Turris:

_turris:~# ip -6 route show
default from 2a01:c23:742e:f400::/64 via fe80::7eff:4dff:fec6:f7a dev eth1 proto static metric 512
default from fd00::/64 via fe80::7eff:4dff:fec6:f7a dev eth1 proto static metric 512
2a01:c23:742e:f400::/56 from 2a01:c23:742e:f400::/64 via fe80::7eff:4dff:fec6:f7a dev eth1 proto static metric 512
2a01:c23:742e:f400::/56 from fd00::/64 via fe80::7eff:4dff:fec6:f7a dev eth1 proto static metric 512
2a01:c23:742e:f400::/64 dev eth1 proto static metric 256
fd00::/64 dev eth1 proto static metric 256
fd00::/64 via fe80::7eff:4dff:fec6:f7a dev eth1 proto static metric 512
fd13:5c6a:a163::/64 dev br-lan proto static metric 1024
unreachable fd13:5c6a:a163::/48 dev lo proto static metric 2147483647 error -113
fe80::/64 dev br-lan proto kernel metric 256
fe80::/64 dev wlan0 proto kernel metric 256
fe80::/64 dev wlan1 proto kernel metric 256
fe80::/64 dev eth1 proto kernel metric 256

_turris:~# route -A inet6
Kernel IPv6 routing table
Destination Next Hop Flags Metric Ref Use Iface
::/0 fe80::7eff:4dff:fec6:f7a UG 512 2 78 eth1
::/0 fe80::7eff:4dff:fec6:f7a UG 512 0 0 eth1
2a01:c23:742e:f400::/56 fe80::7eff:4dff:fec6:f7a UG 512 0 0 eth1
2a01:c23:742e:f400::/56 fe80::7eff:4dff:fec6:f7a UG 512 0 0 eth1
2a01:c23:742e:f400::/64 :: U 256 2 5 eth1
fd00::/64 :: U 256 0 0 eth1
fd00::/64 fe80::7eff:4dff:fec6:f7a UG 512 0 0 eth1
fd13:5c6a:a163::/64 :: U 1024 2 908 br-lan
fd13:5c6a:a163::/48 :: !n 2147483647 0 0 lo
fe80::/64 :: U 256 2 55 br-lan
fe80::/64 :: U 256 0 0 wlan0
fe80::/64 :: U 256 0 0 wlan1
fe80::/64 :: U 256 0 0 eth1
::/0 :: !n -1 1 235678 lo
::1/128 :: Un 0 3 37 lo
2a01:c23:6859:5bfc::/128 :: Un 0 1 0 lo
2a01:c23:6859:5bfc::1/128 :: Un 0 3 365 lo
2a01:c23:742e:f400::/128 :: Un 0 1 0 lo
2a01:c23:742e:f400:da58:d7ff:fe00:268c/128 :: Un 0 3 83 lo
fd00::/128 :: Un 0 1 0 lo
fd00::da58:d7ff:fe00:268c/128 :: Un 0 1 0 lo
fd13:5c6a:a163::/128 :: Un 0 1 0 lo
fd13:5c6a:a163::1/128 :: Un 0 3 992 lo
fe80::/128 :: Un 0 1 0 lo
fe80::/128 :: Un 0 1 0 lo
fe80::/128 :: Un 0 1 0 lo
fe80::/128 :: Un 0 1 0 lo
fe80::6f0:21ff:fe23:3d8b/128 :: Un 0 1 0 lo
fe80::6f0:21ff:fe24:b5f/128 :: Un 0 1 0 lo
fe80::da58:d7ff:fe00:268b/128 :: Un 0 3 788 lo
fe80::da58:d7ff:fe00:268c/128 :: Un 0 2 600 lo
ff00::/8 :: U 256 2 2948 br-lan
ff00::/8 :: U 256 0 0 wlan0
ff00::/8 :: U 256 0 0 wlan1
ff00::/8 :: U 256 2 192 eth1
::/0 :: !n -1 1 235678 lo

root@turris:~# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP group default qlen 532
link/ether d8:ZZ:ZZ:ZZ:ZZ:8b brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 532
link/ether d8:ZZ:ZZ:ZZ:ZZ:8c brd ff:ff:ff:ff:ff:ff
inet 192.168.ZZZ.222/24 brd 192.168.ZZZ.255 scope global eth1
valid_lft forever preferred_lft forever
inet6 2a01:c23:742e:f400:da58:d7ff:fe00:268c/64 scope global noprefixroute dynamic
valid_lft 7027sec preferred_lft 3427sec
inet6 fd00::da58:d7ff:fe00:268c/64 scope global deprecated noprefixroute dynamic
valid_lft 7027sec preferred_lft 0sec
inet6 fe80::da58:d7ff:fe00:268c/64 scope link
valid_lft forever preferred_lft forever
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP group default qlen 532
link/ether d8:ZZ:ZZ:ZZ:ZZ:8d brd ff:ff:ff:ff:ff:ff
5: ifb0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 32
link/ether 72:ZZ:ZZ:ZZ:ZZ:82 brd ff:ff:ff:ff:ff:ff
6: ifb1: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN group default qlen 32
link/ether 06:ZZ:ZZ:ZZ:ZZ:d8 brd ff:ff:ff:ff:ff:ff
8: teql0: mtu 1500 qdisc noop state DOWN group default qlen 100
link/void
10: br-lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether d8:ZZ:ZZ:ZZ:ZZ:8b brd ff:ff:ff:ff:ff:ff
inet 192.168.ZZZ.Z1/24 brd 192.168.ZZZ.255 scope global br-lan
valid_lft forever preferred_lft forever
inet6 2a01:c23:6859:5bfc::1/62 scope global deprecated noprefixroute dynamic
valid_lft 6252sec preferred_lft 0sec
inet6 fd13:5c6a:a163::1/60 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 fe80::da58:d7ff:fe00:268b/64 scope link
valid_lft forever preferred_lft forever
11: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br-lan state UP group default qlen 1000
link/ether 04:ZZ:ZZ:ZZ:ZZ:5f brd ff:ff:ff:ff:ff:ff
inet6 fe80::6f0:21ff:fe24:b5f/64 scope link
valid_lft forever preferred_lft forever
12: wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br-lan state UP group default qlen 1000
link/ether 04:ZZ:ZZ:ZZ:ZZ:8b brd ff:ff:ff:ff:ff:ff
inet6 fe80::6f0:21ff:fe23:3d8b/64 scope link
valid_lft forever preferred_lft forever

Host:
enp6s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1280 qdisc fq_codel state UP group default qlen 1000
link/ether 74:da:ZZ:ZZ:ZZ:59 brd ff:ff:ff:ff:ff:ff
inet 192.168.ZZZ.Z3/24 brd 192.168.ZZZ.255 scope global noprefixroute enp6s0
valid_lft forever preferred_lft forever
inet6 fd13:5c6a:a163::8c0/128 scope global noprefixroute
valid_lft forever preferred_lft forever
inet6 2a01:c23:6859:5bfc::8c0/128 scope global dynamic noprefixroute
valid_lft 5781sec preferred_lft 2181sec
inet6 fd13:5c6a:a163:0:30df:de32:64:7fa5/64 scope global temporary dynamic
valid_lft 7039sec preferred_lft 1639sec
inet6 fd13:5c6a:a163:0:76da:38ff:fea1:2659/64 scope global dynamic mngtmpaddr noprefixroute
valid_lft 7039sec preferred_lft 1639sec
inet6 2a01:c23:6859:5bfc:30df:de32:64:7fa5/64 scope global temporary deprecated dynamic
valid_lft 5782sec preferred_lft 0sec
inet6 2a01:c23:6859:5bfc:76da:38ff:fea1:2659/64 scope global deprecated dynamic mngtmpaddr noprefixroute
valid_lft 5782sec preferred_lft 0sec
inet6 fe80::76da:38ff:fea1:2659/64 scope link noprefixroute
valid_lft forever preferred_lft forever

Host
:~$ ip -6 route show
2a01:c23:6859:5bfc::8c0 dev enp6s0 proto kernel metric 101 pref medium
2a01:c23:6859:5bfc::/64 dev enp6s0 proto ra metric 101 pref medium
2a01:c23:6859:5bfc::/62 via fe80::da58:d7ff:fe00:268b dev enp6s0 proto ra metric 101 pref medium
fd13:5c6a:a163::8c0 dev enp6s0 proto kernel metric 101 pref medium
fd13:5c6a:a163::/64 dev enp6s0 proto ra metric 101 pref medium
fd13:5c6a:a163::/48 via fe80::da58:d7ff:fe00:268b dev enp6s0 proto ra metric 101 pref medium
fe80::/64 dev enp6s0 proto kernel metric 101 pref medium

:~$ netstat -rn -A inet6
Kernel IPv6 routing table
Destination Next Hop Flag Met Ref Use If
::1/128 :: U 256 1 0 lo
2a01:c23:6859:5bfc::8c0/128 :: U 101 1 0 enp6s0
2a01:c23:6859:5bfc::/64 :: U 101 5 193 enp6s0
2a01:c23:6859:5bfc::/62 fe80::da58:d7ff:fe00:268b UG 101 1 0 enp6s0
fd13:5c6a:a163::8c0/128 :: U 101 1 0 enp6s0
fd13:5c6a:a163::/64 :: U 101 5 477 enp6s0
fd13:5c6a:a163::/48 fe80::da58:d7ff:fe00:268b UG 101 1 0 enp6s0
fe80::/64 :: U 101 1 0 enp6s0
::/0 :: !n -1 1 1 lo
::1/128 :: Un 0 6 20 lo
2a01:c23:6859:5bfc::8c0/128 :: Un 0 3 3 enp6s0
2a01:c23:6859:5bfc:30df:de32:64:7fa5/128 :: Un 0 6 859 enp6s0
2a01:c23:6859:5bfc:76da:38ff:fea1:2659/128 :: Un 0 4 3 enp6s0
fd13:5c6a:a163::8c0/128 :: Un 0 2 0 enp6s0
fd13:5c6a:a163:0:30df:de32:64:7fa5/128 :: Un 0 5 597 enp6s0
fd13:5c6a:a163:0:76da:38ff:fea1:2659/128 :: Un 0 2 0 enp6s0
fe80::76da:38ff:fea1:2659/128 :: Un 0 5 233 enp6s0
ff00::/8 :: U 256 5 369 enp6s0
::/0 :: !n -1 1 1 lo

Fritz in Case2:
IPv6-Adresse: 2a01:c23:7600:6e46:7eff:4dff:fec6:f7d, Gültigkeit: 258603/172203s,
IPv6-Präfix: 2a01:c23:742e:f400::/56, Gültigkeit: 257585/171185s
ULA Unique Local Address FRITZ!Box: fd00::7eff:4dff:fec6:f7a/64
Lokaler DNSv6-Server: fd00:0:0:0:7eff:4dff:fec6:f7a Yes:DNSv6-Server auch über Router Advertisement bekanntgeben (RFC 5006)


IP v6 failure after reboot of upstream IN router
#2

netifd is outdated/buggy in TOS3.x and this might be just another bug. TOS4.x b1 might cure the issue.


#3

additional difference between failure and working found. Unfortunately I do not understand what it means. Can you help explaining to me, please?:

This route is not generated by itself. Restarting Turris network does create this route.

ifstatus wan6
[…]
“route”: [
[…]
“target”: “2a01:c22:b818:fa00::”,
“mask”: 56,
“nexthop”: “fe80::7eff:4dff:fec6:f7a”,
“metric”: 512,
“valid”: 1678,
“source”: “2a01:c22:b818:fafc::/62”

with:

IPv6-Präfix is: 2a01:c22:b818:fa00::/56 FritzBox tells me in GUI
ULA of FRITZBox: fd00::7eff:4dff:fec6:f7a/64 FritzBox tells me in GUI

2a01:c22:b818:fafc:: seems to be Turris
br-lan: inet6 2a01:c22:b818:fafc::1/62 scope global noprefixroute dynamic


#4

Did you try TOS4.x beta 1 and see whether it makes a difference? If it is a bug in netifd in TOS3.x it is likely not going to be patched and thus hardly worth to investigate/bother.

If you are familiar with the schnapps concept it will hardly take 30 minutes to give it a try with TOS4.x beta 1 and switch back to TOS3.x, if wanted.


#5

NO.

No, the IPv6 connection is NOT re-established after reboot of upstream internet device (Fritz).
The OS version is actually 4.0 in my second Turris.
It works if I reboot the Turris, too. ICMP is no issue any longer. Fine.

The bug about reconnecting IPv6 is not solved. Host can not use IPv6 after temp outage of upstream router. Reproducible.
IPv4 is working as expected.

Beside that:
Sparse communication, good idea. You guys do a good job and I want to say: Thank you!

About the new version (4beta1) I’d like to remark:

[…removed and moved …]

Best regards, Dietmar

Thanks for spending your time and effort!


#6

Too bad that it does not sort the issue.


There is a particular thread for (lodging) feedback on Turris OS 4.0 beta1 is released! which is also watched by the developers.


About the DNS upstream resolver - that all can be done but (currently) neither via Foris or LuCI, least not if either kresd or unbound is utilized as local caching resolver.
The corresponding LuCI setting is just for dnsmasq and bypassing any local caching resolver, whilst the Foris settings being parsed to kresd.


#7

Thanks a lot for the swift and competent reply!

I took your suggestions to heart and moved the points about 4beta feedback.

I understand: Having no IPv6 available in host machines after reboot of Internet router can currently be addressed by workaround only. No fix in reach.
OK, so I have to restart network service from cron frequently. Not smart but possible.

Thanks a lot for your time and effort!

Dietmar


#8

There might be some solution - it is just that I cannot see where/how.

I would expect that if the F-box is rebooting or shutdown/started there would be media sensing (link down / up) in the TO and thus invoking the hotplug scripts related to network connectivity.
Either that is not happening for some reason, and thus could be a bug in the TOS, or the F-Box has some issue to propagate/communicate the ipv6 relevant data downstream to the TO.

Did you try some other client, e.g. laptop/desktop, directly on the F-Box upon reboot/shutdown/start? Would such client exhibit that same issue - which would indicate some issue with the F-Box?

If you suspect that the TO is at fault you could open a ticket with the TO developers at https://gitlab.labs.nic.cz/turris/turris-os-packages. Or first seek input from a broader user base here https://forum.openwrt.org.

Last but not least, since the network packages for TOS4.x are streamed directly from the OpenWRT 18.06 feeds, and thus are OpenWRT scope, you could also open a ticket with them https://bugs.openwrt.org


#9

Could you please verify that you have same delegated IPv6 range before and after fritz-box restart? You have to trigger network reconfiguration on Turris after f-box restart with /etc/init.d/network restart.

I think that what is happening is that fritz reboots without breaking link but it might not automatically delegate IPv6 range. That means that Turris does not know that upstream router no longer knows about it and won’t ask for IPv6 range. IPv4 still works because fritz for sure uses same IP range.

You might not need to restart whole Turris to fix this. It should be enough to trigger DHCPv6. The easiest way to do that is to just restart networking all together (/etc/init.d/network restart).


#10

Did you try FRITZ!OS 7.10 yet?


#11

“… try FRITZ!OS 7.10…” Good idea.

Unfortunately there is no such version available for Fritz7430. The model I use is 7430 :frowning:
In some weeks I’ll beable to test with Fritz7590 at a friend.

Thanks for taking care!


#12

Restart:
In 90% a manual network restart makes Turris work with v6 (after Fritz reboot, soft or current).
I can put the network restart in cron and … well, sometimes works, sometimes not. However.
When I put “reboot” in Turris cron Turris always works fine afterwards.

Turris OS is 4beta1.

Could you please verify that you have same delegated IPv6 range before and after fritz-box restart?

Do not fully understand. I think we only talk about the global addresses. Not ULA, right? What part of v6 address you mean with “range”? I need help to understand.

I think that what is happening is that fritz reboots without breaking link but it might not automatically delegate IPv6 range.

Probably. After Fritz shutdown Turris immediately recognises v6 is gone (Status overview LuCI). And then something does not take happen. (v4 is always immediately working auto and static - the way it should be)

I have no idea if Fritz is not sending something or Turris can not ask.
RFC3633 tells us:
" A requesting router requests prefix(es) from the delegating router, as described in Section 12.1. The delegating router chooses prefix(es) for delegation, and responds with prefix(es) to the requesting router. The requesting router is then responsible for the delegated prefix(es)."
This means Turris has to ask for PD.
Works after Turris reboot and often works after Turris network restart.

I just do not know how Turris becomes aware that Fritz is back and operational.
In v4 it works …

How should that work? Is there s description somewhere?

As soon as Turris knows it makes sense to ask Fritz for PD then … ?what? Who does what? One of them fails to do the job for IPv6.

Turris “logread” is available. Is it possible to see in logread what goes wrong??


#13

Not sure that this will help, but here’s the link to the current firmware for your box:
http://ftp.avm.de/fritzbox/fritzbox-7430/deutschland/fritz.os/FRITZ.Box_7430-07.10.image


#14

Though not clear and If not mistaken your ISP provides a /56 ipv6 range to downstream, e.g. 2a01:c23:742e:f400::/56 and the TO then utilizes that range for its downstream clients with a /64 range.

I think the question was aimed whether that ipv6 pd/range (2a01:c23:742e:f400::/56) remains the same after each reboot/start of the FB, which would commonly be the case with ipv6 PD with most ISP.


What should happen, in native ipv6 via dhcp pd, is

  1. ISP advertises ipv6 pd/range to FB (e.g. 2a01:c23:742e:f400::/56)
  2. FB advertising ivp6 pd/range to downstream clients, in your case to the TO
  3. TO then advertising ipv6 to its downstream clients

The issue appears in step 2, either the FB behaving erroneously or the TO but I am not sure of how to further debug this, other than perhaps trying a new FB OS or modem/router other than a FB.

Also, you did not respond to


#15

Very good analysis and very quick. Thank you!
I’ll work on all points and will report.
Thanks for your attention and effort!


#16

FRITZ.Box_7430-07.10.image

Cool - I was not able to find it. Thanks for the hint.
I’ll give it a try asap.
Thx!

UPDATE:
Today AVM provided the update via semi-automatic update from out of the GUI. 7.10 is applied now to 7430.

NO better in behaviour, problem still exists.
Rebooting FritzBox (current or GUI) leads to missing v6 connect by TO
:frowning:

Since Fritz 7.10 and a few system restarts I can not connect to IPv6 with any TO any more. Both devices do not connect to v6 any longer.


#17

One more thing - if you follow OpenWRT upstream development or look at their bug tracker | filtered to ipv6 trunk and 18.06 you will see that there are plenty of issues with ipv6 and one or the other could pertain to this issue, that if TO is at fault and not the FB…

Also note that upstream trunk refers to their Master development, the future OpenWRT 19.x | TOS5.x branches, and patches are not always implemented/backported in current OpenWRT 18.x | TOS4.x branches


#18

That is too bad…

If you want to get to the bottom of it and invest a bit time/effort you could run a tcpdump on the TO and analyse with a tool like wireshark the packet traffic between the FB (when rebooting/cold started) and the TO.
It should reveal whether the TO is requesting the ipv6 from upstream and also whether the FB is broadcasting it to the TO, respectively whether the packages are reaching the TO.
To my knowledge AVM does not provision tcpdump in their proprietary OS for the FB.

If I am not mistaken the tcpdump packet capture should cover traffic on UDP ports 546 and 547, e.g. on the TO via ssh cli

tcpdump -i [put the TO wan6 iface name here] udp portrange 546-547 -XXevvvw /tmp/[name your dump file here]

Once the capture is done download the dump file from /tmp via ssh to a client that runs wireshark and import the dump file for inspection


#19

There is https://openwrt.org/packages/pkgdata/watchcat with corresponding https://openwrt.org/packages/pkgdata/luci-app-watchcat. It will not cure the issue (potential bug) but might better than cron, though I have not tried it.


#20

Results:
Yes: All clients (hosts: Laptop and Desktop, Linux) directly connected to FritzBox do have full IPv6 access. No matter if Fritz rebooted hard or via GUI. Via Ethernet and WLAN. ipv6-test.com shows green :wink:

No connect any more if TO is in between (before FritzOS 7.10 it worked after TO reboot).

I exchanged the Fritz7430 against the provider box (o2 6441): IPv6 is operational for hosts (Ethernet)! Same host, same box, TO : no ipv6 connect for host.
TO (nr. 2) was resetted to factory settings: no different behaviour, no v6 traffic
No idea if this provider box o2 6441 can do PD properly.
Next I need to reset the Fritz7430 to factory (I can not go back to FritzOS 7.01, refuses). Will take some days.