Linux不发送路由数据包的NDP

我在三台机器A,B,C上configuration了IPv6networking(B和C是在A上运行的LXD容器)。 B和C直接连接到A.我已经在连接A到B和C的接口上分别分配了地址fdef:9062:4cf7:5::2/64fdef:9062:4cf7:5::2/64 。我在B上分配了fdef:9062:4cf7:5::1/64地址,在C上fdef:9062:4cf7:3::1/64 。我添加了路由fdef:9062:4cf7::1/48 via fdef:9062:4cf7:5::2/64在B和fdef:9062:4cf7::1/48 via fdef:9062:4cf7:3::2/64在C.我有net.ipv6.conf.all.forwarding=1在所有主机上,我不运行radv

现在,我可以从主机A ping B和C,但是从C(和vera)ping B只有在B和C在邻居caching中才有效! 就好像内核忘了为路由包发送NDP,而不是由ping直接发送的包。

这是正常的行为? 我很困惑,因为我期望IPv6路由将以与IPv4路由相同的方式工作。