I am using route(8) in a script but found some odd behavior when
querying routes for some IPv6 addresses - lookups seem to fail if the
trailing address bytes are zero (implicit or explicitly) as shown
below. However, the routing table still seems to be forwarding
traffic correctly, as shown in my final example.
Can anyone shed light on this, perhaps explain how I'm misusing route(8)?
This is on amd64 running 6.3-stable.
Thanks.
--david
$ route -n get 2607:f8b0:4004:805::2004
route to: 2607:f8b0:4004:805::2004
destination: ::
mask: ::
gateway: fe80:1::201:5cff:fe86:7046%em0
interface: em0
if address: fe80::5e8c:75d:e349:26fd%em0
priority: 56 (default)
flags: <UP,GATEWAY,DONE,STATIC>
label: slaacd
use mtu expire
220369 0 0
sockaddrs: <DST,GATEWAY,NETMASK,IFP,IFA,LABEL>
$ route -n get 2607:f8b0:4004:805::
get net 2607:f8b0:4004:805::: not in table
$ route -n get 2600:1901:0:94b6::
get net 2600:1901:0:94b6::: not in table
$ ping6 2600:1901:0:94b6::
PING 2600:1901:0:94b6:: (2600:1901:0:94b6::): 56 data bytes
64 bytes from 2600:1901:0:94b6::: icmp_seq=0 hlim=54 time=10.302 ms
64 bytes from 2600:1901:0:94b6::: icmp_seq=1 hlim=54 time=11.270 ms