If you look at the iproute2 gitweb, you'll see it's showing the status of the RTN_ANYCAST
bit set on the kernel routing structure. If you cross-reference that with the kernel source (rtnetlink.h) you'll see the following comment:
RTN_ANYCAST, /* Accept locally as broadcast,
but send as unicast */
If you check the manual page, you'll see the anycast status of an address is determined by configuration (in particular, adding the anycast
keyword when you specify the address to be added). According to man 8 ip
:
IFADDR := PREFIX | ADDR peer PREFIX [ broadcast ADDR ] [ anycast ADDR ]
[ label STRING ] [ scope SCOPE-ID ]
...
anycast - _not implemented_ the destinations are anycast
addresses assigned to this host. They are mainly equivalent to
local with one difference: such addresses are invalid when used
as the source address of any packet.
From the first part of the manual, it states that when you specify the address, you can instruct the stack that it's an anycast address. Without checking the kernel source code, I imagine that when you add an anycast address, the anycast bit gets propagated to a corresponding routing table entry that would be created when the address is added.
I'm not sure if the "not implemented" part is entirely correct, because it looks like iproute2 is indeed passing the anycast flags into the system calls. So it seems like if anycast is supported by the kernel, it should work. But I haven't tested it, so I don't know about that.