Конфигурация сервера OpenVPN с D-Link DSR-250n в качестве клиента

Я пытаюсь подключить маршрутизатор D-Link DSR-250n к серверу OpenVPN. Я следовал этому руководству с точки зрения настройки и запуска сервера и могу успешно установить клиентское соединение и разрешить имена, используя как клиент OpenVPN для Windows, так и клиент Android OpenVPN. Вот мой server.conf конфигурации:

port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key # This file should be kept secret
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
push "redirect-gateway def1"
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
push "dhcp-option DNS 10.8.0.1"

Я добавил свои сертификаты в DSR-250n, убедился, что протокол (UDP), шифрование и имеет правильные алгоритмы, и указал его на VPN (других конфигурационных опций нет); это соединяется с, по-видимому, без проблем, и журналы маршрутизатора не сообщают об ошибках. Как только соединение установлено, я могу пропинговать IP-адрес VPN-сервера с компьютера, подключенного к маршрутизатору DSR-250n, а также без проблем подключиться к SSH-серверу VPN. То, что я не могу сделать после подключения маршрутизатора, это разрешить имена обоих маршрутизаторов с помощью встроенных инструментов или любого компьютера, подключенного к маршрутизатору. На всех VPN-серверах, маршрутизаторах и локальных компьютерах я жестко запрограммировал DNS -серверы Google, 8.8.8.8, 8.8.8.4.

Таким образом, у меня есть подключение к серверу и, казалось бы, хорошее VPN-подключение, которое позволяет мне подключаться к SSH к самому серверу - и, находясь там, я могу без проблем отслеживать маршруты.

Что я пробовал:

DSR-250n имеет функцию прокси-сервера DNS, которая позволяет подключенным компьютерам использовать IP-адрес маршрутизатора в качестве DNS - я включил и выключил его без изменений в функциональности. Я действительно не изменил вышеуказанную конфигурацию сервера, так как не знал, с чего начать.

Любая помощь приветствуется!

EDIT1 - обновленная информация. Когда соединение VPN-клиента с маршрутизатором активно, у меня есть следующие возможности подключения:

С роутера:

  • Я не могу пропинговать любые прямые общедоступные IP-адреса, кроме моей локальной сети 192.168.1.x и общедоступного IP-адреса VPN.
  • Я не могу пропинговать частную подсеть VPN на 10.8.0.1.
  • Я не могу разрешить какие-либо имена в Интернете, и traceroute не удается полностью.

С компьютера, подключенного к маршрутизатору через DHCP:

  • Я не могу пропинговать любые прямые общедоступные IP-адреса, кроме моей локальной сети 192.168.x и общедоступного IP-адреса VPN.
  • Я не могу пропинговать частную подсеть VPN на 10.8.0.1.
  • Я не могу разрешить какие-либо имена в Интернете, и traceroute не удается полностью.

Вот таблица маршрутизации IP4 от самого маршрутизатора, когда у меня есть активное соединение с сервером OpenVPN с маршрутизатором в качестве клиента:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.8.0.1        10.8.0.9        255.255.255.255 UGH   0      0        0 tun1
x.x.x.x (VPN server public IP)    99.231.136.1    255.255.255.255 UGH   0      0        0 eth1
10.8.0.9        0.0.0.0         255.255.255.255 UH    0      0        0 tun1
192.168.1.0    0.0.0.0         255.255.255.0   U     0      0        0 bdg1
99.231.136.0    0.0.0.0         255.255.254.0   U     0      0        0 eth1
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         10.8.0.9        128.0.0.0       UG    0      0        0 tun1
128.0.0.0       10.8.0.9        128.0.0.0       UG    0      0        0 tun1
0.0.0.0         99.231.136.1    0.0.0.0         UG    0      0        0 eth1

1 ответ

У меня сложилось впечатление, что вы, похоже, не выполнили часть инструкции dnsmasq, с которой вы ссылались на письмо, и у вас тоже может возникнуть проблема с маршрутизацией.

Что произойдет, если вы удалите жесткое кодирование Google DNS везде, кроме как в конфигурации сервера ovpn? Вот некоторые дополнительные рассуждения о DNS согласно вашему описанию и ссылке, которую вы дали:

Я вспоминаю использование resolv.conf с dnsmasq, так как я всегда использовал статические публичные адреса без динамически назначаемых dns: es. Однако инструкция в ссылке, похоже, основана на обходном пути для получения назначенных DNS-адресов DHCP. Поскольку вы ориентируетесь на адреса Google DNS, а не на динамически назначенные адреса, я бы обратил особое внимание на эту часть. Удостоверьтесь, что разрешение через dnsmasq работает, прежде чем связывать клиентов через еще один внутренний прокси-сервер dns. Если вы следуете этому руководству, убедитесь, что понимаете, что делает каждый шаг, так как вам может потребоваться немного изменить процедуру конфигурации dnsmasq, чтобы сделать ее простой и понятной.

Кроме того, поскольку решение специально разработано для dnsmasq, собирающего все DNS-запросы и пересылающего их, вы жестко программируете адреса google dns в качестве первичных и вторичных распознавателей с адресом dnsmasq в качестве третичного распознавателя в конфигурации сервера ovpn (я полагаю, вы делаете То же самое везде, где вы пишете, что вы жестко запрограммировали даже на клиентах), можно ожидать двойной таймаут dns, прежде чем разрешение будет выполнено через dnsmasq, когда вы подключаетесь через vpn.

Это, конечно, не оптимально, вы должны удалить ссылки на Google DNS, за исключением случаев, указанных для конфигурации внешнего распознавателя в руководстве dnsmasq для сервера ovpn. Когда у вас все получится, вы можете снова добавить адреса DNS Google в свои клиенты DNS своих клиентских машин. Затем они должны быть временно заменены на openvpn при подключении.

Кроме того, рассмотрим возможность того, что маршрутизатор dlink не принимает три адреса DNS-сервера в своем динамическом DNS-клиенте, а также рассмотрим возможность конфликта между жестким кодированием адресов и их динамическим назначением для dlink одновременно. Возможно, он плохо справляется с таким конфигом? У меня нет доступа к вашей модели dlink, и я на самом деле не хочу читать ее документацию, а просто указываю некоторые возможные источники ошибок.

Так что у меня действительно сложилось впечатление, что вам нужно упростить часть DNS:

  • Убедитесь, что сервер ovpn dnsmasq разрешает только Google dns и Google dns.
  • Удаляйте ссылки на gns dns везде, кроме вашего сервера dnsmasq resolv.conf или его файла интерфейсов, как указано в руководстве, на которое вы ссылаетесь.
  • Используйте свой адрес dnsmasq в качестве адреса dns-сервера в dns-клиенте dlink, сначала попробуйте жестко его кодировать, и, если это работает, попробуйте динамически вытолкнуть его с сервера ovpn.
  • Когда вышеперечисленное сработает, на клиенте попробуйте использовать адрес dlink или dnsmasq в зависимости от того, как прокси-сервер dns переключается в dlink.

Если у вас есть дополнительные сети на вашем сервере ovpn рядом с путем, указанным в маршруте по умолчанию, и от которого вы зависите, чтобы сделать последний отрезок в Интернет, вам нужно протолкнуть эти маршруты к dlink, используя маршрут "push" xxx0 255.255. Директива 255.0". Просто чтобы исключить это.

Чтобы клиенты в сети vpn могли общаться друг с другом, используйте директиву "клиент-клиент" в конфигурации сервера ovpn.

Кроме того, ваша таблица маршрутизации dlink выглядит немного странно для меня. Я могу ошибаться, так как dlink может представить свою таблицу маршрутизации незнакомым способом (для меня). Когда я сравниваю его с рабочим клиентом ovpn, к которому у меня есть доступ, выглядит так, что вы поместили как внутреннюю сеть, соединяющую dlink, так и туннельную сеть vpn в подсеть 10.8.0.0/24, настроив маршрутизируемый маршрутизатор. а не соединенный мостом vpn. Это может привести к неприятностям в отделе маршрутизации.

Как я уже сказал, я не уверен, как dlink представляет себя в таблице маршрутизации, поэтому дополнительные сведения о вашей сети (в частности, как планируются внутренние подсети ip и IP-адреса сервера ключей, такие как адрес сервера ovpn, адрес dnsmasq, внутренний Пространство сети vpn, внутренние клиентские подсети как есть, без vpn) облегчит вам задачу в этой части. Запутывайте, как считаете нужным, но сделайте его представительным и последовательным.

Я надеюсь, что это поможет.

Другие вопросы по тегам