On Thu, Jul 02, 2015 at 08:18:52AM +0200, Stefan Sperling wrote: > > Your windows box is trying to reach address ff02:2::1:ff51:78e9, a mix of > 'all routers' ff02::2 and em1's link local address. > But there is no address in the ff02::/32 prefix on em1 for some reason. > Note that em0 does have an address in this prefix: ff02::1:2%em0 >
This got me thinking. It was obvious that the ff02 entry was created by running "autoconf" on em0. When we initially tried this on 5.6 dhcp6c failed setting the address on em1 at all if we did not first prime the interface with "ifconfig em1 inet6 eui64". It turns out, if we set "autoconf" on both em0 and em1 we can get the setup to work. This is a bit ugly though since we do not want to accept router advertisements on the inside interface. Below are transcripts from trying to get this to work first using "eui64" (since I assumed this was the most minimalistic way to prime em1). This still required the manual creation of the /64 route. Second is the attempt using "autoconf" on the inside interface which did not require the manual route creation, but the route still pops up in a bit of a "strange" way. See below for details. Before starting: === # ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768 priority: 0 groups: lo inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr d0:50:99:51:78:e8 priority: 0 groups: egress media: Ethernet autoselect (1000baseT full-duplex) status: active inet XX.XXX.8.17 netmask 0xffffff80 broadcast XX.XXX.8.127 em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr d0:50:99:51:78:e9 priority: 0 media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause) status: active inet 192.168.212.254 netmask 0xffffff00 broadcast 192.168.212.255 enc0: flags=0<> priority: 0 groups: enc status: active pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33144 priority: 0 groups: pflog === # netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default XX.XXX.8.1 UGS 4 2081 - 8 em0 XX.XXX.8.0/25 XX.XXX.8.17 UC 1 0 - 8 em0 XX.XXX.8.1 00:0c:db:f6:1c:00 UHLc 1 0 - 8 em0 XX.XXX.8.17 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 XX.XXX.8.127 XX.XXX.8.17 UHb 0 0 - 1 em0 127/8 127.0.0.1 UGRS 0 0 32768 8 lo0 127.0.0.1 127.0.0.1 UHl 1 0 32768 1 lo0 192.168.212/24 192.168.212.254 UC 6 0 - 8 em1 192.168.212.1 0c:c4:7a:31:d7:38 UHLc 0 82 - 8 em1 192.168.212.2 00:25:90:ae:ca:4a UHLc 0 119 - 8 em1 192.168.212.3 b8:27:eb:22:72:8b UHLc 0 342 - 8 em1 192.168.212.4 b8:27:eb:32:0b:66 UHLc 0 118 - 8 em1 192.168.212.136 ec:a8:6b:f9:6e:35 UHLc 0 138 - 8 em1 192.168.212.252 d0:bf:9c:45:0c:a0 UHLc 0 945 - 8 em1 192.168.212.254 d0:50:99:51:78:e9 HLl 0 0 - 1 lo0 192.168.212.255 192.168.212.254 UHb 0 0 - 1 em1 224/4 127.0.0.1 URS 0 0 32768 8 lo0 Internet6: Destination Gateway Flags Refs Use Mtu Prio Iface ::/104 ::1 UGRS 0 0 32768 8 lo0 ::/96 ::1 UGRS 0 0 32768 8 lo0 ::1 ::1 UHl 14 0 32768 1 lo0 ::127.0.0.0/104 ::1 UGRS 0 0 32768 8 lo0 ::224.0.0.0/100 ::1 UGRS 0 0 32768 8 lo0 ::255.0.0.0/104 ::1 UGRS 0 0 32768 8 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 fe80::/10 ::1 UGRS 0 0 32768 8 lo0 fe80::%lo0/64 fe80::1%lo0 U 0 0 32768 4 lo0 fe80::1%lo0 fe80::1%lo0 UHl 0 0 32768 1 lo0 fec0::/10 ::1 UGRS 0 0 32768 8 lo0 ff01::/16 ::1 UGRS 0 0 32768 8 lo0 ff01::%lo0/32 ::1 UC 0 0 32768 4 lo0 ff02::/16 ::1 UGRS 0 0 32768 8 lo0 ff02::%lo0/32 ::1 UC 0 0 32768 4 lo0 === Start autoconf on em0 as usual: === # ifconfig em0 inet6 autoconf # ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768 priority: 0 groups: lo inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 em0: flags=208843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF6> mtu 1500 lladdr d0:50:99:51:78:e8 priority: 0 groups: egress media: Ethernet autoselect (1000baseT full-duplex) status: active inet XX.XXX.8.17 netmask 0xffffff80 broadcast XX.XXX.8.127 inet6 fe80::d250:99ff:fe51:78e8%em0 prefixlen 64 scopeid 0x1 em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr d0:50:99:51:78:e9 priority: 0 media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause) status: active inet 192.168.212.254 netmask 0xffffff00 broadcast 192.168.212.255 enc0: flags=0<> priority: 0 groups: enc status: active pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33144 priority: 0 groups: pflog === === # netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default XX.XXX.8.1 UGS 4 3381 - 8 em0 XX.XXX.8.0/25 XX.XXX.8.17 UC 1 0 - 8 em0 XX.XXX.8.1 00:0c:db:f6:1c:00 UHLc 1 0 - 8 em0 XX.XXX.8.17 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 XX.XXX.8.127 XX.XXX.8.17 UHb 0 0 - 1 em0 127/8 127.0.0.1 UGRS 0 0 32768 8 lo0 127.0.0.1 127.0.0.1 UHl 1 0 32768 1 lo0 192.168.212/24 192.168.212.254 UC 8 0 - 8 em1 192.168.212.1 0c:c4:7a:31:d7:38 UHLc 0 186 - 8 em1 192.168.212.2 00:25:90:ae:ca:4a UHLc 0 355 - 8 em1 192.168.212.3 b8:27:eb:22:72:8b UHLc 0 599 - 8 em1 192.168.212.4 b8:27:eb:32:0b:66 UHLc 0 151 - 8 em1 192.168.212.109 50:55:27:f4:ff:82 UHLc 0 225 - 8 em1 192.168.212.136 ec:a8:6b:f9:6e:35 UHLc 0 249 - 8 em1 192.168.212.249 58:6d:8f:a0:51:c8 UHLc 0 14 - 8 em1 192.168.212.252 d0:bf:9c:45:0c:a0 UHLc 0 1091 - 8 em1 192.168.212.254 d0:50:99:51:78:e9 HLl 0 0 - 1 lo0 192.168.212.255 192.168.212.254 UHb 0 0 - 1 em1 224/4 127.0.0.1 URS 0 0 32768 8 lo0 Internet6: Destination Gateway Flags Refs Use Mtu Prio Iface ::/104 ::1 UGRS 0 0 32768 8 lo0 ::/96 ::1 UGRS 0 0 32768 8 lo0 default fe80::20c:dbff:fef6:1c00%em0 UG 0 0 - 56 em0 ::1 ::1 UHl 14 0 32768 1 lo0 ::127.0.0.0/104 ::1 UGRS 0 0 32768 8 lo0 ::224.0.0.0/100 ::1 UGRS 0 0 32768 8 lo0 ::255.0.0.0/104 ::1 UGRS 0 0 32768 8 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 fe80::/10 ::1 UGRS 0 0 32768 8 lo0 fe80::%em0/64 fe80::d250:99ff:fe51:78e8%em0 UC 1 0 - 4 em0 fe80::20c:dbff:fef6:1c00%em0 00:0c:db:f6:1c:00 UHLc 1 0 - 4 em0 fe80::d250:99ff:fe51:78e8%em0 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 fe80::%lo0/64 fe80::1%lo0 U 0 0 32768 4 lo0 fe80::1%lo0 fe80::1%lo0 UHl 0 0 32768 1 lo0 fec0::/10 ::1 UGRS 0 0 32768 8 lo0 ff01::/16 ::1 UGRS 0 0 32768 8 lo0 ff01::%em0/32 fe80::d250:99ff:fe51:78e8%em0 UC 0 0 - 4 em0 ff01::%lo0/32 ::1 UC 0 0 32768 4 lo0 ff02::/16 ::1 UGRS 0 0 32768 8 lo0 ff02::%em0/32 fe80::d250:99ff:fe51:78e8%em0 UC 0 0 - 4 em0 ff02::%lo0/32 ::1 UC 0 0 32768 4 lo0 === Now we enable eui64 on em1: === # ifconfig em1 inet6 eui64 # ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768 priority: 0 groups: lo inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 em0: flags=208843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF6> mtu 1500 lladdr d0:50:99:51:78:e8 priority: 0 groups: egress media: Ethernet autoselect (1000baseT full-duplex) status: active inet XX.XXX.8.17 netmask 0xffffff80 broadcast XX.XXX.8.127 inet6 fe80::d250:99ff:fe51:78e8%em0 prefixlen 64 scopeid 0x1 em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr d0:50:99:51:78:e9 priority: 0 media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause) status: active inet 192.168.212.254 netmask 0xffffff00 broadcast 192.168.212.255 inet6 fe80::d250:99ff:fe51:78e9%em1 prefixlen 64 scopeid 0x2 enc0: flags=0<> priority: 0 groups: enc status: active pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33144 priority: 0 groups: pflog === We can see that a ff02::%em1/32 that is cloneable (C) has been created now as opposed to when not doing any inet6 settings on em1 at all: === # netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default XX.XXX.8.1 UGS 4 4070 - 8 em0 XX.XXX.8.0/25 XX.XXX.8.17 UC 1 0 - 8 em0 XX.XXX.8.1 00:0c:db:f6:1c:00 UHLc 1 0 - 8 em0 XX.XXX.8.17 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 XX.XXX.8.127 XX.XXX.8.17 UHb 0 0 - 1 em0 127/8 127.0.0.1 UGRS 0 0 32768 8 lo0 127.0.0.1 127.0.0.1 UHl 1 0 32768 1 lo0 192.168.212/24 192.168.212.254 UC 8 0 - 8 em1 192.168.212.1 0c:c4:7a:31:d7:38 UHLc 0 191 - 8 em1 192.168.212.2 00:25:90:ae:ca:4a UHLc 0 385 - 8 em1 192.168.212.3 b8:27:eb:22:72:8b UHLc 0 642 - 8 em1 192.168.212.4 b8:27:eb:32:0b:66 UHLc 0 156 - 8 em1 192.168.212.109 50:55:27:f4:ff:82 UHLc 0 623 - 8 em1 192.168.212.136 ec:a8:6b:f9:6e:35 UHLc 0 332 - 8 em1 192.168.212.249 58:6d:8f:a0:51:c8 UHLc 0 14 - 8 em1 192.168.212.252 d0:bf:9c:45:0c:a0 UHLc 0 1218 - 8 em1 192.168.212.254 d0:50:99:51:78:e9 HLl 0 0 - 1 lo0 192.168.212.255 192.168.212.254 UHb 0 0 - 1 em1 224/4 127.0.0.1 URS 0 0 32768 8 lo0 Internet6: Destination Gateway Flags Refs Use Mtu Prio Iface ::/104 ::1 UGRS 0 0 32768 8 lo0 ::/96 ::1 UGRS 0 0 32768 8 lo0 default fe80::20c:dbff:fef6:1c00%em0 UG 0 0 - 56 em0 ::1 ::1 UHl 14 0 32768 1 lo0 ::127.0.0.0/104 ::1 UGRS 0 0 32768 8 lo0 ::224.0.0.0/100 ::1 UGRS 0 0 32768 8 lo0 ::255.0.0.0/104 ::1 UGRS 0 0 32768 8 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 fe80::/10 ::1 UGRS 0 0 32768 8 lo0 fe80::%em0/64 fe80::d250:99ff:fe51:78e8%em0 UC 1 0 - 4 em0 fe80::20c:dbff:fef6:1c00%em0 00:0c:db:f6:1c:00 UHLc 1 2 - 4 em0 fe80::d250:99ff:fe51:78e8%em0 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 fe80::%em1/64 fe80::d250:99ff:fe51:78e9%em1 UC 0 0 - 4 em1 fe80::d250:99ff:fe51:78e9%em1 d0:50:99:51:78:e9 UHLl 0 0 - 1 lo0 fe80::%lo0/64 fe80::1%lo0 U 0 0 32768 4 lo0 fe80::1%lo0 fe80::1%lo0 UHl 0 0 32768 1 lo0 fec0::/10 ::1 UGRS 0 0 32768 8 lo0 ff01::/16 ::1 UGRS 0 0 32768 8 lo0 ff01::%em0/32 fe80::d250:99ff:fe51:78e8%em0 UC 0 0 - 4 em0 ff01::%em1/32 fe80::d250:99ff:fe51:78e9%em1 UC 0 0 - 4 em1 ff01::%lo0/32 ::1 UC 0 0 32768 4 lo0 ff02::/16 ::1 UGRS 0 0 32768 8 lo0 ff02::%em0/32 fe80::d250:99ff:fe51:78e8%em0 UC 0 0 - 4 em0 ff02::%em1/32 fe80::d250:99ff:fe51:78e9%em1 UC 0 0 - 4 em1 ff02::%lo0/32 ::1 UC 0 0 32768 4 lo0 === Running dhcp6c: === # dhcp6c -Df -c /etc/dhcp6c.conf em0 Jul/02/2015 20:22:09: get_duid: extracted an existing DUID from /var/db/dhcp6c_duid: 00:01:00:01:1d:1f:02:b3:d0:50:99:51:78:e8 Jul/02/2015 20:22:09: dhcp6_ctl_authinit: failed to open /etc/dhcp6cctlkey: No such file or directory Jul/02/2015 20:22:09: client6_init: failed initialize control message authentication Jul/02/2015 20:22:09: client6_init: skip opening control port Jul/02/2015 20:22:09: cfdebug_print: <3>[interface] (9) Jul/02/2015 20:22:09: cfdebug_print: <5>[em0] (3) Jul/02/2015 20:22:09: cfdebug_print: <3>begin of closure [{] (1) Jul/02/2015 20:22:09: cfdebug_print: <3>[send] (4) Jul/02/2015 20:22:09: cfdebug_print: <3>[ia-pd] (5) Jul/02/2015 20:22:09: cfdebug_print: <3>[0] (1) Jul/02/2015 20:22:09: cfdebug_print: <3>end of sentence [;] (1) Jul/02/2015 20:22:09: cfdebug_print: <3>end of closure [}] (1) Jul/02/2015 20:22:09: cfdebug_print: <3>end of sentence [;] (1) Jul/02/2015 20:22:09: cfdebug_print: <3>[id-assoc] (8) Jul/02/2015 20:22:09: cfdebug_print: <13>[pd] (2) Jul/02/2015 20:22:09: cfdebug_print: <13>begin of closure [{] (1) Jul/02/2015 20:22:09: cfdebug_print: <3>[prefix-interface] (16) Jul/02/2015 20:22:09: cfdebug_print: <5>[em1] (3) Jul/02/2015 20:22:09: cfdebug_print: <3>begin of closure [{] (1) Jul/02/2015 20:22:09: cfdebug_print: <3>[sla-id] (6) Jul/02/2015 20:22:09: cfdebug_print: <3>[1] (1) Jul/02/2015 20:22:09: cfdebug_print: <3>end of sentence [;] (1) Jul/02/2015 20:22:09: cfdebug_print: <3>[sla-len] (7) Jul/02/2015 20:22:09: cfdebug_print: <3>[8] (1) Jul/02/2015 20:22:09: cfdebug_print: <3>end of sentence [;] (1) Jul/02/2015 20:22:09: cfdebug_print: <3>end of closure [}] (1) Jul/02/2015 20:22:09: cfdebug_print: <3>end of sentence [;] (1) Jul/02/2015 20:22:09: cfdebug_print: <3>end of closure [}] (1) Jul/02/2015 20:22:09: cfdebug_print: <3>end of sentence [;] (1) Jul/02/2015 20:22:09: configure_pool: called Jul/02/2015 20:22:09: clear_poolconf: called Jul/02/2015 20:22:09: dhcp6_reset_timer: reset a timer on em0, state=INIT, timeo=0, retrans=986 Jul/02/2015 20:22:10: client6_send: a new XID (419dec) is generated Jul/02/2015 20:22:10: copy_option: set client ID (len 14) Jul/02/2015 20:22:10: copy_option: set elapsed time (len 2) Jul/02/2015 20:22:10: copyout_option: set IA_PD Jul/02/2015 20:22:10: client6_send: send solicit to ff02::1:2%em0 Jul/02/2015 20:22:10: dhcp6_reset_timer: reset a timer on em0, state=SOLICIT, timeo=0, retrans=1099 Jul/02/2015 20:22:10: client6_recv: receive advertise from fe80::20c:dbff:fef6:1c00%em0 on em0 Jul/02/2015 20:22:10: dhcp6_get_options: get DHCP option IA_PD, len 41 Jul/02/2015 20:22:10: IA_PD: ID=0, T1=0, T2=0 Jul/02/2015 20:22:10: copyin_option: get DHCP option IA_PD prefix, len 25 Jul/02/2015 20:22:10: copyin_option: IA_PD prefix: XXXX:XXX:XXXX:a00::/56 pltime=9000 vltime=14400 Jul/02/2015 20:22:10: dhcp6_get_options: get DHCP option client ID, len 14 Jul/02/2015 20:22:10: DUID: 00:01:00:01:1d:1f:02:b3:d0:50:99:51:78:e8 Jul/02/2015 20:22:10: dhcp6_get_options: get DHCP option server ID, len 14 Jul/02/2015 20:22:10: DUID: 00:01:00:01:1a:bc:08:bf:00:50:56:9b:dd:3c Jul/02/2015 20:22:10: client6_recvadvert: server ID: 00:01:00:01:1a:bc:08:bf:00:50:56:9b:dd:3c, pref=-1 Jul/02/2015 20:22:10: client6_recvadvert: reset timer for em0 to 0.979920 Jul/02/2015 20:22:12: select_server: picked a server (ID: 00:01:00:01:1a:bc:08:bf:00:50:56:9b:dd:3c) Jul/02/2015 20:22:12: client6_send: a new XID (1edb07) is generated Jul/02/2015 20:22:12: copy_option: set client ID (len 14) Jul/02/2015 20:22:12: copy_option: set server ID (len 14) Jul/02/2015 20:22:12: copy_option: set elapsed time (len 2) Jul/02/2015 20:22:12: copyout_option: set IA_PD prefix Jul/02/2015 20:22:12: copyout_option: set IA_PD Jul/02/2015 20:22:12: client6_send: send request to ff02::1:2%em0 Jul/02/2015 20:22:12: dhcp6_reset_timer: reset a timer on em0, state=REQUEST, timeo=0, retrans=1000 Jul/02/2015 20:22:12: client6_recv: receive reply from fe80::20c:dbff:fef6:1c00%em0 on em0 Jul/02/2015 20:22:12: dhcp6_get_options: get DHCP option IA_PD, len 41 Jul/02/2015 20:22:12: IA_PD: ID=0, T1=0, T2=0 Jul/02/2015 20:22:12: copyin_option: get DHCP option IA_PD prefix, len 25 Jul/02/2015 20:22:12: copyin_option: IA_PD prefix: XXXX:XXX:XXXX:a00::/56 pltime=9000 vltime=14400 Jul/02/2015 20:22:12: dhcp6_get_options: get DHCP option client ID, len 14 Jul/02/2015 20:22:12: DUID: 00:01:00:01:1d:1f:02:b3:d0:50:99:51:78:e8 Jul/02/2015 20:22:12: dhcp6_get_options: get DHCP option server ID, len 14 Jul/02/2015 20:22:12: DUID: 00:01:00:01:1a:bc:08:bf:00:50:56:9b:dd:3c Jul/02/2015 20:22:12: get_ia: make an IA: PD-0 Jul/02/2015 20:22:12: update_prefix: create a prefix XXXX:XXX:XXXX:a00::/56 pltime=7065221210920, vltime=14400 Jul/02/2015 20:22:12: ifaddrconf: add an address XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9/64 on em1 Jul/02/2015 20:22:12: update_ia: T1(4500) and/or T2(7200) is locally determined Jul/02/2015 20:22:12: dhcp6_remove_event: removing an event on em0, state=REQUEST Jul/02/2015 20:22:12: dhcp6_remove_event: removing server (ID: 00:01:00:01:1a:bc:08:bf:00:50:56:9b:dd:3c) Jul/02/2015 20:22:12: client6_recvreply: got an expected reply, sleeping. ^C === Running ifconfig again shows the assinged /64 on em1: === # ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768 priority: 0 groups: lo inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 em0: flags=208843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF6> mtu 1500 lladdr d0:50:99:51:78:e8 priority: 0 groups: egress media: Ethernet autoselect (1000baseT full-duplex) status: active inet XX.XXX.8.17 netmask 0xffffff80 broadcast XX.XXX.8.127 inet6 fe80::d250:99ff:fe51:78e8%em0 prefixlen 64 scopeid 0x1 em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr d0:50:99:51:78:e9 priority: 0 media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause) status: active inet 192.168.212.254 netmask 0xffffff00 broadcast 192.168.212.255 inet6 fe80::d250:99ff:fe51:78e9%em1 prefixlen 64 scopeid 0x2 inet6 XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 prefixlen 64 enc0: flags=0<> priority: 0 groups: enc status: active pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33144 priority: 0 groups: pflog Sadly, we are still missing the directly connected /64 route: === # netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default XX.XXX.8.1 UGS 4 4960 - 8 em0 XX.XXX.8.0/25 XX.XXX.8.17 UC 1 0 - 8 em0 XX.XXX.8.1 00:0c:db:f6:1c:00 UHLc 1 0 - 8 em0 XX.XXX.8.17 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 XX.XXX.8.127 XX.XXX.8.17 UHb 0 0 - 1 em0 127/8 127.0.0.1 UGRS 0 0 32768 8 lo0 127.0.0.1 127.0.0.1 UHl 1 0 32768 1 lo0 192.168.212/24 192.168.212.254 UC 8 0 - 8 em1 192.168.212.1 0c:c4:7a:31:d7:38 UHLc 0 195 - 8 em1 192.168.212.2 00:25:90:ae:ca:4a UHLc 0 473 - 8 em1 192.168.212.3 b8:27:eb:22:72:8b UHLc 0 679 - 8 em1 192.168.212.4 b8:27:eb:32:0b:66 UHLc 0 159 - 8 em1 192.168.212.109 50:55:27:f4:ff:82 UHLc 0 976 - 8 em1 192.168.212.136 ec:a8:6b:f9:6e:35 UHLc 0 537 - 8 em1 192.168.212.249 58:6d:8f:a0:51:c8 UHLc 0 22 - 8 em1 192.168.212.252 d0:bf:9c:45:0c:a0 UHLc 0 1369 - 8 em1 192.168.212.254 d0:50:99:51:78:e9 HLl 0 0 - 1 lo0 192.168.212.255 192.168.212.254 UHb 0 0 - 1 em1 224/4 127.0.0.1 URS 0 0 32768 8 lo0 Internet6: Destination Gateway Flags Refs Use Mtu Prio Iface ::/104 ::1 UGRS 0 0 32768 8 lo0 ::/96 ::1 UGRS 0 0 32768 8 lo0 default fe80::20c:dbff:fef6:1c00%em0 UG 0 0 - 56 em0 ::1 ::1 UHl 14 0 32768 1 lo0 ::127.0.0.0/104 ::1 UGRS 0 0 32768 8 lo0 ::224.0.0.0/100 ::1 UGRS 0 0 32768 8 lo0 ::255.0.0.0/104 ::1 UGRS 0 0 32768 8 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 XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 d0:50:99:51:78:e9 UHLl 0 0 - 1 lo0 fe80::/10 ::1 UGRS 0 0 32768 8 lo0 fe80::%em0/64 fe80::d250:99ff:fe51:78e8%em0 UC 1 0 - 4 em0 fe80::20c:dbff:fef6:1c00%em0 00:0c:db:f6:1c:00 UHLc 1 4 - 4 em0 fe80::d250:99ff:fe51:78e8%em0 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 fe80::%em1/64 fe80::d250:99ff:fe51:78e9%em1 UC 0 0 - 4 em1 fe80::d250:99ff:fe51:78e9%em1 d0:50:99:51:78:e9 UHLl 0 0 - 1 lo0 fe80::%lo0/64 fe80::1%lo0 U 0 0 32768 4 lo0 fe80::1%lo0 fe80::1%lo0 UHl 0 0 32768 1 lo0 fec0::/10 ::1 UGRS 0 0 32768 8 lo0 ff01::/16 ::1 UGRS 0 0 32768 8 lo0 ff01::%em0/32 fe80::d250:99ff:fe51:78e8%em0 UC 0 0 - 4 em0 ff01::%em1/32 fe80::d250:99ff:fe51:78e9%em1 UC 0 0 - 4 em1 ff01::%lo0/32 ::1 UC 0 0 32768 4 lo0 ff02::/16 ::1 UGRS 0 0 32768 8 lo0 ff02::%em0/32 fe80::d250:99ff:fe51:78e8%em0 UC 1 0 - 4 em0 ff02::1:2%em0 link#1 UHLc 0 2 - 4 em0 ff02::%em1/32 fe80::d250:99ff:fe51:78e9%em1 UC 0 0 - 4 em1 ff02::%lo0/32 ::1 UC 0 0 32768 4 lo0 === Enabling rtadvd: === # rtadvd em1 === At this point ping6 against the windows machine will go out on em0 as we have seen before: === # ping6 XXXX:XXX:XXXX:a01:168:9d7e:b7f:2fcf PING6(72=40+8+24 bytes) XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 --> XXXX:XXX:XXXX:a01:168:9d7e:b7f:2fcf ^C --- XXXX:XXX:XXXX:a01:168:9d7e:b7f:2fcf ping6 statistics --- 15 packets transmitted, 0 packets received, 100.0% packet loss === Attempting to add the route manually (but using the fe80 address because I noticed this is how the automatically created routes look): === # route add XXXX:XXX:XXXX:a01::/64 -iface fe80::d250:99ff:fe51:78e9%em1 add net XXXX:XXX:XXXX:a01::/64: gateway fe80::d250:99ff:fe51:78e9%em1 === It turns out ping6 is still unhappy: === # ping6 XXXX:XXX:XXXX:a01:168:9d7e:b7f:2fcf PING6(72=40+8+24 bytes) XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 --> XXXX:XXX:XXXX:a01:168:9d7e:b7f:2fcf ping6: sendmsg: Invalid argument ping6: wrote XXXX:XXX:XXXX:a01:168:9d7e:b7f:2fcf 32 chars, ret=-1 ping6: sendmsg: Invalid argument ping6: wrote XXXX:XXX:XXXX:a01:168:9d7e:b7f:2fcf 32 chars, ret=-1 ping6: sendmsg: Invalid argument ping6: wrote XXXX:XXX:XXXX:a01:168:9d7e:b7f:2fcf 32 chars, ret=-1 ^C --- XXXX:XXX:XXXX:a01:168:9d7e:b7f:2fcf ping6 statistics --- 3 packets transmitted, 0 packets received, 100.0% packet loss === However, at this point i noticed our manually created route did not have the "C" flag set (and this have been true for all prior attempts): === # netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default XX.XXX.8.1 UGS 5 7263 - 8 em0 XX.XXX.8.0/25 XX.XXX.8.17 UC 1 0 - 8 em0 XX.XXX.8.1 00:0c:db:f6:1c:00 UHLc 1 0 - 8 em0 XX.XXX.8.17 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 XX.XXX.8.127 XX.XXX.8.17 UHb 0 0 - 1 em0 127/8 127.0.0.1 UGRS 0 0 32768 8 lo0 127.0.0.1 127.0.0.1 UHl 1 0 32768 1 lo0 192.168.212/24 192.168.212.254 UC 8 0 - 8 em1 192.168.212.1 0c:c4:7a:31:d7:38 UHLc 0 267 - 8 em1 192.168.212.2 00:25:90:ae:ca:4a UHLc 0 548 - 8 em1 192.168.212.3 b8:27:eb:22:72:8b UHLc 0 1049 - 8 em1 192.168.212.4 b8:27:eb:32:0b:66 UHLc 0 214 - 8 em1 192.168.212.109 50:55:27:f4:ff:82 UHLc 0 1890 - 8 em1 192.168.212.136 ec:a8:6b:f9:6e:35 UHLc 0 805 - 8 em1 192.168.212.249 58:6d:8f:a0:51:c8 UHLc 0 22 - 8 em1 192.168.212.252 d0:bf:9c:45:0c:a0 UHLc 0 1764 - 8 em1 192.168.212.254 d0:50:99:51:78:e9 HLl 0 0 - 1 lo0 192.168.212.255 192.168.212.254 UHb 0 0 - 1 em1 224/4 127.0.0.1 URS 0 0 32768 8 lo0 Internet6: Destination Gateway Flags Refs Use Mtu Prio Iface ::/104 ::1 UGRS 0 0 32768 8 lo0 ::/96 ::1 UGRS 0 0 32768 8 lo0 default fe80::20c:dbff:fef6:1c00%em0 UG 0 15 - 56 em0 ::1 ::1 UHl 14 0 32768 1 lo0 ::127.0.0.0/104 ::1 UGRS 0 0 32768 8 lo0 ::224.0.0.0/100 ::1 UGRS 0 0 32768 8 lo0 ::255.0.0.0/104 ::1 UGRS 0 0 32768 8 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 XXXX:XXX:XXXX:a01::/64 fe80::d250:99ff:fe51:78e9%em1 US 0 3 - 8 em1 XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 d0:50:99:51:78:e9 UHLl 0 15 - 1 lo0 fe80::/10 ::1 UGRS 0 0 32768 8 lo0 fe80::%em0/64 fe80::d250:99ff:fe51:78e8%em0 UC 1 0 - 4 em0 fe80::20c:dbff:fef6:1c00%em0 00:0c:db:f6:1c:00 UHLc 1 10 - 4 em0 fe80::d250:99ff:fe51:78e8%em0 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 fe80::%em1/64 fe80::d250:99ff:fe51:78e9%em1 UC 2 0 - 4 em1 fe80::5255:27ff:fef4:ff82%em1 50:55:27:f4:ff:82 UHLc 0 2 - 4 em1 fe80::d250:99ff:fe51:78e9%em1 d0:50:99:51:78:e9 UHLl 0 0 - 1 lo0 fe80::e403:59dd:3795:be54%em1 ec:a8:6b:f9:6e:35 UHLc 0 6 - 4 em1 fe80::%lo0/64 fe80::1%lo0 U 0 0 32768 4 lo0 fe80::1%lo0 fe80::1%lo0 UHl 0 0 32768 1 lo0 fec0::/10 ::1 UGRS 0 0 32768 8 lo0 ff01::/16 ::1 UGRS 0 0 32768 8 lo0 ff01::%em0/32 fe80::d250:99ff:fe51:78e8%em0 UC 0 0 - 4 em0 ff01::%em1/32 fe80::d250:99ff:fe51:78e9%em1 UC 0 0 - 4 em1 ff01::%lo0/32 ::1 UC 0 0 32768 4 lo0 ff02::/16 ::1 UGRS 0 0 32768 8 lo0 ff02::%em0/32 fe80::d250:99ff:fe51:78e8%em0 UC 1 0 - 4 em0 ff02::1:2%em0 link#1 UHLc 0 2 - 4 em0 ff02::%em1/32 fe80::d250:99ff:fe51:78e9%em1 UC 0 0 - 4 em1 ff02::%lo0/32 ::1 UC 0 0 32768 4 lo0 === Since the ff02:1:2%em0 route had a "c" flag, it seemed like we might require the "C" flag on the /64. Re-adding it with the -cloning flag: === # route delete XXXX:XXX:XXXX:a01::/64 delete net XXXX:XXX:XXXX:a01::/64 # route add XXXX:XXX:XXXX:a01::/64 -iface fe80::d250:99ff:fe51:78e9%em1 -cloning add net XXXX:XXX:XXXX:a01::/64: gateway fe80::d250:99ff:fe51:78e9%em1 === The routing table now looks like this: === # netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default XX.XXX.8.1 UGS 5 8054 - 8 em0 XX.XXX.8.0/25 XX.XXX.8.17 UC 1 0 - 8 em0 XX.XXX.8.1 00:0c:db:f6:1c:00 UHLc 1 0 - 8 em0 XX.XXX.8.17 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 XX.XXX.8.127 XX.XXX.8.17 UHb 0 0 - 1 em0 127/8 127.0.0.1 UGRS 0 0 32768 8 lo0 127.0.0.1 127.0.0.1 UHl 1 0 32768 1 lo0 192.168.212/24 192.168.212.254 UC 8 0 - 8 em1 192.168.212.1 0c:c4:7a:31:d7:38 UHLc 0 270 - 8 em1 192.168.212.2 00:25:90:ae:ca:4a UHLc 0 620 - 8 em1 192.168.212.3 b8:27:eb:22:72:8b UHLc 0 1296 - 8 em1 192.168.212.4 b8:27:eb:32:0b:66 UHLc 0 235 - 8 em1 192.168.212.109 50:55:27:f4:ff:82 UHLc 0 1890 - 8 em1 192.168.212.136 ec:a8:6b:f9:6e:35 UHLc 0 844 - 8 em1 192.168.212.249 58:6d:8f:a0:51:c8 UHLc 0 22 - 8 em1 192.168.212.252 d0:bf:9c:45:0c:a0 UHLc 0 1843 - 8 em1 192.168.212.254 d0:50:99:51:78:e9 HLl 0 0 - 1 lo0 192.168.212.255 192.168.212.254 UHb 0 0 - 1 em1 224/4 127.0.0.1 URS 0 0 32768 8 lo0 Internet6: Destination Gateway Flags Refs Use Mtu Prio Iface ::/104 ::1 UGRS 0 0 32768 8 lo0 ::/96 ::1 UGRS 0 0 32768 8 lo0 default fe80::20c:dbff:fef6:1c00%em0 UG 0 15 - 56 em0 ::1 ::1 UHl 14 0 32768 1 lo0 ::127.0.0.0/104 ::1 UGRS 0 0 32768 8 lo0 ::224.0.0.0/100 ::1 UGRS 0 0 32768 8 lo0 ::255.0.0.0/104 ::1 UGRS 0 0 32768 8 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 XXXX:XXX:XXXX:a01::/64 fe80::d250:99ff:fe51:78e9%em1 UCS 0 0 - 8 em1 XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 d0:50:99:51:78:e9 UHLl 0 15 - 1 lo0 fe80::/10 ::1 UGRS 0 0 32768 8 lo0 fe80::%em0/64 fe80::d250:99ff:fe51:78e8%em0 UC 1 0 - 4 em0 fe80::20c:dbff:fef6:1c00%em0 00:0c:db:f6:1c:00 UHLc 1 10 - 4 em0 fe80::d250:99ff:fe51:78e8%em0 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 fe80::%em1/64 fe80::d250:99ff:fe51:78e9%em1 UC 2 0 - 4 em1 fe80::5255:27ff:fef4:ff82%em1 50:55:27:f4:ff:82 UHLc 0 2 - 4 em1 fe80::d250:99ff:fe51:78e9%em1 d0:50:99:51:78:e9 UHLl 0 0 - 1 lo0 fe80::e403:59dd:3795:be54%em1 ec:a8:6b:f9:6e:35 UHLc 0 6 - 4 em1 fe80::%lo0/64 fe80::1%lo0 U 0 0 32768 4 lo0 fe80::1%lo0 fe80::1%lo0 UHl 0 0 32768 1 lo0 fec0::/10 ::1 UGRS 0 0 32768 8 lo0 ff01::/16 ::1 UGRS 0 0 32768 8 lo0 ff01::%em0/32 fe80::d250:99ff:fe51:78e8%em0 UC 0 0 - 4 em0 ff01::%em1/32 fe80::d250:99ff:fe51:78e9%em1 UC 0 0 - 4 em1 ff01::%lo0/32 ::1 UC 0 0 32768 4 lo0 ff02::/16 ::1 UGRS 0 0 32768 8 lo0 ff02::%em0/32 fe80::d250:99ff:fe51:78e8%em0 UC 1 0 - 4 em0 ff02::1:2%em0 link#1 UHLc 0 2 - 4 em0 ff02::%em1/32 fe80::d250:99ff:fe51:78e9%em1 UC 0 0 - 4 em1 ff02::%lo0/32 ::1 UC 0 0 32768 4 lo0 === Now ping starts working: === ping6 XXXX:XXX:XXXX:a01:168:9d7e:b7f:2fcf PING6(72=40+8+24 bytes) XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 --> XXXX:XXX:XXXX:a01:168:9d7e:b7f:2fcf 32 bytes from XXXX:XXX:XXXX:a01:168:9d7e:b7f:2fcf, icmp_seq=0 hlim=64 time=0.677 ms 32 bytes from XXXX:XXX:XXXX:a01:168:9d7e:b7f:2fcf, icmp_seq=1 hlim=64 time=1.011 ms ^C --- XXXX:XXX:XXXX:a01:168:9d7e:b7f:2fcf ping6 statistics --- 2 packets transmitted, 2 packets received, 0.0% packet loss round-trip min/avg/max/std-dev = 0.677/0.844/1.011/0.167 ms === The dmesg messages related to this attempt: === # dmesg [...] icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 cannot forward src fe80:2::5255:27ff:fef4:ff82, dst fe80:2::d250:99ff:fe51:78e9, nxt 58, rcvif 2, outif 4 icmp6_reflect: source can't be determined: dst=fe80::5255:27ff:fef4:ff82, error=49 icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 icmp6_reflect: source can't be determined: dst=fe80::5255:27ff:fef4:ff82, error=49 icmp6_reflect: source can't be determined: dst=fe80::5255:27ff:fef4:ff82, error=49 icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 em0: got interface identifier from itself em0: ifid: d2:50:99:ff:fe:51:78:e8 em0: starting DAD for fe80:1::d250:99ff:fe51:78e8 em0: DAD complete for fe80:1::d250:99ff:fe51:78e8 - no duplicates found nd6_ra_input: invalid prefixlen 48 for rfc2374 prefix XXXX:XXX:XXXX::, ignored em1: got interface identifier from itself em1: ifid: d2:50:99:ff:fe:51:78:e9 em1: starting DAD for fe80:2::d250:99ff:fe51:78e9 em1: DAD complete for fe80:2::d250:99ff:fe51:78e9 - no duplicates found nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 em1: starting DAD for XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 em1: DAD complete for XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 - no duplicates found nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ra_input: invalid prefixlen 48 for rfc2374 prefix XXXX:XXX:XXXX::, ignored nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_na_input: ND packet from non-neighbor nd6_na_input: ND packet from non-neighbor nd6_ra_input: invalid prefixlen 48 for rfc2374 prefix XXXX:XXX:XXXX::, ignored nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:168:9d7e:b7f:2fcf nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:168:9d7e:b7f:2fcf nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:168:9d7e:b7f:2fcf nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_rtrequest: bad gateway value: em1 nd6_storelladdr: something odd happens nd6_storelladdr: something odd happens nd6_storelladdr: something odd happens nd6_ra_input: invalid prefixlen 48 for rfc2374 prefix XXXX:XXX:XXXX::, ignored nd6_ra_input: invalid prefixlen 48 for rfc2374 prefix XXXX:XXX:XXXX::, ignored === Next is the attempt using "autoconf" instead of "eui64" on em1 after a reboot: === # ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768 priority: 0 groups: lo inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr d0:50:99:51:78:e8 priority: 0 groups: egress media: Ethernet autoselect (1000baseT full-duplex) status: active inet XX.XXX.8.17 netmask 0xffffff80 broadcast XX.XXX.8.127 em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr d0:50:99:51:78:e9 priority: 0 media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause) status: active inet 192.168.212.254 netmask 0xffffff00 broadcast 192.168.212.255 enc0: flags=0<> priority: 0 groups: enc status: active pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33144 priority: 0 groups: pflog === === # netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default XX.XXX.8.1 UGS 4 59644 - 8 em0 XX.XXX.8.0/25 XX.XXX.8.17 UC 1 0 - 8 em0 XX.XXX.8.1 00:0c:db:f6:1c:00 UHLc 1 0 - 8 em0 XX.XXX.8.17 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 XX.XXX.8.127 XX.XXX.8.17 UHb 0 0 - 1 em0 127/8 127.0.0.1 UGRS 0 0 32768 8 lo0 127.0.0.1 127.0.0.1 UHl 1 0 32768 1 lo0 192.168.212/24 192.168.212.254 UC 6 0 - 8 em1 192.168.212.1 0c:c4:7a:31:d7:38 UHLc 0 98 - 8 em1 192.168.212.2 00:25:90:ae:ca:4a UHLc 0 269282 - 8 em1 192.168.212.3 b8:27:eb:22:72:8b UHLc 0 465 - 8 em1 192.168.212.4 b8:27:eb:32:0b:66 UHLc 0 97 - 8 em1 192.168.212.136 ec:a8:6b:f9:6e:35 UHLc 0 407 - 8 em1 192.168.212.252 d0:bf:9c:45:0c:a0 UHLc 0 3407 - 8 em1 192.168.212.254 d0:50:99:51:78:e9 HLl 0 0 - 1 lo0 192.168.212.255 192.168.212.254 UHb 0 0 - 1 em1 224/4 127.0.0.1 URS 0 0 32768 8 lo0 Internet6: Destination Gateway Flags Refs Use Mtu Prio Iface ::/104 ::1 UGRS 0 0 32768 8 lo0 ::/96 ::1 UGRS 0 0 32768 8 lo0 ::1 ::1 UHl 14 0 32768 1 lo0 ::127.0.0.0/104 ::1 UGRS 0 0 32768 8 lo0 ::224.0.0.0/100 ::1 UGRS 0 0 32768 8 lo0 ::255.0.0.0/104 ::1 UGRS 0 0 32768 8 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 fe80::/10 ::1 UGRS 0 0 32768 8 lo0 fe80::%lo0/64 fe80::1%lo0 U 0 0 32768 4 lo0 fe80::1%lo0 fe80::1%lo0 UHl 0 0 32768 1 lo0 fec0::/10 ::1 UGRS 0 0 32768 8 lo0 ff01::/16 ::1 UGRS 0 0 32768 8 lo0 ff01::%lo0/32 ::1 UC 0 0 32768 4 lo0 ff02::/16 ::1 UGRS 0 0 32768 8 lo0 ff02::%lo0/32 ::1 UC 0 0 32768 4 lo0 === Enable autoconf on the outside interface like usual: === # ifconfig em0 inet6 autoconf # ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768 priority: 0 groups: lo inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 em0: flags=208843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF6> mtu 1500 lladdr d0:50:99:51:78:e8 priority: 0 groups: egress media: Ethernet autoselect (1000baseT full-duplex) status: active inet XX.XXX.8.17 netmask 0xffffff80 broadcast XX.XXX.8.127 inet6 fe80::d250:99ff:fe51:78e8%em0 prefixlen 64 scopeid 0x1 em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 lladdr d0:50:99:51:78:e9 priority: 0 media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause) status: active inet 192.168.212.254 netmask 0xffffff00 broadcast 192.168.212.255 enc0: flags=0<> priority: 0 groups: enc status: active pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33144 priority: 0 groups: pflog === === # netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default XX.XXX.8.1 UGS 4 485401 - 8 em0 XX.XXX.8.0/25 XX.XXX.8.17 UC 1 0 - 8 em0 XX.XXX.8.1 00:0c:db:f6:1c:00 UHLc 1 0 - 8 em0 XX.XXX.8.17 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 XX.XXX.8.127 XX.XXX.8.17 UHb 0 0 - 1 em0 127/8 127.0.0.1 UGRS 0 0 32768 8 lo0 127.0.0.1 127.0.0.1 UHl 1 0 32768 1 lo0 192.168.212/24 192.168.212.254 UC 8 0 - 8 em1 192.168.212.1 0c:c4:7a:31:d7:38 UHLc 0 162 - 8 em1 192.168.212.2 00:25:90:ae:ca:4a UHLc 0 2133640 - 8 em1 192.168.212.3 b8:27:eb:22:72:8b UHLc 0 844 - 8 em1 192.168.212.4 b8:27:eb:32:0b:66 UHLc 0 143 - 8 em1 192.168.212.109 50:55:27:f4:ff:82 UHLc 0 1802 - 8 em1 192.168.212.136 ec:a8:6b:f9:6e:35 UHLc 0 840 - 8 em1 192.168.212.249 58:6d:8f:a0:51:c8 UHLc 0 24 - 8 em1 192.168.212.252 d0:bf:9c:45:0c:a0 UHLc 0 3759 - 8 em1 192.168.212.254 d0:50:99:51:78:e9 HLl 0 0 - 1 lo0 192.168.212.255 192.168.212.254 UHb 0 0 - 1 em1 224/4 127.0.0.1 URS 0 0 32768 8 lo0 Internet6: Destination Gateway Flags Refs Use Mtu Prio Iface ::/104 ::1 UGRS 0 0 32768 8 lo0 ::/96 ::1 UGRS 0 0 32768 8 lo0 default fe80::20c:dbff:fef6:1c00%em0 UG 0 0 - 56 em0 ::1 ::1 UHl 14 0 32768 1 lo0 ::127.0.0.0/104 ::1 UGRS 0 0 32768 8 lo0 ::224.0.0.0/100 ::1 UGRS 0 0 32768 8 lo0 ::255.0.0.0/104 ::1 UGRS 0 0 32768 8 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 fe80::/10 ::1 UGRS 0 0 32768 8 lo0 fe80::%em0/64 fe80::d250:99ff:fe51:78e8%em0 UC 1 0 - 4 em0 fe80::20c:dbff:fef6:1c00%em0 00:0c:db:f6:1c:00 UHLc 1 2 - 4 em0 fe80::d250:99ff:fe51:78e8%em0 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 fe80::%lo0/64 fe80::1%lo0 U 0 0 32768 4 lo0 fe80::1%lo0 fe80::1%lo0 UHl 0 0 32768 1 lo0 fec0::/10 ::1 UGRS 0 0 32768 8 lo0 ff01::/16 ::1 UGRS 0 0 32768 8 lo0 ff01::%em0/32 fe80::d250:99ff:fe51:78e8%em0 UC 0 0 - 4 em0 ff01::%lo0/32 ::1 UC 0 0 32768 4 lo0 ff02::/16 ::1 UGRS 0 0 32768 8 lo0 ff02::%em0/32 fe80::d250:99ff:fe51:78e8%em0 UC 0 0 - 4 em0 ff02::%lo0/32 ::1 UC 0 0 32768 4 lo0 === Now enable autoconf on the inside interface as well: === # ifconfig em1 inet6 autoconf # ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768 priority: 0 groups: lo inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 em0: flags=208843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF6> mtu 1500 lladdr d0:50:99:51:78:e8 priority: 0 groups: egress media: Ethernet autoselect (1000baseT full-duplex) status: active inet XX.XXX.8.17 netmask 0xffffff80 broadcast XX.XXX.8.127 inet6 fe80::d250:99ff:fe51:78e8%em0 prefixlen 64 scopeid 0x1 em1: flags=208843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF6> mtu 1500 lladdr d0:50:99:51:78:e9 priority: 0 media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause) status: active inet 192.168.212.254 netmask 0xffffff00 broadcast 192.168.212.255 inet6 fe80::d250:99ff:fe51:78e9%em1 prefixlen 64 scopeid 0x2 enc0: flags=0<> priority: 0 groups: enc status: active pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33144 priority: 0 groups: pflog === At this point we again have some of the "ff02" addresses etc: === # netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default XX.XXX.8.1 UGS 4 486750 - 8 em0 XX.XXX.8.0/25 XX.XXX.8.17 UC 1 0 - 8 em0 XX.XXX.8.1 00:0c:db:f6:1c:00 UHLc 1 0 - 8 em0 XX.XXX.8.17 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 XX.XXX.8.127 XX.XXX.8.17 UHb 0 0 - 1 em0 127/8 127.0.0.1 UGRS 0 0 32768 8 lo0 127.0.0.1 127.0.0.1 UHl 1 0 32768 1 lo0 192.168.212/24 192.168.212.254 UC 8 0 - 8 em1 192.168.212.1 0c:c4:7a:31:d7:38 UHLc 0 238 - 8 em1 192.168.212.2 00:25:90:ae:ca:4a UHLc 0 2133710 - 8 em1 192.168.212.3 b8:27:eb:22:72:8b UHLc 0 850 - 8 em1 192.168.212.4 b8:27:eb:32:0b:66 UHLc 0 149 - 8 em1 192.168.212.109 50:55:27:f4:ff:82 UHLc 0 3367 - 8 em1 192.168.212.136 ec:a8:6b:f9:6e:35 UHLc 0 966 - 8 em1 192.168.212.249 58:6d:8f:a0:51:c8 UHLc 0 24 - 8 em1 192.168.212.252 d0:bf:9c:45:0c:a0 UHLc 0 3886 - 8 em1 192.168.212.254 d0:50:99:51:78:e9 HLl 0 0 - 1 lo0 192.168.212.255 192.168.212.254 UHb 0 0 - 1 em1 224/4 127.0.0.1 URS 0 0 32768 8 lo0 Internet6: Destination Gateway Flags Refs Use Mtu Prio Iface ::/104 ::1 UGRS 0 0 32768 8 lo0 ::/96 ::1 UGRS 0 0 32768 8 lo0 default fe80::20c:dbff:fef6:1c00%em0 UG 0 0 - 56 em0 ::1 ::1 UHl 14 0 32768 1 lo0 ::127.0.0.0/104 ::1 UGRS 0 0 32768 8 lo0 ::224.0.0.0/100 ::1 UGRS 0 0 32768 8 lo0 ::255.0.0.0/104 ::1 UGRS 0 0 32768 8 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 fe80::/10 ::1 UGRS 0 0 32768 8 lo0 fe80::%em0/64 fe80::d250:99ff:fe51:78e8%em0 UC 1 0 - 4 em0 fe80::20c:dbff:fef6:1c00%em0 00:0c:db:f6:1c:00 UHLc 1 4 - 4 em0 fe80::d250:99ff:fe51:78e8%em0 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 fe80::%em1/64 fe80::d250:99ff:fe51:78e9%em1 UC 0 0 - 4 em1 fe80::d250:99ff:fe51:78e9%em1 d0:50:99:51:78:e9 UHLl 0 0 - 1 lo0 fe80::%lo0/64 fe80::1%lo0 U 0 0 32768 4 lo0 fe80::1%lo0 fe80::1%lo0 UHl 0 0 32768 1 lo0 fec0::/10 ::1 UGRS 0 0 32768 8 lo0 ff01::/16 ::1 UGRS 0 0 32768 8 lo0 ff01::%em0/32 fe80::d250:99ff:fe51:78e8%em0 UC 0 0 - 4 em0 ff01::%em1/32 fe80::d250:99ff:fe51:78e9%em1 UC 0 0 - 4 em1 ff01::%lo0/32 ::1 UC 0 0 32768 4 lo0 ff02::/16 ::1 UGRS 0 0 32768 8 lo0 ff02::%em0/32 fe80::d250:99ff:fe51:78e8%em0 UC 0 0 - 4 em0 ff02::%em1/32 fe80::d250:99ff:fe51:78e9%em1 UC 0 0 - 4 em1 ff02::%lo0/32 ::1 UC 0 0 32768 4 lo0 Run dhcp6c: === # dhcp6c -Df -c /etc/dhcp6c.conf em0 Jul/02/2015 20:10:17: get_duid: extracted an existing DUID from /var/db/dhcp6c_duid: 00:01:00:01:1d:1f:02:b3:d0:50:99:51:78:e8 Jul/02/2015 20:10:17: dhcp6_ctl_authinit: failed to open /etc/dhcp6cctlkey: No such file or directory Jul/02/2015 20:10:17: client6_init: failed initialize control message authentication Jul/02/2015 20:10:17: client6_init: skip opening control port Jul/02/2015 20:10:17: cfdebug_print: <3>[interface] (9) Jul/02/2015 20:10:17: cfdebug_print: <5>[em0] (3) Jul/02/2015 20:10:17: cfdebug_print: <3>begin of closure [{] (1) Jul/02/2015 20:10:17: cfdebug_print: <3>[send] (4) Jul/02/2015 20:10:17: cfdebug_print: <3>[ia-pd] (5) Jul/02/2015 20:10:17: cfdebug_print: <3>[0] (1) Jul/02/2015 20:10:17: cfdebug_print: <3>end of sentence [;] (1) Jul/02/2015 20:10:17: cfdebug_print: <3>end of closure [}] (1) Jul/02/2015 20:10:17: cfdebug_print: <3>end of sentence [;] (1) Jul/02/2015 20:10:17: cfdebug_print: <3>[id-assoc] (8) Jul/02/2015 20:10:17: cfdebug_print: <13>[pd] (2) Jul/02/2015 20:10:17: cfdebug_print: <13>begin of closure [{] (1) Jul/02/2015 20:10:17: cfdebug_print: <3>[prefix-interface] (16) Jul/02/2015 20:10:17: cfdebug_print: <5>[em1] (3) Jul/02/2015 20:10:17: cfdebug_print: <3>begin of closure [{] (1) Jul/02/2015 20:10:17: cfdebug_print: <3>[sla-id] (6) Jul/02/2015 20:10:17: cfdebug_print: <3>[1] (1) Jul/02/2015 20:10:17: cfdebug_print: <3>end of sentence [;] (1) Jul/02/2015 20:10:17: cfdebug_print: <3>[sla-len] (7) Jul/02/2015 20:10:17: cfdebug_print: <3>[8] (1) Jul/02/2015 20:10:17: cfdebug_print: <3>end of sentence [;] (1) Jul/02/2015 20:10:17: cfdebug_print: <3>end of closure [}] (1) Jul/02/2015 20:10:17: cfdebug_print: <3>end of sentence [;] (1) Jul/02/2015 20:10:17: cfdebug_print: <3>end of closure [}] (1) Jul/02/2015 20:10:17: cfdebug_print: <3>end of sentence [;] (1) Jul/02/2015 20:10:17: configure_pool: called Jul/02/2015 20:10:17: clear_poolconf: called Jul/02/2015 20:10:17: dhcp6_reset_timer: reset a timer on em0, state=INIT, timeo=0, retrans=51 Jul/02/2015 20:10:17: client6_send: a new XID (3e1176) is generated Jul/02/2015 20:10:17: copy_option: set client ID (len 14) Jul/02/2015 20:10:17: copy_option: set elapsed time (len 2) Jul/02/2015 20:10:17: copyout_option: set IA_PD Jul/02/2015 20:10:17: client6_send: send solicit to ff02::1:2%em0 Jul/02/2015 20:10:17: dhcp6_reset_timer: reset a timer on em0, state=SOLICIT, timeo=0, retrans=1068 Jul/02/2015 20:10:17: client6_recv: receive advertise from fe80::20c:dbff:fef6:1c00%em0 on em0 Jul/02/2015 20:10:17: dhcp6_get_options: get DHCP option IA_PD, len 41 Jul/02/2015 20:10:17: IA_PD: ID=0, T1=0, T2=0 Jul/02/2015 20:10:17: copyin_option: get DHCP option IA_PD prefix, len 25 Jul/02/2015 20:10:17: copyin_option: IA_PD prefix: XXXX:XXX:XXXX:a00::/56 pltime=9000 vltime=14400 Jul/02/2015 20:10:17: dhcp6_get_options: get DHCP option client ID, len 14 Jul/02/2015 20:10:17: DUID: 00:01:00:01:1d:1f:02:b3:d0:50:99:51:78:e8 Jul/02/2015 20:10:17: dhcp6_get_options: get DHCP option server ID, len 14 Jul/02/2015 20:10:17: DUID: 00:01:00:01:1a:bc:08:bf:00:50:56:9b:dd:3c Jul/02/2015 20:10:17: client6_recvadvert: server ID: 00:01:00:01:1a:bc:08:bf:00:50:56:9b:dd:3c, pref=-1 Jul/02/2015 20:10:17: client6_recvadvert: reset timer for em0 to 0.997603 Jul/02/2015 20:10:18: select_server: picked a server (ID: 00:01:00:01:1a:bc:08:bf:00:50:56:9b:dd:3c) Jul/02/2015 20:10:18: client6_send: a new XID (a135cb) is generated Jul/02/2015 20:10:18: copy_option: set client ID (len 14) Jul/02/2015 20:10:18: copy_option: set server ID (len 14) Jul/02/2015 20:10:18: copy_option: set elapsed time (len 2) Jul/02/2015 20:10:18: copyout_option: set IA_PD prefix Jul/02/2015 20:10:18: copyout_option: set IA_PD Jul/02/2015 20:10:18: client6_send: send request to ff02::1:2%em0 Jul/02/2015 20:10:18: dhcp6_reset_timer: reset a timer on em0, state=REQUEST, timeo=0, retrans=1096 Jul/02/2015 20:10:18: client6_recv: receive reply from fe80::20c:dbff:fef6:1c00%em0 on em0 Jul/02/2015 20:10:18: dhcp6_get_options: get DHCP option IA_PD, len 41 Jul/02/2015 20:10:18: IA_PD: ID=0, T1=0, T2=0 Jul/02/2015 20:10:18: copyin_option: get DHCP option IA_PD prefix, len 25 Jul/02/2015 20:10:18: copyin_option: IA_PD prefix: XXXX:XXX:XXXX:a00::/56 pltime=9000 vltime=14400 Jul/02/2015 20:10:18: dhcp6_get_options: get DHCP option client ID, len 14 Jul/02/2015 20:10:18: DUID: 00:01:00:01:1d:1f:02:b3:d0:50:99:51:78:e8 Jul/02/2015 20:10:18: dhcp6_get_options: get DHCP option server ID, len 14 Jul/02/2015 20:10:18: DUID: 00:01:00:01:1a:bc:08:bf:00:50:56:9b:dd:3c Jul/02/2015 20:10:18: get_ia: make an IA: PD-0 Jul/02/2015 20:10:18: update_prefix: create a prefix XXXX:XXX:XXXX:a00::/56 pltime=20714627277608, vltime=14400 Jul/02/2015 20:10:18: ifaddrconf: add an address XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9/64 on em1 Jul/02/2015 20:10:18: update_ia: T1(4500) and/or T2(7200) is locally determined Jul/02/2015 20:10:18: dhcp6_remove_event: removing an event on em0, state=REQUEST Jul/02/2015 20:10:18: dhcp6_remove_event: removing server (ID: 00:01:00:01:1a:bc:08:bf:00:50:56:9b:dd:3c) Jul/02/2015 20:10:18: client6_recvreply: got an expected reply, sleeping. ^C === Current ifconfig status with the delegated prefix set on em1: === # ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768 priority: 0 groups: lo inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 em0: flags=208843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF6> mtu 1500 lladdr d0:50:99:51:78:e8 priority: 0 groups: egress media: Ethernet autoselect (1000baseT full-duplex) status: active inet XX.XXX.8.17 netmask 0xffffff80 broadcast XX.XXX.8.127 inet6 fe80::d250:99ff:fe51:78e8%em0 prefixlen 64 scopeid 0x1 em1: flags=208843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF6> mtu 1500 lladdr d0:50:99:51:78:e9 priority: 0 media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause) status: active inet 192.168.212.254 netmask 0xffffff00 broadcast 192.168.212.255 inet6 fe80::d250:99ff:fe51:78e9%em1 prefixlen 64 scopeid 0x2 inet6 XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 prefixlen 64 enc0: flags=0<> priority: 0 groups: enc status: active pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33144 priority: 0 groups: pflog === At this point no /64 route has been added: === # netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default XX.XXX.8.1 UGS 3 487504 - 8 em0 XX.XXX.8.0/25 XX.XXX.8.17 UC 1 0 - 8 em0 XX.XXX.8.1 00:0c:db:f6:1c:00 UHLc 1 0 - 8 em0 XX.XXX.8.17 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 XX.XXX.8.127 XX.XXX.8.17 UHb 0 0 - 1 em0 127/8 127.0.0.1 UGRS 0 0 32768 8 lo0 127.0.0.1 127.0.0.1 UHl 1 0 32768 1 lo0 192.168.212/24 192.168.212.254 UC 8 0 - 8 em1 192.168.212.1 0c:c4:7a:31:d7:38 UHLc 0 244 - 8 em1 192.168.212.2 00:25:90:ae:ca:4a UHLc 0 2133824 - 8 em1 192.168.212.3 b8:27:eb:22:72:8b UHLc 0 922 - 8 em1 192.168.212.4 b8:27:eb:32:0b:66 UHLc 0 199 - 8 em1 192.168.212.109 50:55:27:f4:ff:82 UHLc 0 3714 - 8 em1 192.168.212.136 ec:a8:6b:f9:6e:35 UHLc 0 1017 - 8 em1 192.168.212.249 58:6d:8f:a0:51:c8 UHLc 0 24 - 8 em1 192.168.212.252 d0:bf:9c:45:0c:a0 UHLc 0 4017 - 8 em1 192.168.212.254 d0:50:99:51:78:e9 HLl 0 0 - 1 lo0 192.168.212.255 192.168.212.254 UHb 0 0 - 1 em1 224/4 127.0.0.1 URS 0 0 32768 8 lo0 Internet6: Destination Gateway Flags Refs Use Mtu Prio Iface ::/104 ::1 UGRS 0 0 32768 8 lo0 ::/96 ::1 UGRS 0 0 32768 8 lo0 default fe80::20c:dbff:fef6:1c00%em0 UG 0 0 - 56 em0 ::1 ::1 UHl 14 0 32768 1 lo0 ::127.0.0.0/104 ::1 UGRS 0 0 32768 8 lo0 ::224.0.0.0/100 ::1 UGRS 0 0 32768 8 lo0 ::255.0.0.0/104 ::1 UGRS 0 0 32768 8 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 XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 d0:50:99:51:78:e9 UHLl 0 0 - 1 lo0 fe80::/10 ::1 UGRS 0 0 32768 8 lo0 fe80::%em0/64 fe80::d250:99ff:fe51:78e8%em0 UC 1 0 - 4 em0 fe80::20c:dbff:fef6:1c00%em0 00:0c:db:f6:1c:00 UHLc 1 5 - 4 em0 fe80::d250:99ff:fe51:78e8%em0 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 fe80::%em1/64 fe80::d250:99ff:fe51:78e9%em1 UC 0 0 - 4 em1 fe80::d250:99ff:fe51:78e9%em1 d0:50:99:51:78:e9 UHLl 0 0 - 1 lo0 fe80::%lo0/64 fe80::1%lo0 U 0 0 32768 4 lo0 fe80::1%lo0 fe80::1%lo0 UHl 0 0 32768 1 lo0 fec0::/10 ::1 UGRS 0 0 32768 8 lo0 ff01::/16 ::1 UGRS 0 0 32768 8 lo0 ff01::%em0/32 fe80::d250:99ff:fe51:78e8%em0 UC 0 0 - 4 em0 ff01::%em1/32 fe80::d250:99ff:fe51:78e9%em1 UC 0 0 - 4 em1 ff01::%lo0/32 ::1 UC 0 0 32768 4 lo0 ff02::/16 ::1 UGRS 0 0 32768 8 lo0 ff02::%em0/32 fe80::d250:99ff:fe51:78e8%em0 UC 1 0 - 4 em0 ff02::1:2%em0 link#1 UHLc 0 2 - 4 em0 ff02::%em1/32 fe80::d250:99ff:fe51:78e9%em1 UC 0 0 - 4 em1 ff02::%lo0/32 ::1 UC 0 0 32768 4 lo0 === Enable rtadvd: === # rtadvd em1 === Magically, even though we saw no route above, ping6 against the SLAACed windows host is now working without creating any manual routes: === # ping6 XXXX:XXX:XXXX:a01:b91c:34cd:143b:c009 PING6(72=40+8+24 bytes) XXXX:XXX:XXXX:a01:5874:5953:8c1f:f09c --> XXXX:XXX:XXXX:a01:b91c:34cd:143b:c009 32 bytes from XXXX:XXX:XXXX:a01:b91c:34cd:143b:c009, icmp_seq=0 hlim=64 time=0.771 ms 32 bytes from XXXX:XXX:XXXX:a01:b91c:34cd:143b:c009, icmp_seq=1 hlim=64 time=0.441 ms 32 bytes from XXXX:XXX:XXXX:a01:b91c:34cd:143b:c009, icmp_seq=2 hlim=64 time=0.407 ms 32 bytes from XXXX:XXX:XXXX:a01:b91c:34cd:143b:c009, icmp_seq=3 hlim=64 time=0.388 ms 32 bytes from XXXX:XXX:XXXX:a01:b91c:34cd:143b:c009, icmp_seq=4 hlim=64 time=0.386 ms ^C --- XXXX:XXX:XXXX:a01:b91c:34cd:143b:c009 ping6 statistics --- 5 packets transmitted, 5 packets received, 0.0% packet loss round-trip min/avg/max/std-dev = 0.386/0.479/0.771/0.147 ms === The status of the interfaces: === # ifconfig lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768 priority: 0 groups: lo inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4 inet6 ::1 prefixlen 128 inet 127.0.0.1 netmask 0xff000000 em0: flags=208843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF6> mtu 1500 lladdr d0:50:99:51:78:e8 priority: 0 groups: egress media: Ethernet autoselect (1000baseT full-duplex) status: active inet XX.XXX.8.17 netmask 0xffffff80 broadcast XX.XXX.8.127 inet6 fe80::d250:99ff:fe51:78e8%em0 prefixlen 64 scopeid 0x1 em1: flags=208843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST,AUTOCONF6> mtu 1500 lladdr d0:50:99:51:78:e9 priority: 0 media: Ethernet autoselect (1000baseT full-duplex,rxpause,txpause) status: active inet 192.168.212.254 netmask 0xffffff00 broadcast 192.168.212.255 inet6 fe80::d250:99ff:fe51:78e9%em1 prefixlen 64 scopeid 0x2 inet6 XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 prefixlen 64 inet6 XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 prefixlen 64 inet6 XXXX:XXX:XXXX:a01:5874:5953:8c1f:f09c prefixlen 64 autoconf autoconfprivacy pltime 86144 vltime 604709 enc0: flags=0<> priority: 0 groups: enc status: active pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33144 priority: 0 groups: pflog === And finally the routing table where the /64 has magically been added at this point (and it is clear it was not added manually because it does not have the "S" flag) along with some other related route entries: === # netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default XX.XXX.8.1 UGS 5 489460 - 8 em0 XX.XXX.8.0/25 XX.XXX.8.17 UC 1 0 - 8 em0 XX.XXX.8.1 00:0c:db:f6:1c:00 UHLc 1 0 - 8 em0 XX.XXX.8.17 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 XX.XXX.8.127 XX.XXX.8.17 UHb 0 0 - 1 em0 127/8 127.0.0.1 UGRS 0 0 32768 8 lo0 127.0.0.1 127.0.0.1 UHl 1 0 32768 1 lo0 192.168.212/24 192.168.212.254 UC 9 0 - 8 em1 192.168.212.1 0c:c4:7a:31:d7:38 UHLc 0 321 - 8 em1 192.168.212.2 00:25:90:ae:ca:4a UHLc 0 2134018 - 8 em1 192.168.212.3 b8:27:eb:22:72:8b UHLc 0 1289 - 8 em1 192.168.212.4 b8:27:eb:32:0b:66 UHLc 0 266 - 8 em1 192.168.212.109 50:55:27:f4:ff:82 UHLc 0 3722 - 8 em1 192.168.212.118 b0:65:bd:47:8a:d3 UHLc 0 23 - 8 em1 192.168.212.136 ec:a8:6b:f9:6e:35 UHLc 0 1426 - 8 em1 192.168.212.249 58:6d:8f:a0:51:c8 UHLc 0 50 - 8 em1 192.168.212.252 d0:bf:9c:45:0c:a0 UHLc 0 4469 - 8 em1 192.168.212.254 d0:50:99:51:78:e9 HLl 0 0 - 1 lo0 192.168.212.255 192.168.212.254 UHb 0 0 - 1 em1 224/4 127.0.0.1 URS 0 0 32768 8 lo0 Internet6: Destination Gateway Flags Refs Use Mtu Prio Iface ::/104 ::1 UGRS 0 0 32768 8 lo0 ::/96 ::1 UGRS 0 0 32768 8 lo0 default fe80::20c:dbff:fef6:1c00%em0 UG 0 0 - 56 em0 ::1 ::1 UHl 14 0 32768 1 lo0 ::127.0.0.0/104 ::1 UGRS 0 0 32768 8 lo0 ::224.0.0.0/100 ::1 UGRS 0 0 32768 8 lo0 ::255.0.0.0/104 ::1 UGRS 0 0 32768 8 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 XXXX:XXX:XXXX:a01::/64 fe80::d250:99ff:fe51:78e9%em1 UC 2 0 - 4 em1 XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b 50:55:27:f4:ff:82 UHLc 0 0 - 4 em1 XXXX:XXX:XXXX:a01:5874:5953:8c1f:f09c d0:50:99:51:78:e9 UHLl 0 0 - 1 lo0 XXXX:XXX:XXXX:a01:b91c:34cd:143b:c009 ec:a8:6b:f9:6e:35 UHLc 0 6 - 4 em1 XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 d0:50:99:51:78:e9 UHLl 0 0 - 1 lo0 fe80::/10 ::1 UGRS 0 0 32768 8 lo0 fe80::%em0/64 fe80::d250:99ff:fe51:78e8%em0 UC 1 0 - 4 em0 fe80::20c:dbff:fef6:1c00%em0 00:0c:db:f6:1c:00 UHLc 1 11 - 4 em0 fe80::d250:99ff:fe51:78e8%em0 d0:50:99:51:78:e8 UHLl 0 0 - 1 lo0 fe80::%em1/64 fe80::d250:99ff:fe51:78e9%em1 UC 1 0 - 4 em1 fe80::d250:99ff:fe51:78e9%em1 d0:50:99:51:78:e9 UHLl 0 0 - 1 lo0 fe80::e403:59dd:3795:be54%em1 ec:a8:6b:f9:6e:35 UHLc 0 6 - 4 em1 fe80::%lo0/64 fe80::1%lo0 U 0 0 32768 4 lo0 fe80::1%lo0 fe80::1%lo0 UHl 0 0 32768 1 lo0 fec0::/10 ::1 UGRS 0 0 32768 8 lo0 ff01::/16 ::1 UGRS 0 0 32768 8 lo0 ff01::%em0/32 fe80::d250:99ff:fe51:78e8%em0 UC 0 0 - 4 em0 ff01::%em1/32 fe80::d250:99ff:fe51:78e9%em1 UC 0 0 - 4 em1 ff01::%lo0/32 ::1 UC 0 0 32768 4 lo0 ff02::/16 ::1 UGRS 0 0 32768 8 lo0 ff02::%em0/32 fe80::d250:99ff:fe51:78e8%em0 UC 1 0 - 4 em0 ff02::1:2%em0 link#1 UHLc 0 2 - 4 em0 ff02::%em1/32 fe80::d250:99ff:fe51:78e9%em1 UC 2 0 - 4 em1 ff02::1:ff10:897b%em1 link#2 UHLc 0 0 - 4 em1 ff02::1:ff3b:c009%em1 link#2 UHLc 0 0 - 4 em1 ff02::%lo0/32 ::1 UC 0 0 32768 4 lo0 === A to me extra intersting route is this one: === XXXX:XXX:XXXX:a01:b91c:34cd:143b:c009 ec:a8:6b:f9:6e:35 UHLc 0 6 - 4 em1 === This a bit above my IPv6 knowledge, but it looks like a route specific to the windows host (:c009) has been dynamically created. I guess this is the reason it is important to create the /64 route with the -cloning flag in the eui64 attempt above. The dmesg messages for this round: === # dmesg [...] em0: got interface identifier from itself em0: ifid: d2:50:99:ff:fe:51:78:e8 em0: starting DAD for fe80:1::d250:99ff:fe51:78e8 em0: DAD complete for fe80:1::d250:99ff:fe51:78e8 - no duplicates found icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 icmp6_reflect: source can't be determined: dst=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b, error=65 nd6_ra_input: invalid prefixlen 48 for rfc2374 prefix XXXX:XXX:XXXX::, ignored cannot forward src fe80:2::5255:27ff:fef4:ff82, dst fe80:2::d250:99ff:fe51:78e9, nxt 58, rcvif 2, outif 4 icmp6_reflect: source can't be determined: dst=fe80::5255:27ff:fef4:ff82, error=49 icmp6_reflect: source can't be determined: dst=fe80::5255:27ff:fef4:ff82, error=49 icmp6_reflect: source can't be determined: dst=fe80::5255:27ff:fef4:ff82, error=49 nd6_ra_input: invalid prefixlen 48 for rfc2374 prefix XXXX:XXX:XXXX::, ignored em1: got interface identifier from itself em1: ifid: d2:50:99:ff:fe:51:78:e9 em1: starting DAD for fe80:2::d250:99ff:fe51:78e9 em1: DAD complete for fe80:2::d250:99ff:fe51:78e9 - no duplicates found nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 em1: starting DAD for XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 em1: DAD complete for XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 - no duplicates found nd6_ra_input: invalid prefixlen 48 for rfc2374 prefix XXXX:XXX:XXXX::, ignored nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:38b2:8c0c:7310:897b nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 em1: starting DAD for XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 em1: starting DAD for XXXX:XXX:XXXX:a01:5874:5953:8c1f:f09c em1: DAD complete for XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 - no duplicates found em1: DAD complete for XXXX:XXX:XXXX:a01:5874:5953:8c1f:f09c - no duplicates found nd6_ra_input: invalid prefixlen 48 for rfc2374 prefix XXXX:XXX:XXXX::, ignored nd6_ra_input: invalid prefixlen 48 for rfc2374 prefix XXXX:XXX:XXXX::, ignored nd6_ra_input: invalid prefixlen 48 for rfc2374 prefix XXXX:XXX:XXXX::, ignored nd6_ra_input: invalid prefixlen 48 for rfc2374 prefix XXXX:XXX:XXXX::, ignored === In summary, using the following commands (together with ip6 forwarding enabled) allows us to have a working setup without any other manual intervention: === # ifconfig em0 inet6 autoconf # ifconfig em1 inet6 autoconf # dhcp6c -Df -c /etc/dhcp6c.conf em0 # rtadvd em1 === But like stated initially, we do not really like the idea of enabling autoconf on em1. Hope this helps you find out what is going wrong. -- Patrik Lundin