Linux не отправляет NDP для маршрутизируемых пакетов
Я настроил сеть IPv6 на трех машинах A, B, C (B и C - контейнеры LXD, работающие на A). B и C напрямую связаны только с A. Я назначил адреса fdef:9062:4cf7:5::2/64
а также fdef:9062:4cf7:5::2/64
соответственно на интерфейсах, соединяющих А с В и С. Я назначил fdef:9062:4cf7:5::1/64
адрес на Б и fdef:9062:4cf7:3::1/64
на C. Я добавил маршрут fdef:9062:4cf7::1/48 via fdef:9062:4cf7:5::2/64
на Б и fdef:9062:4cf7::1/48 via fdef:9062:4cf7:3::2/64
на C. у меня есть net.ipv6.conf.all.forwarding=1
на всех хостах и я не бегаю radv
,
Теперь я могу пропинговать B и C с хоста A, но пинг B с C (и наоборот) работает, только если B и C находятся в кэше соседей A! Как будто ядро забыло отправить NDP для маршрутизируемых пакетов, но не для пакетов, напрямую отправленных ping
,
Это нормальное поведение? Я запутался, потому что ожидал, что маршрутизация IPv6 будет работать так же, как маршрутизация IPv4.