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