Maybe I should let slaacd run in the foreground till IPv6 stops working
and see if that give out clues.
The output of slaacd looks completely normal. Like this over and over again:
ICMPv6 type(134), code(0) from fe80::2a0:57ff:fe3a:ac77%vio0 of length 112
update_iface_ra_dfr, dfr state: PROPOSAL_CONFIGURED, rl: 1800
dfr_proposal_state_transition[vio0] PROPOSAL_CONFIGURED ->
PROPOSAL_CONFIGURED, timo: 1788
update_iface_ra_prefix, addr state: PROPOSAL_CONFIGURED
updating address
configure_address: 1
iface_state_transition[vio0] IF_BOUND -> IF_BOUND, timo: -1
addr_proposal_state_transition[vio0] PROPOSAL_CONFIGURED ->
PROPOSAL_CONFIGURED, timo: 60477
update_iface_ra_prefix, addr state: PROPOSAL_CONFIGURED
updating address
configure_address: 1
iface_state_transition[vio0] IF_BOUND -> IF_BOUND, timo: -1
addr_proposal_state_transition[vio0] PROPOSAL_CONFIGURED ->
PROPOSAL_CONFIGURED, timo: 604788
update_iface_ra_rdns, rdns state: PROPOSAL_CONFIGURED, rl: 1800
rdns_proposal_state_transition[vio0] PROPOSAL_CONFIGURED ->
PROPOSAL_CONFIGURED, timo: 1788
configure_interface: vio0
configure_interface: vio0
I also dug into the debug output of my router.
Echo request goes out, reply comes back and is routed/forwarded to the
OpenBSD host.
[IPv6-Router] 2024/06/23 18:03:27,197 Devicetime: 2024/06/23
18:03:27,639 [INTERNET (14)]
IP packet, scope global, routing tag 0:
IPv6: 2a00:1450:4005:801::200e ->
2a02:810d:5fc0:f2a:bb4d:6e1a:d2f:c576, Payload-Len: 64
ICMP: Echo (ping) reply (129), ID: 18553, Seq: 0
--> Firewall: accepted, forwarded unicast via HOST_MAIL1 (6)
(The log-output is indistinguishable from when it is working.) Yet I
don't see them arriving with tcpdump:
# tcpdump -n -i vio0 ip6
tcpdump: listening on vio0, link-type EN10MB
18:29:38.703181 fe80::be24:11ff:fe10:5272.46404 >
fe80::2a0:57ff:fe3a:ac77.53: 29603+ AAAA? google.com.(28) [flowlabel
0xe0681]
18:29:38.731683 fe80::2a0:57ff:fe3a:ac77.53 >
fe80::be24:11ff:fe10:5272.46404: 29603 1/0/0 AAAA[|domain]
18:29:38.731839 fd00:172:17:170:c57c:a20c:2d74:124 >
2a00:1450:4005:801::200e: icmp6: echo request
18:29:39.740141 fd00:172:17:170:c57c:a20c:2d74:124 >
2a00:1450:4005:801::200e: icmp6: echo request
18:29:40.740110 fd00:172:17:170:c57c:a20c:2d74:124 >
2a00:1450:4005:801::200e: icmp6: echo request
18:29:42.980121 fe80::be24:11ff:fe10:5272 > fe80::2a0:57ff:fe3a:ac77:
icmp6: neighbor sol: who has fe80::2a0:57ff:fe3a:ac77
18:29:42.980551 fe80::2a0:57ff:fe3a:ac77 > fe80::be24:11ff:fe10:5272:
icmp6: neighbor adv: tgt is fe80::2a0:57ff:fe3a:ac77
18:29:43.731733 fe80::2a0:57ff:fe3a:ac77 > fe80::be24:11ff:fe10:5272:
icmp6: neighbor sol: who has fe80::be24:11ff:fe10:5272
18:29:43.731774 fe80::be24:11ff:fe10:5272 > fe80::2a0:57ff:fe3a:ac77:
icmp6: neighbor adv: tgt is fe80::be24:11ff:fe10:5272
^C
47 packets received by filter
0 packets dropped by kernel
Again if I restart the host it works (for about a day):
# tcpdump -n -i vio0 ip6
tcpdump: listening on vio0, link-type EN10MB
18:36:23.536231 fe80::be24:11ff:fe10:5272.40542 >
fe80::2a0:57ff:fe3a:ac77.53: 31164+ AAAA? google.com.(28) [flowlabel
0xb2311]
18:36:23.578447 fe80::2a0:57ff:fe3a:ac77.53 >
fe80::be24:11ff:fe10:5272.40542: 31164 1/0/0 AAAA[|domain]
18:36:23.579030 fd00:172:17:170:202c:9944:920d:70dd >
2a00:1450:4005:801::200e: icmp6: echo request
18:36:23.612097 fe80::2a0:57ff:fe3a:ac77 > ff02::1:ff0d:70dd: icmp6:
neighbor sol: who has fd00:172:17:170:202c:9944:920d:70dd
18:36:23.612132 fe80::be24:11ff:fe10:5272 > fe80::2a0:57ff:fe3a:ac77:
icmp6: neighbor adv: tgt is fd00:172:17:170:202c:9944:920d:70dd
18:36:23.612433 2a00:1450:4005:801::200e >
fd00:172:17:170:202c:9944:920d:70dd: icmp6: echo reply
18:36:24.580102 fd00:172:17:170:202c:9944:920d:70dd >
2a00:1450:4005:801::200e: icmp6: echo request
18:36:24.612662 2a00:1450:4005:801::200e >
fd00:172:17:170:202c:9944:920d:70dd: icmp6: echo reply
18:36:25.580090 fd00:172:17:170:202c:9944:920d:70dd >
2a00:1450:4005:801::200e: icmp6: echo request
18:36:25.611510 2a00:1450:4005:801::200e >
fd00:172:17:170:202c:9944:920d:70dd: icmp6: echo reply
^C
79 packets received by filter
0 packets dropped by kernel
Strange
On 23 Jun 2024, at 2:27 AM, Thomas Bohl
<openbsd-misc-518...@aloof.de> wrote:
Hello,
I'm using ULAs for my local IPv6 networks. The hosts have internet
access via the router doing NPTv6.
After around 20 to 24 hours of uptime the OpenBSD hosts (three in
total) are no longer able to reach the IPv6 internet. A restart of
the affected hosts usually helps. In rare cases a double restart is
required. Linux and Windows don't show this problem.
Any ideas? What information should I provide in order to debug this
further?
# uname -a
OpenBSD mail1 7.5 GENERIC#79 amd64
# cat /etc/hostname.vio0
# BEGIN ANSIBLE MANAGED BLOCK IPv6
inet6 -soii
inet6 autoconf
# END ANSIBLE MANAGED BLOCK IPv6
# BEGIN ANSIBLE MANAGED BLOCK IPv4
inet 172.17.17.2 255.255.255.252
!route add default 172.17.17.1
# END ANSIBLE MANAGED BLOCK IPv4
When things are working:
# uptime
5:11PM up 9 mins, 1 user, load averages: 0.00, 0.01, 0.00
# ifconfig vio0
vio0:
flags=648843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF6TEMP,AUTOCONF6,INET6_NOSOII> mtu 1500
lladdr bc:24:11:10:52:72
index 1 priority 0 llprio 3
groups: egress
media: Ethernet autoselect
status: active
inet6 fe80::be24:11ff:fe10:5272%vio0 prefixlen 64 scopeid 0x1
inet 172.17.17.2 netmask 0xfffffffc broadcast 172.17.17.3
inet6 fd00:172:17:170:be24:11ff:fe10:5272 prefixlen 64
autoconf pltime 604644 vltime 2591844
inet6 fd00:172:17:170:1fa3:a3db:db4a:707d prefixlen 64
autoconf temporary pltime 74422 vltime 172248
# ping6 -vn -c 3 google.com
PING google.com (fd00:172:17:170:1fa3:a3db:db4a:707d -->
2a00:1450:4005:801::200e): 56 data bytes
64 bytes from 2a00:1450:4005:801::200e: icmp_seq=0 hlim=114
time=27.533 ms
64 bytes from 2a00:1450:4005:801::200e: icmp_seq=1 hlim=114
time=30.263 ms
64 bytes from 2a00:1450:4005:801::200e: icmp_seq=2 hlim=114
time=30.143 ms
--- google.com ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 27.533/29.313/30.263/1.260 ms
# traceroute6 -vn google.com
traceroute6 to google.com (2a00:1450:4005:801::200e), 64 hops max, 60
byte packets
1 fd00:172:17:170:2a0:57ff:fe3a:ac77 68 bytes to
fd00:172:17:170:1fa3:a3db:db4a:707d 0.227 ms 0.159 ms 0.136 ms
2 2a02:810d:1:bf::3 68 bytes to
fd00:172:17:170:1fa3:a3db:db4a:707d 13.606 ms 2a02:810d:1:bf::2 68
bytes to fd00:172:17:170:1fa3:a3db:db4a:707d 15.823 ms
2a02:810d:1:bf::3 68 bytes to fd00:172:17:170:1fa3:a3db:db4a:707d
14.467 ms
3 * * *
4 * * *
5 * * *
6 2001:4860:1:1::2a4 68 bytes to
fd00:172:17:170:1fa3:a3db:db4a:707d 16.263 ms 12.806 ms 14.327 ms
7 * 2001:4860:0:1::839f 68 bytes to
fd00:172:17:170:1fa3:a3db:db4a:707d 15.828 ms *
8 * * *
9 2001:4860::c:4003:4958 152 bytes to
fd00:172:17:170:1fa3:a3db:db4a:707d 27.715 ms 29.765 ms 30.264 ms
10 2001:4860::c:4002:f990 152 bytes to
fd00:172:17:170:1fa3:a3db:db4a:707d 31.119 ms 2001:4860::c:4002:f991
152 bytes to fd00:172:17:170:1fa3:a3db:db4a:707d 29.906 ms
2001:4860::c:4002:f990 152 bytes to
fd00:172:17:170:1fa3:a3db:db4a:707d 36.316 ms
11 2001:4860::c:4001:ebf 152 bytes to
fd00:172:17:170:1fa3:a3db:db4a:707d 29.679 ms 2001:4860::c:4002:7869
152 bytes to fd00:172:17:170:1fa3:a3db:db4a:707d 33.901 ms 31.045 ms
12 2001:4860::9:4001:ecb 68 bytes to
fd00:172:17:170:1fa3:a3db:db4a:707d 29.68 ms 2001:4860::9:4001:ec0
68 bytes to fd00:172:17:170:1fa3:a3db:db4a:707d 29.575 ms
2001:4860::9:4001:ecb 68 bytes to
fd00:172:17:170:1fa3:a3db:db4a:707d 36.681 ms
13 2001:4860:0:1::6b65 68 bytes to
fd00:172:17:170:1fa3:a3db:db4a:707d 29.283 ms * *
14 2001:4860:0:1::6b65 68 bytes to
fd00:172:17:170:1fa3:a3db:db4a:707d 30.595 ms
2a00:1450:4005:801::200e 68 bytes to
fd00:172:17:170:1fa3:a3db:db4a:707d 40.122 ms 2001:4860:0:1::6b65 68
bytes to fd00:172:17:170:1fa3:a3db:db4a:707d 30.369 ms
# route -n show -inet6
Routing tables
Internet6:
Destination Gateway Flags Refs
Use Mtu Prio Iface
default fe80::2a0:57ff:fe3a:ac77%vio0 UGS 0 8
- 8 vio0
::/96 ::1 UGRS 0 0
32768 8 lo0
::1 ::1 UHhl 10 20
32768 1 lo0
::ffff:0.0.0.0/96 ::1 UGRS
0 0 32768 8 lo0
2002::/24 ::1 UGRS 0
0 32768 8 lo0
2002:7f00::/24 ::1 UGRS
0 0 32768 8 lo0
2002:e000::/20 ::1 UGRS
0 0 32768 8 lo0
2002:ff00::/24 ::1 UGRS
0 0 32768 8 lo0
fd00:172:17:170::/64 fd00:172:17:170:be24:11ff:fe10:5272
UCPn 0 1 - 4 vio0
fd00:172:17:170::/64 fd00:172:17:170:1fa3:a3db:db4a:707d
UCPn 0 0 - 4 vio0
fd00:172:17:170:1fa3:a3db:db4a:707d
bc:24:11:10:52:72 UHLl 0 193 - 1
vio0
fd00:172:17:170:be24:11ff:fe10:5272
bc:24:11:10:52:72 UHLl 0 0 - 1
vio0
fe80::/10 ::1 UGRS 0
1 32768 8 lo0
fec0::/10 ::1 UGRS 0
0 32768 8 lo0
fe80::%vio0/64 fe80::be24:11ff:fe10:5272%vio0 UCn
1 0 - 4 vio0
fe80::2a0:57ff:fe3a:ac77%vio0 00:a0:57:3a:ac:77
UHLch 1 91 - 3 vio0
fe80::be24:11ff:fe10:5272%vio0
bc:24:11:10:52:72 UHLl 0 8 - 1
vio0
fe80::1%lo0 fe80::1%lo0 UHl
0 0 32768 1 lo0
ff01::/16 ::1 UGRS 0
1 32768 8 lo0
ff01::%vio0/32 fe80::be24:11ff:fe10:5272%vio0 Um
0 2 - 4 vio0
ff01::%lo0/32 fe80::1%lo0 Um
0 1 32768 4 lo0
ff02::/16 ::1 UGRS 0
1 32768 8 lo0
ff02::%vio0/32 fe80::be24:11ff:fe10:5272%vio0 Um
0 5 - 4 vio0
ff02::%lo0/32 fe80::1%lo0 Um
0 1 32768 4 lo0
######
And when things don't work:
# uptime
5:12PM up 1 day, 1:53, 1 user, load averages: 0.00, 0.00, 0.00
# ifconfig vio0
vio0:
flags=648843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF6TEMP,AUTOCONF6,INET6_NOSOII> mtu 1500
lladdr bc:24:11:10:52:72
index 1 priority 0 llprio 3
groups: egress
media: Ethernet autoselect
status: active
inet6 fe80::be24:11ff:fe10:5272%vio0 prefixlen 64 scopeid 0x1
inet 172.17.17.2 netmask 0xfffffffc broadcast 172.17.17.3
inet6 fd00:172:17:170:be24:11ff:fe10:5272 prefixlen 64
autoconf pltime 604500 vltime 2591700
inet6 fd00:172:17:170:60b3:77d:dae4:601a prefixlen 64
deprecated autoconf temporary pltime 0 vltime 80513
inet6 fd00:172:17:170:5e06:a3a:7788:d154 prefixlen 64
autoconf temporary pltime 45077 vltime 160314
# ping6 -vn -c 10 google.com
PING google.com (fd00:172:17:170:5e06:a3a:7788:d154 -->
2a00:1450:4005:801::200e): 56 data bytes
32 bytes from fe80::2a0:57ff:fe3a:ac77%vio0: Neighbor Advertisement
32 bytes from fe80::2a0:57ff:fe3a:ac77%vio0: Neighbor Solicitation
--- google.com ping statistics ---
10 packets transmitted, 0 packets received, 100.0% packet loss
# traceroute6 -vn google.com
traceroute6 to google.com (2a00:1450:4005:801::200e), 64 hops max, 60
byte packets
1 fd00:172:17:170:2a0:57ff:fe3a:ac77 68 bytes to
fd00:172:17:170:5e06:a3a:7788:d154 0.25 ms 0.163 ms 0.145 ms
32 bytes from fe80::2a0:57ff:fe3a:ac77%vio0 to
fe80::be24:11ff:fe10:5272: icmp type 136 (OUT-OF-RANGE) code 0
0000: fe800000 00000000 02a057ff fe3aac77
0010: 020100a0 573aac77 2a001450 40050801
32 bytes from fe80::2a0:57ff:fe3a:ac77%vio0 to
fe80::be24:11ff:fe10:5272: icmp type 135 (OUT-OF-RANGE) code 0
0000: fe800000 00000000 be2411ff fe105272
0010: 010100a0 573aac77 2a001450 40050801
64 * * *
# route -n show -inet6
Routing tables
Internet6:
Destination Gateway Flags Refs
Use Mtu Prio Iface
default fe80::2a0:57ff:fe3a:ac77%vio0 UGS 0 123
- 8 vio0
::/96 ::1 UGRS 0 0
32768 8 lo0
::1 ::1 UHhl 10 20
32768 1 lo0
::ffff:0.0.0.0/96 ::1 UGRS
0 0 32768 8 lo0
2002::/24 ::1 UGRS 0
0 32768 8 lo0
2002:7f00::/24 ::1 UGRS
0 0 32768 8 lo0
2002:e000::/20 ::1 UGRS
0 0 32768 8 lo0
2002:ff00::/24 ::1 UGRS
0 0 32768 8 lo0
fd00:172:17:170::/64 fd00:172:17:170:be24:11ff:fe10:5272
UCPn 1 2 - 4 vio0
fd00:172:17:170::/64 fd00:172:17:170:60b3:77d:dae4:601a
UCPn 0 0 - 4 vio0
fd00:172:17:170::/64 fd00:172:17:170:5e06:a3a:7788:d154
UCPn 0 0 - 4 vio0
fd00:172:17:170:4727:605a:938:42
link#1 UHLc 0 4 - 3
vio0
fd00:172:17:170:5e06:a3a:7788:d154
bc:24:11:10:52:72 UHLl 0 9 - 1
vio0
fd00:172:17:170:60b3:77d:dae4:601a
bc:24:11:10:52:72 UHLl 0 113 - 1
vio0
fd00:172:17:170:be24:11ff:fe10:5272
bc:24:11:10:52:72 UHLl 0 0 - 1
vio0
fe80::/10 ::1 UGRS 0
1 32768 8 lo0
fec0::/10 ::1 UGRS 0
0 32768 8 lo0
fe80::%vio0/64 fe80::be24:11ff:fe10:5272%vio0 UCn
1 0 - 4 vio0
fe80::2a0:57ff:fe3a:ac77%vio0 00:a0:57:3a:ac:77
UHLch 1 5196 - 3 vio0
fe80::be24:11ff:fe10:5272%vio0
bc:24:11:10:52:72 UHLl 0 262 - 1
vio0
fe80::1%lo0 fe80::1%lo0 UHl
0 0 32768 1 lo0
ff01::/16 ::1 UGRS 0
1 32768 8 lo0
ff01::%vio0/32 fe80::be24:11ff:fe10:5272%vio0 Um
0 3 - 4 vio0
ff01::%lo0/32 fe80::1%lo0 Um
0 1 32768 4 lo0
ff02::/16 ::1 UGRS 0
1 32768 8 lo0
ff02::%vio0/32 fe80::be24:11ff:fe10:5272%vio0 Um
0 7 - 4 vio0
ff02::%lo0/32 fe80::1%lo0 Um
0 1 32768 4 lo0
# ping6 -n -c 3 fe80::2a0:57ff:fe3a:ac77%vio0
PING fe80::2a0:57ff:fe3a:ac77%vio0 (fe80::2a0:57ff:fe3a:ac77%vio0):
56 data bytes
64 bytes from fe80::2a0:57ff:fe3a:ac77%vio0: icmp_seq=0 hlim=64
time=0.395 ms
64 bytes from fe80::2a0:57ff:fe3a:ac77%vio0: icmp_seq=1 hlim=64
time=0.273 ms
64 bytes from fe80::2a0:57ff:fe3a:ac77%vio0: icmp_seq=2 hlim=64
time=0.286 ms
--- fe80::2a0:57ff:fe3a:ac77%vio0 ping statistics ---
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip min/avg/max/std-dev = 0.273/0.318/0.395/0.055 ms