1

Вот моя инфраструктура:

dns of mydomain.com:
  vpn A 90.90.90.1
  vpn A 90.90.90.2

client vpn config:
  client
  dev tun
  proto udp
  nobind
  remote vpn.mydomain.com 1394

server1
  net.ipv4.ip_forward = 1
  iptables:
    FORWARD defaults to ACCEPT
  vpn config:
    dev tun
    topology subnet
    port 1394
    proto udp
    server 10.10.1.0 255.255.255.0
    push "route 10.90.90.0 255.255.255.0"
  interfaces:
    ifpub: 90.90.90.1/24
    ifpriv: 10.90.90.1/24
    ifvpn: 10.10.1.1/24
  routes:
    10.10.1.0/24 src 10.10.1.1 dev ifvpn
    10.10.2.0/24 via 10.90.90.2 dev ifpriv

server2
  net.ipv4.ip_forward = 1
  iptables:
    FORWARD defaults to ACCEPT
  vpn config:
    dev tun
    topology subnet
    port 1394
    proto udp
    server 10.10.2.0 255.255.255.0
    push "route 10.90.90.0 255.255.255.0"
  interfaces:
    ifpub: 90.90.90.2/24
    ifpriv: 10.90.90.2/24
    ifvpn: 10.10.2.1/24
  routes:
    10.10.1.0/24 via 10.90.90.1 dev ifpriv
    10.10.2.0/24 src 10.10.2.1 dev ifvpn

Проблема в том, что с моего клиента я могу пропинговать сервер OpenVPN, к которому я подключен, но не другой сервер в подсети 10.90.90.0/24.

tcpdump показывает, что запрос ICMP переходит от ifvpn к ifpriv на том же сервере, но затем пакет запроса ICMP никогда не идет дальше.

Добавление регистрации в iptables также показывает, что пакет запроса ICMP переходит в состояние POSTROUTING без потери, но затем пакет так и не дошел до места назначения, и я не знаю, что здесь происходит, у меня нет решений.

Я знаю, что могу маскировать свои пакеты, но не хочу, потому что это не рекомендуется (https://community.openvpn.net/openvpn/wiki/NatHack), иначе это будет мое самое последнее решение.

1 ответ1

0

Если удаленный сервер «выставляет подсеть», у вас должен быть каталог ccd содержащий файлы с директивами iroute , как тщательно описано в документации OpenVPN. Вы также должны иметь директивы route отправленные клиентам.

Когда все работает правильно:

  • Клиент отправляет пинг.
  • В клиентской ОС есть команда маршрутизации, которая отправляет этот трафик на локальный сервер OpenVPN.
  • Информация ccd сообщает OpenVPN, к которому подключено удаленное устройство для отправки трафика для доставки.
  • Трафик появляется на этом удаленном устройстве и направляется к месту назначения.
  • Для обратного отключения удаленная система также должна иметь маршрут операционной системы, который будет отправлять трафик обратно на свой сервер OpenVPN.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .