Я в странной ситуации.
10.0.0.100
- это внутренний IP-адрес VPN-сервера.10.0.0.200
это внутренний IP-адрес DNS-сервера.Если я подключаюсь к VPN-серверу из внешней сети, все работает нормально - я могу подключаться к локальным машинам с помощью ping и ssh по их IP-адресам.
Однако по какой-то причине я не могу получить доступ к службе DNS. Я могу ssh в 10.0.0.200
. Так что я попробовал nslookup HOSTNAME 10.0.0.200
, но я получаю только ;; connection timed out; no servers could be reached
. Это происходит как для внутренних, так и для внешних доменных имен.
Пока OpenVPN работает, если я подключусь по ssh к любому из компьютеров в локальной сети и запущу nslookup HOSTNAME 10.0.0.200
, он работает по назначению. Более того, я могу даже подключиться по телнету к порту 53 машины.10.0.0.200
.
Чтобы отладить проблему, я попробовал еще несколько вещей. Я дал DNS серверу внешний IP, 10.0.0.200
, сказать, 1.2.3.4
. Во внешней сети я могу запустить nslookup HOSTNAME 1.2.3.4
, команда выполняется должным образом - она разрешает как внутренние, так и внешние доменные имена.
Однако, когда я запускаю клиент Openvpn на клиентском компьютере и запускаю nslookup HOSTNAME 1.2.3.4
, он не выполнялся с тем же connection timed out;
сообщение об ошибке.
traceroute to 1.2.3.4 (1.2.3.4), 30 hops max, 60 byte packets
1 5.5.0.1 (5.5.0.1) 25.705 ms 25.714 ms 25.790 ms
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * as7065.xe-1-0-6.ar1.pao1.us.nlayer.net (69.22.130.86) 25.742 ms
12 tengig4-3.cr1.lsatca11.sonic.net (69.12.211.6) 25.658 ms 33.069 ms 33.067 ms
13 po2.cr1.colaca01.sonic.net (70.36.205.65) 33.075 ms 33.009 ms 37.902 ms
14 gig1-1-1.gw.snfcca01.sonic.net (70.36.228.102) 40.420 ms 40.332 ms 40.364 ms
15 * * *
16 ...(and go on)
5.5.0.1
это шлюз виртуального интерфейса, созданного OpenVPN.
В этот момент я также заметил, что Wed May 18 22:32:44 2011 /sbin/route add -net 1.2.3.4 netmask 255.255.255.255 gw 5.5.0.1 metric 101
был в стартовом сообщении клиента openvpn.
Итак, я подозреваю, что маршрутизация трафика DNS-запросов через OpenVPN каким-то образом вызывает проблему. Однако я не знаю
Это много разрозненной информации с большим количеством неопределенностей. Подвести итоги:
Я считаю, что у вас проблема с конфигурацией DNSMasq, поскольку вы продолжаете получать ;; connection timed out; no servers could be reached
сообщение об ошибке.
Я столкнулся с той же проблемой при настройке DD-WRT с OpenVPN и исправил ее, добавив:
interface=tun0
к моему dnsmasq.conf
(Службы | Дополнительные параметры DNSMasq из HTTP-интерфейса DD-WRT) [1]
Затем вы можете отправить клиентам нужный DNS-сервер, добавив следующее:
push "dhcp-options DNS 10.x.x.x"
в конфигурацию OpenVPN [2], однако это работает только "из коробки" в Windows [3]. На клиентах Ubuntu я просто вручную настраивал свой внутренний DNS-сервер вместо того, чтобы писать сценарии для анализа foreign_option_n
параметр.
Будет очень полезно, если вы разместите свой /etc/openvpn/server.conf
файл конфигурации. В частности, убедитесь, что вы отправляете клиентам маршруты и DNS-серверы:
# give clients access to the whole work network, not just the server.
push "route 192.168.10.0 255.255.255.0"
# tell clients to use your internal dns server
push "dhcp-option DNS 10.8.15.1"
push "dhcp-option DOMAIN inside.example.com"
Смотри мой Как настроить openvpn Больше подробностей. Также убедитесь, что ваш DNS-сервер настроен на разрешение доступа с удаленных клиентов, и что брандмауэр на VPN-сервере разрешает прохождение DNS-трафика.
Вам необходимо настроить клиентский компьютер VPN для использования 10.0.0.200 в качестве преобразователя при подключении к VPN.
http://openvpn.net/index.php/open-source/documentation/howto.html#dhcp
Вы можете попробовать это вручную, отредактировав /etc/resolv.conf (или эквивалент в вашей ОС) и выполнив DNS-запросы.
Для дальнейшего устранения неполадок предоставьте: