Имеется сервер с Debian и OpenVPN. IPv4 работает (само соединение с сервером тоже через IPv4). К серверу вроде как подведена IPv6 подсеть (сервер это VPS, в консоли SolusVM). Выделил для VPN /112 подсеть: 2a04:52c0:101:670:9cb:1328:5487::/112
. Добавил адреса 2a04:52c0:101:670:9cb:1328:5487:1
и 2a04:52c0:101:670:9cb:1328:5487:1000
в SolusVM. Включил sysctl net.ipv6.conf.all.forwarding=1
и sysctl -w net.ipv6.conf.all.proxy_ndp=1
. Сделал ip -6 neigh add proxy 2a04:52c0:101:670:9cb:1328:5487:1 dev ens3
и ip -6 neigh add proxy 2a04:52c0:101:670:9cb:1328:5487:1000 dev ens3
Клиент соединяется, tun0 появляется, у него и у клиента ожидаемые адреса. Клиент может пинговать адреса самого сервера. Но пинг внешних адресов (например гугловый 2a00:1450:400e:805::200e
) не работает.
Запустил tcpdump ens3 и вижу на мой взгляд странное:
23:54:49.959234 IP6 2a04:52c0:101:670:9cb:1328:5487:1000 > 2a00:1450:400e:805::200e: ICMP6, echo request, seq 44, length 40
23:54:49.965432 IP6 fe80::218:74ff:fe21:6800 > ff02::1:ff87:1000: ICMP6, neighbor solicitation, who has 2a04:52c0:101:670:9cb:1328:5487:1000, length 32
23:54:50.243217 IP6 fe80::216:3cff:fe9c:5757 > fe80::218:74ff:fe21:6800: ICMP6, neighbor advertisement, tgt is 2a04:52c0:101:670:9cb:1328:5487:1000, length 32
23:54:50.965082 IP6 fe80::218:74ff:fe21:6800 > ff02::1:ff87:1000: ICMP6, neighbor solicitation, who has 2a04:52c0:101:670:9cb:1328:5487:1000, length 32
23:54:51.555210 IP6 fe80::216:3cff:fe9c:5757 > fe80::218:74ff:fe21:6800: ICMP6, neighbor advertisement, tgt is 2a04:52c0:101:670:9cb:1328:5487:1000, length 32
23:54:51.963112 IP6 fe80::218:74ff:fe21:6800 > ff02::1:ff87:1000: ICMP6, neighbor solicitation, who has 2a04:52c0:101:670:9cb:1328:5487:1000, length 32
23:54:52.707208 IP6 fe80::216:3cff:fe9c:5757 > fe80::218:74ff:fe21:6800: ICMP6, neighbor advertisement, tgt is 2a04:52c0:101:670:9cb:1328:5487:1000, length 32
То бишь, как я это понимаю, роутер моему серверу на линк-локальный адрес ff02::1:ff87:1000 шлёт запрос, мой сервер с другого линк-локального адреса шлёт ответ, что мол вот он я с таким адресом (это работает ndp proxy). Но роутер игнорирует этот ответ и опять шлёт запрос и тд. И видимо не роутит ответы от гугла на мой сервер.
Это я чего-то не так настроил или как обычно проблемы с кривой поддержкой IPv6?
iptables девственно чистые, всё разрешено. Конфиг OpenVPN примитивный, думаю ничего интересного в нём нет. Куда можно копать? Меня немного удивляет то, что линк-локальные адреса разные у запроса и ответа, но видимо, так надо, тем более, что сервер таки отвечает.