On Wed, Jul 01, 2015 at 04:47:25PM +0200, Patrik Lundin wrote: > > We will retry using a snapshot and see where we end up. >
We have now attempted the same setup described earlier, using a current snapshot. The first problem of not getting a default route via autoconf when forwarding was enabled has been solved. The route appears as expeced The other problems still remain though. Initial ifconfig/routing table before enabling v6 stuff: # 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 158401 - 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 268 - 8 em1 192.168.212.2 00:25:90:ae:ca:4a UHLc 0 604809 - 8 em1 192.168.212.3 b8:27:eb:22:72:8b UHLc 0 815 - 8 em1 192.168.212.4 b8:27:eb:32:0b:66 UHLc 0 152 - 8 em1 192.168.212.136 ec:a8:6b:f9:6e:35 UHLc 1 586 - 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 ::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 === The sysctl settings: === net.inet6.ip6.forwarding=1 net.inet6.icmp6.nd6_debug=1 === Enabling autoconf creates an fe80 address and makes the route appear (yay!): === # 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 159369 - 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 285 - 8 em1 192.168.212.2 00:25:90:ae:ca:4a UHLc 0 604959 - 8 em1 192.168.212.3 b8:27:eb:22:72:8b UHLc 0 824 - 8 em1 192.168.212.4 b8:27:eb:32:0b:66 UHLc 0 158 - 8 em1 192.168.212.109 50:55:27:f4:ff:82 UHLc 0 270 - 8 em1 192.168.212.136 ec:a8:6b:f9:6e:35 UHLc 0 811 - 8 em1 192.168.212.249 58:6d:8f:a0:51:c8 UHLc 0 2 - 8 em1 192.168.212.252 d0:bf:9c:45:0c:a0 UHLc 0 1244 - 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 === We still see the "invalid prefixlen 48" message in dmesg which is probably okey for now: === nd6_ra_input: invalid prefixlen 48 for rfc2374 prefix XXXX:XXX:XXXX::, ignored === Moving on, it is time to request a prefix delegation using dhcp6c. The configuration file: === # cat /etc/dhcp6c.conf interface em0 { send ia-pd 0; }; id-assoc pd { prefix-interface em1 { sla-id 1; sla-len 8; }; }; === Running dhcp6c assigns a /64 address to em1, but as before, no route is added to the routing table for the directly connected /64 network: === # dhcp6c -Df -c /etc/dhcp6c.conf em0 Jul/01/2015 23:02:49: 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/01/2015 23:02:49: dhcp6_ctl_authinit: failed to open /etc/dhcp6cctlkey: No such file or directory Jul/01/2015 23:02:49: client6_init: failed initialize control message authentication Jul/01/2015 23:02:49: client6_init: skip opening control port Jul/01/2015 23:02:49: cfdebug_print: <3>[interface] (9) Jul/01/2015 23:02:49: cfdebug_print: <5>[em0] (3) Jul/01/2015 23:02:49: cfdebug_print: <3>begin of closure [{] (1) Jul/01/2015 23:02:49: cfdebug_print: <3>[send] (4) Jul/01/2015 23:02:49: cfdebug_print: <3>[ia-pd] (5) Jul/01/2015 23:02:49: cfdebug_print: <3>[0] (1) Jul/01/2015 23:02:49: cfdebug_print: <3>end of sentence [;] (1) Jul/01/2015 23:02:49: cfdebug_print: <3>end of closure [}] (1) Jul/01/2015 23:02:49: cfdebug_print: <3>end of sentence [;] (1) Jul/01/2015 23:02:49: cfdebug_print: <3>[id-assoc] (8) Jul/01/2015 23:02:49: cfdebug_print: <13>[pd] (2) Jul/01/2015 23:02:49: cfdebug_print: <13>begin of closure [{] (1) Jul/01/2015 23:02:49: cfdebug_print: <3>[prefix-interface] (16) Jul/01/2015 23:02:49: cfdebug_print: <5>[em1] (3) Jul/01/2015 23:02:49: cfdebug_print: <3>begin of closure [{] (1) Jul/01/2015 23:02:49: cfdebug_print: <3>[sla-id] (6) Jul/01/2015 23:02:49: cfdebug_print: <3>[1] (1) Jul/01/2015 23:02:49: cfdebug_print: <3>end of sentence [;] (1) Jul/01/2015 23:02:49: cfdebug_print: <3>[sla-len] (7) Jul/01/2015 23:02:49: cfdebug_print: <3>[8] (1) Jul/01/2015 23:02:49: cfdebug_print: <3>end of sentence [;] (1) Jul/01/2015 23:02:49: cfdebug_print: <3>end of closure [}] (1) Jul/01/2015 23:02:49: cfdebug_print: <3>end of sentence [;] (1) Jul/01/2015 23:02:49: cfdebug_print: <3>end of closure [}] (1) Jul/01/2015 23:02:49: cfdebug_print: <3>end of sentence [;] (1) Jul/01/2015 23:02:49: configure_pool: called Jul/01/2015 23:02:49: clear_poolconf: called Jul/01/2015 23:02:49: dhcp6_reset_timer: reset a timer on em0, state=INIT, timeo=0, retrans=825 Jul/01/2015 23:02:50: client6_send: a new XID (6f14d0) is generated Jul/01/2015 23:02:50: copy_option: set client ID (len 14) Jul/01/2015 23:02:50: copy_option: set elapsed time (len 2) Jul/01/2015 23:02:50: copyout_option: set IA_PD Jul/01/2015 23:02:50: client6_send: send solicit to ff02::1:2%em0 Jul/01/2015 23:02:50: dhcp6_reset_timer: reset a timer on em0, state=SOLICIT, timeo=0, retrans=1054 Jul/01/2015 23:02:50: client6_recv: receive advertise from fe80::20c:dbff:fef6:1c00%em0 on em0 Jul/01/2015 23:02:50: dhcp6_get_options: get DHCP option IA_PD, len 41 Jul/01/2015 23:02:50: IA_PD: ID=0, T1=0, T2=0 Jul/01/2015 23:02:50: copyin_option: get DHCP option IA_PD prefix, len 25 Jul/01/2015 23:02:50: copyin_option: IA_PD prefix: XXXX:XXX:XXXX:a00::/56 pltime=9000 vltime=14400 Jul/01/2015 23:02:50: dhcp6_get_options: get DHCP option client ID, len 14 Jul/01/2015 23:02:50: DUID: 00:01:00:01:1d:1f:02:b3:d0:50:99:51:78:e8 Jul/01/2015 23:02:50: dhcp6_get_options: get DHCP option server ID, len 14 Jul/01/2015 23:02:50: DUID: 00:01:00:01:1a:bc:08:bf:00:50:56:9b:dd:3c Jul/01/2015 23:02:50: client6_recvadvert: server ID: 00:01:00:01:1a:bc:08:bf:00:50:56:9b:dd:3c, pref=-1 Jul/01/2015 23:02:50: client6_recvadvert: reset timer for em0 to 0.955944 Jul/01/2015 23:02:52: select_server: picked a server (ID: 00:01:00:01:1a:bc:08:bf:00:50:56:9b:dd:3c) Jul/01/2015 23:02:52: client6_send: a new XID (883e77) is generated Jul/01/2015 23:02:52: copy_option: set client ID (len 14) Jul/01/2015 23:02:52: copy_option: set server ID (len 14) Jul/01/2015 23:02:52: copy_option: set elapsed time (len 2) Jul/01/2015 23:02:52: copyout_option: set IA_PD prefix Jul/01/2015 23:02:52: copyout_option: set IA_PD Jul/01/2015 23:02:52: client6_send: send request to ff02::1:2%em0 Jul/01/2015 23:02:52: dhcp6_reset_timer: reset a timer on em0, state=REQUEST, timeo=0, retrans=914 Jul/01/2015 23:02:52: client6_recv: receive reply from fe80::20c:dbff:fef6:1c00%em0 on em0 Jul/01/2015 23:02:52: dhcp6_get_options: get DHCP option IA_PD, len 41 Jul/01/2015 23:02:52: IA_PD: ID=0, T1=0, T2=0 Jul/01/2015 23:02:52: copyin_option: get DHCP option IA_PD prefix, len 25 Jul/01/2015 23:02:52: copyin_option: IA_PD prefix: XXXX:XXX:XXXX:a00::/56 pltime=9000 vltime=14400 Jul/01/2015 23:02:52: dhcp6_get_options: get DHCP option client ID, len 14 Jul/01/2015 23:02:52: DUID: 00:01:00:01:1d:1f:02:b3:d0:50:99:51:78:e8 Jul/01/2015 23:02:52: dhcp6_get_options: get DHCP option server ID, len 14 Jul/01/2015 23:02:52: DUID: 00:01:00:01:1a:bc:08:bf:00:50:56:9b:dd:3c Jul/01/2015 23:02:52: get_ia: make an IA: PD-0 Jul/01/2015 23:02:52: update_prefix: create a prefix XXXX:XXX:XXXX:a00::/56 pltime=21088289432360, vltime=14400 Jul/01/2015 23:02:52: ifaddrconf: add an address XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9/64 on em1 Jul/01/2015 23:02:52: update_ia: T1(4500) and/or T2(7200) is locally determined Jul/01/2015 23:02:52: dhcp6_remove_event: removing an event on em0, state=REQUEST Jul/01/2015 23:02:52: dhcp6_remove_event: removing server (ID: 00:01:00:01:1a:bc:08:bf:00:50:56:9b:dd:3c) Jul/01/2015 23:02:52: client6_recvreply: got an expected reply, sleeping. ^C === The interface config now looks like this: === # 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 === However, we are missing the directly connected /64 in the routing table: === # netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default XX.XXX.8.1 UGS 4 164141 - 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 461 - 8 em1 192.168.212.2 00:25:90:ae:ca:4a UHLc 0 605194 - 8 em1 192.168.212.3 b8:27:eb:22:72:8b UHLc 0 1140 - 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 3604 - 8 em1 192.168.212.136 ec:a8:6b:f9:6e:35 UHLc 0 1092 - 8 em1 192.168.212.249 58:6d:8f:a0:51:c8 UHLc 0 12 - 8 em1 192.168.212.252 d0:bf:9c:45:0c:a0 UHLc 0 2837 - 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 === At this point we start rtadvd on em1: === # rtadvd em1 === This makes the windows machine on the inside pick up a network address inside the /64, but trying to ping it from the router just makes the packets go out on em0 as earlier, since no route has been created: === # ping6 XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e PING6(72=40+8+24 bytes) XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 --> XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e ^C --- XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e ping6 statistics --- 16 packets transmitted, 0 packets received, 100.0% packet loss === We attempt to add the route manually: === # route add XXXX:XXX:XXXX:a01::/64 -iface XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 add net XXXX:XXX:XXXX:a01::/64: gateway XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 === This makes the routing table look like this: === # netstat -rn Routing tables Internet: Destination Gateway Flags Refs Use Mtu Prio Iface default XX.XXX.8.1 UGS 4 167290 - 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 570 - 8 em1 192.168.212.2 00:25:90:ae:ca:4a UHLc 0 605503 - 8 em1 192.168.212.3 b8:27:eb:22:72:8b UHLc 0 1647 - 8 em1 192.168.212.4 b8:27:eb:32:0b:66 UHLc 0 283 - 8 em1 192.168.212.109 50:55:27:f4:ff:82 UHLc 0 4500 - 8 em1 192.168.212.136 ec:a8:6b:f9:6e:35 UHLc 0 1889 - 8 em1 192.168.212.249 58:6d:8f:a0:51:c8 UHLc 0 12 - 8 em1 192.168.212.252 d0:bf:9c:45:0c:a0 UHLc 1 3291 - 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 16 - 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 XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 US 0 0 - 8 em1 XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 d0:50:99:51:78:e9 UHLl 0 16 - 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 9 - 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 5 - 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 === But ping6 is unhappy with this: === # ping6 XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e PING6(72=40+8+24 bytes) XXXX:XXX:XXXX:a01:d250:99ff:fe51:78e9 --> XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e ping6: sendmsg: Invalid argument ping6: wrote XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e 32 chars, ret=-1 ping6: sendmsg: Invalid argument ping6: wrote XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e 32 chars, ret=-1 ping6: sendmsg: Invalid argument ping6: wrote XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e 32 chars, ret=-1 ping6: sendmsg: Invalid argument ping6: wrote XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e 32 chars, ret=-1 ^C --- XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e ping6 statistics --- 4 packets transmitted, 0 packets received, 100.0% packet loss === Below are all the messages which appear in dmesg from the initial autoconf of em0 to the failed ping packets above. I am pretty sure the "something odd happens" messages occurs simultaneously to the ping6 errors. === # 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 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: 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 em1: DAD complete for fe80:2::d250:99ff:fe51:78e9 - 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_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:30c1:d3d7:a677:d09e 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:30c1:d3d7:a677:d09e 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:30c1:d3d7:a677:d09e 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_ra_input: invalid prefixlen 48 for rfc2374 prefix XXXX:XXX:XXXX::, ignored nd6_storelladdr: something odd happens nd6_storelladdr: something odd happens nd6_storelladdr: something odd happens nd6_storelladdr: something odd happens nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e 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:30c1:d3d7:a677:d09e 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:30c1:d3d7:a677:d09e 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:30c1:d3d7:a677:d09e 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:30c1:d3d7:a677:d09e 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:30c1:d3d7:a677:d09e 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:30c1:d3d7:a677:d09e 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:30c1:d3d7:a677:d09e 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:30c1:d3d7:a677:d09e 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:30c1:d3d7:a677:d09e 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:30c1:d3d7:a677:d09e 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:30c1:d3d7:a677:d09e 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:30c1:d3d7:a677:d09e 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:30c1:d3d7:a677:d09e 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:30c1:d3d7:a677:d09e nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_storelladdr: something odd happens nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_storelladdr: something odd happens nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_storelladdr: something odd happens nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_storelladdr: something odd happens nd6_storelladdr: something odd happens nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_storelladdr: something odd happens nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_storelladdr: something odd happens nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_storelladdr: something odd happens nd6_storelladdr: something odd happens nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_storelladdr: something odd happens nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_storelladdr: something odd happens nd6_ns_input: NS packet from non-neighbor nd6_ns_input: src=XXXX:XXX:XXXX:a01:30c1:d3d7:a677:d09e nd6_ns_input: dst=ff02:2::1:ff51:78e9 nd6_ns_input: tgt=fe80::d250:99ff:fe51:78e9 nd6_storelladdr: something odd happens === -- Patrik Lundin