>Synopsis: inet6 route not added for autoconf prefix >Category: kernel >Environment: System : OpenBSD 5.8 Details : OpenBSD 5.8-current (GENERIC.MP) #1560: Sun Nov 1 20:57:59 MST 2015 dera...@amd64.openbsd.org:/usr/src/sys/arch/amd64/compile/GENERIC.MP
Architecture: OpenBSD.amd64 Machine : amd64 >Description: When configuring an interface for inet6 autoconf and receiving a router advertisement containing a certain global prefix, a route for that prefix is not added to the routing table. The machine sending the router advertisements in question is OpenBSD 5.8-stable (rtadvd running on carp interface), and the prefix information is visible on the wire: 00:00:5e:00:01:09 33:33:00:00:00:01 86dd 166: fe80::200:5eff:fe00:109 > ff02::1: icmp6: router advertisement(chlim=64, router_ltime=1800, reachable_time=0, retrans_time=0)(prefix info: LA valid_ltime=2592000, preferred_ltime=604800, prefix=2001:708:20:e336::/64)(unknown opt_type=25, opt_len=5)(unknown opt_type=31, opt_len=3) [icmp6 cksum ok] (len 112, hlim 255) (I have been having some inet6 issues with my openbsd workstation behind these carp+pfsync firewalls for a long while, and while I still need to investigate further, I believe this is an important piece of the puzzle) >How-To-Repeat: ifconfig em0 inet6 autoconf ifconfig em0 # to check your assigned address and prefix length netstat -rnf inet6 | grep 2001:708:20:e336 # or whatever your prefix is Observe that only a host entry exists matching the prefix matching the global address of the interface. Additionally, 'route get' can be used to verify that addresses in the same prefix are thought to be behind the default router: # route get 2001:708:20:e336::123 route to: 2001:708:20:e336::123 destination: :: mask: default gateway: fe80::200:5eff:fe00:109%em0 >Fix: autoconfigured prefixes should be added as on-link routes.