LINUX.ORG.RU
ФорумAdmin

IPv6 через OpenVPN

 ,


0

1

Имеется сервер с 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 примитивный, думаю ничего интересного в нём нет. Куда можно копать? Меня немного удивляет то, что линк-локальные адреса разные у запроса и ответа, но видимо, так надо, тем более, что сервер таки отвечает.

★★★★★

Последнее исправление: Legioner (всего исправлений: 2)

Ответ на: комментарий от Harald

Ну его OpenVPN видимо добавляет.

root@nether:~# ip -6 ro
2a04:52c0:101:670:9cb:1328:5487:0/112 dev tun0 proto kernel metric 256  pref medium
2a04:52c0:101::/48 dev ens3 proto kernel metric 256  pref medium
fe80::/64 dev ens3 proto kernel metric 256  pref medium
fe80::/64 dev tun0 proto kernel metric 256  pref medium
default via 2a04:52c0:101::1 dev ens3 metric 1024  pref medium

Legioner ★★★★★
() автор топика
Ответ на: комментарий от Legioner

а что ему мешает слать пакеты без ndp proxy

Harald ★★★★★
()

а вообще можно TAP vpn поднять и бридж на VPS замутить с его основным интерфейсом

Harald ★★★★★
()

Чёта ты перемудрил. Зачем вообще LL адреса, да ещё и с прокси? OpenVPN же может выдавать IPv6 из пула как и IPv4.

gasinvein ★★★
()
Ответ на: комментарий от gasinvein

Чёта ты перемудрил.

В каком месте?

Зачем вообще LL адреса

Что значит зачем? Так IPv6 работает. Оно само (с).

да ещё и с прокси?

Ну без прокси точно не работает. С прокси должно работать, но тоже не работает.

OpenVPN же может выдавать IPv6 из пула как и IPv4.

Может. И выдаёт, я так и настроил. Не понял, к чему это.

Legioner ★★★★★
() автор топика
Ответ на: комментарий от gasinvein

Чтобы роутер знал, что этот адрес надо роутить через меня. Учитывая, что NDP-запросы от роутера приходят (в tcpdump это видно), это логично.

Legioner ★★★★★
() автор топика

Кстати нашёл свою же старую тему здесь, похоже мне опять не повезло с кривым провайдером. Но если у кого есть новые мысли, буду благодарен.

Legioner ★★★★★
() автор топика
Ответ на: комментарий от gasinvein

Потому что /112, если видишь где-то использование префикса размером менее чем /64 — значить proxy ndp в 99% случаев нужно включить.

BOOBLIK ★★★
()

У меня такое тоже на SolusVM. И у меня там /64 прeфикс. Причем если его назначить то все работает, т.е. адрес выдается, и пинг openvpn сервера есть по ipv6 есть, а вот по самому адресу который выдается, клиент уже не пингуется глобально, ну и доступа к тому же ipv6.google.com уже нет. Так вот я на это дело плюнул, и сделал /112 и SNAT c префикса до ip6 адреса назначенного в SolusVM панели.

anonymous_sama ★★★★★
()

Всё кстати работает, без всяких прокси и ll адресов

zgen ★★★★★
()
Ответ на: комментарий от Legioner

Но тут ты то ты вообще не этот случай описал.

Т.е. у тебя была /64 подсеть, ты её побил на N, одну оставил на интерфейсе, другую сунул в openvpn и у тебя не заработало?

Если ты все сделал правильно, то что приходит в голову, что тебе маршрутизируют не всю подсеть?

Ну это легко проверить, полагаю, если назначить ip из подсети, которая должна быть в openvpn на внешний интерфейс, и попробовать что-нить пингануть. Если работает - то накосячил ты, если нет - то они.

zgen ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.