Невозможно пропинговать подсеть за сервером OpenVPN

Невозможно пропинговать подсеть за сервером OpenVPN

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

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

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

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

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

Связанный контент