Я пытаюсь подключить маршрутизатор D-Link DSR-250n к моему серверу OpenVPN. Я следил это руководство с точки зрения запуска и запуска сервера, и может успешно установить клиентское соединение и разрешить имена, используя как клиент OpenVPN для Windows, так и клиент OpenVPN для Android. Вот мой server.conf
config:
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, а также могу без проблем подключиться к VPN-серверу по SSH. Что я не могу сделать после подключения маршрутизатора, так это разрешить имена как с маршрутизатора, используя его встроенные инструменты, так и с любого компьютера, подключенного к маршрутизатору. На всех VPN-серверах, маршрутизаторах и локальных компьютерах я жестко запрограммировал DNS-серверы Google: 8.8.8.8, 8.8.8.4.
Таким образом, у меня есть подключение к серверу и, казалось бы, хорошее VPN-соединение, которое позволяет мне подключаться к серверу по SSH - оказавшись там, я могу без проблем отслеживать имена маршрутов.
Что я пробовал:
DSR-250n имеет функцию DNS-прокси, которая позволяет подключенным компьютерам использовать IP-адрес маршрутизатора в качестве DNS - я включил и выключил это без каких-либо изменений в функциональности. На самом деле я не менял конфигурацию сервера выше, так как не знал, с чего начать.
Любая помощь приветствуется!
РЕДАКТИРОВАТЬ1 - Обновленная информация. Когда соединение VPN-клиента с маршрутизатором активно, у меня есть следующие возможности подключения:
С маршрутизатора:
С компьютера, подключенного к роутеру по DHCP:
Вот таблица маршрутизации 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
У меня сложилось впечатление, что вы, похоже, не выполнили часть инструкции dnsmasq, к которой вы связались с письмом, и у вас также может быть возможная проблема с маршрутизацией.
Что произойдет, если вы удалите жесткое кодирование google dns везде, кроме конфигурации сервера ovpn? Вот несколько дополнительных рассуждений о DNS в соответствии с вашим описанием и ссылкой, которую вы дали:
Я помню, как использовал resolv.conf с dnsmasq, поскольку я всегда был на статических публичных адресах без динамически назначаемых dns: es. Однако инструкция в ссылке, похоже, основана на обходном пути для получения адресов DNS, назначенных dhcp. Поскольку вы ориентируетесь на адреса DNS Google, а не на динамически назначаемые, я бы уделил этой части особое внимание. Убедитесь, что разрешение через dnsmasq работает дважды, прежде чем связывать клиентов через еще один серверный DNS-прокси. Если вы следуете этому руководству, убедитесь, что вы понимаете, что делает каждый шаг, поскольку вам может потребоваться немного изменить процедуру конфигурации dnsmasq, чтобы сделать ее простой и удобной.
Кроме того, поскольку решение явно разработано для того, чтобы dnsmasq собирал все запросы DNS и пересылал их, ваше жесткое кодирование адресов DNS Google в качестве первичных и вторичных преобразователей с адресом dnsmasq в качестве третичного преобразователя в конфигурации сервера ovpn (я предполагаю, что вы делаете то же самое везде, где вы пишете, что вы жестко запрограммировали даже на клиентах), можно ожидать двойного тайм-аута dns, прежде чем разрешение будет выполнено через dnsmasq, когда вы подключаетесь через vpn.
Это, конечно, не оптимально, вам следует удалить ссылки на DNS Google, за исключением случаев, указанных для конфигурации внешнего преобразователя в руководстве по dnsmasq для сервера ovpn. Когда он работает, вы можете снова добавить адреса DNS Google в свои DNS-клиенты ваших клиентских машин. Затем они должны быть временно заменены на те из openvpn при подключении.
Кроме того, рассмотрите возможность того, что маршрутизатор dlink не принимает три адреса DNS-сервера в своем динамическом DNS-клиенте, а также возможность конфликта между жестким кодированием адресов и их одновременным динамическим назначением для dlink. Возможно, он плохо справляется с такой конфигурацией? У меня нет доступа к вашей модели dlink и я не хочу читать ее документацию, а просто укажу некоторые возможные источники ошибок.
Так что у меня действительно сложилось впечатление, что вам нужно упростить часть DNS:
Если у вас есть дополнительные сети на вашем сервере ovpn рядом с путем, указанным в маршруте по умолчанию, и от которых вы зависите, чтобы сделать последний этап в Интернет, вам необходимо протолкнуть эти маршруты через dlink, используя маршрут «push» xxx0 255.255 .255.0 "" директива. Просто чтобы исключить это.
Чтобы клиенты в сети vpn могли связаться друг с другом, используйте директиву client-to-client в конфигурации вашего сервера ovpn.
Кроме того, таблица маршрутизации ваших маршрутизаторов dlink кажется мне немного странной. Я могу ошибаться в этом, так как dlink может представлять свою таблицу маршрутизации незнакомым (для меня) способом. То, как это выглядит, когда я сравниваю его с работающим клиентом ovpn, к которому у меня есть доступ, заключается в том, что вы разместили как внутреннюю сеть, соединяющую dlink, так и туннельную сеть vpn в подсети 10.8.0.0/24, при этом настроив маршрутизируемый а не мостовой vpn. Это создало бы проблемы в отделе маршрутизации.
Как уже было сказано, я не уверен, как dlink представляет собой таблицу маршрутизации, поэтому дополнительные сведения о вашей сети (в частности, как планируются внутренние IP-подсети и IP-адреса ключевых серверов, такие как адрес сервера ovpn, адрес dnsmasq, внутренний сетевое пространство VPN, внутренние клиентские подсети как есть без vpn) облегчили бы вам помощь с этой частью. Сделайте затемнение, если считаете необходимым, но сделайте его представительным и последовательным.
Я надеюсь, что это поможет.