LINUX.ORG.RU
решено ФорумAdmin

NDP proxy не работает на VPS

 , ndp,


2

4

Есть VPS, дают блок /64 (провайдер veesp). На сервере крутится openvpn, соответственно, я хочу, чтобы клиенты получали глобальные ipv6-адреса.

Что я для этого сделал:

  • Разделил блок адресов на два по /65.
  • В нижней половине выделил один адрес, назначил его на wan-интерфейс сервера (с маской /65).
  • В верхней половине выделил /112 под openvpn: один адрес стоит на tun-интерфейсе, другие openvpn раздаёт клиентам.
  • Когда клиент подключается, выполняется ip neigh add proxy "$CLIENT_IPV6" dev eth0 (eth0 — это wan).
  • Стоят опции sysctl:
    • net.ipv6.conf.all.forwarding = 1
    • net.ipv6.conf.eth0.proxy_ndp = 1

Это работало, когда я это настроил. С тех пор прошло неопределённое время, конфигурация не менялась, только апдейты дебиана накатывались, и сегодня я заметил, что это уже не работает.

Если назначать любые адреса из моего блока /64 на eth0, то снаружи пинг проходит: ко мне от шлюза приходит neighbor solicitation, мой сервер отвечает neighbor advertisement, потом идут echo request и echo reply. Если этот же адрес не стоит на eth0, а используется для vpn (либо в качестве адреса одного из клиентов, либо адреса на tun-интерфейсе), и ndp proxy для него включён, то приходит neighbor solicitation, мой сервер отвечает neighbor advertisement — и тишина, echo request не доходят до моего сервера. Единственная разница — во втором случае neighbor advertisement уходит с link-local адреса на eth0, а в первом случае с того адреса, который запрашивается (потому что он назначен на eth0).

Как можно решить эту проблему, чтобы мои хосты за vpn нормально маршрутизировались?

Спасибо.

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

Миграция в Республику Беларусь рассматривается?

Боюсь, это создаст для меня больше проблем, чем решит :D

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

во втором случае neighbor advertisement уходит с link-local адреса на eth0, а в первом случае с того адреса, который запрашивается (потому что он назначен на eth0).

Может, это можно решить через ndppd?

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

Может, это можно решить через ndppd?

Уже пробовал, к сожалению, не сработало.

Хронологически, перед тем, как у меня работал текущий сетап с ip neigh add proxy (который сейчас не работает), у меня был настроен и работал ndppd. Я ушёл от него, потому что он работал только в режиме static и отвечал на ndp-запросы даже несуществующих адресов. Теперь же, когда ndp-прокси в ядре перестал работать, я попытался вернуться на ndppd и протестировать его (работающий тогда конфиг сохранился), но оно уже тоже не работает.

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

Или есть идеи, как настроить nddpd по-другому? На всякий случай, старый конфиг был предельно прост:

proxy eth0 {
        rule 2a00:xxxx:xxxx:xxxx:8000::/112 {
                static
        }
}
gentoo_root ★★★★★
() автор топика

Дело было в антиспуфинге veesp, он мешает фильтрует ndp neighbor advertisement, отправленные с link-local, а не подсети, выделенной мне. Отключили антиспуфинг через саппорт — заработало. Пока такое решение; если найду способ заставить линукс отправлять ответы с другого адреса, будет более полноценное решение.

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

Мне с veesp помогла следующая комбинация:

  1. Убрать с интерфейса link-local адрес (и добавить global, если его нет). Тогда neighbor advertisement будут отправляться с оставшегося global-адреса, и gateway будет их принимать.

  2. Добавить для gateway постоянную запись в таблицу ndp (через ip -6 ndp add/change). Решает следующую проблему: VPS при форвардинге пакетов до gateway для его «обнаружения» посылает neighbor solicitation только с link-local адреса, и такие solicitation-ы аналогично не принимаются. А если link-local адреса нет, то не посылаются вообще никакие solicitation-ы в этом случае.

если найду способ заставить линукс отправлять ответы с другого адреса, будет более полноценное решение

Если найдёшь, то отпишись пожалуйста в этой теме.

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

(через ip -6 ndp add/change)

Поправка: ip -6 neigh add/change, конечно же.

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