LINUX.ORG.RU
решено ФорумAdmin

Проблемы c DNS в виртуальной сети OpenVPN

 ,


0

1

Здравствуйте, Уважаемые Форумчане!

Имеется сервер в интернете, с 1 сетевым интерфейсом, на котором поднят почтовый сервер. Порты IMAP и POP3 доступны только с определенных IP.
Потребовалось дать доступ к просмотру почты пользователям с мобильных устройств, к сожалению открыть доступ к IMAP\POP3 для всех не представляется возможным, поэтому было принято решение установить на этом же сервере OpenVPN, с NAT'ом всего проходящего трафика.

Информация о конфигурации:
Публичный IP адрес сервера: 11.11.11.11;
Виртуальная сеть OpenVPN: 10.20.30.0/24;
Dovecot поднят на всех интерфейсах.

Одна из основных идей заключалась в том, что пользователи из доверенных сетей подключаются с помощь почтовых клиентов с использованием DNS имени, например smtp.domain.ru (реальный домен), для того, что бы при подключении к OVPN не менять настройки почтовой программы на 10.20.30.1 был поднят DNS сервер (BIND) с такой же зоной domain.ru, где smtp.domain.ru резолвится в 10.20.30.1.

named.conf: pastebin.com/MXtm3abK
ovpn.conf: pastebin.com/PKb9ZNxg
iptables: pastebin.com/V4EDEYh6

Теперь проблема: столкнулся с ней на Windows 7, с использованием OpenVPN GUI, при попытке пинга адреса по DNS имени smtp.domain.ru адрес резовлится не в 10.20.30.1, а в 11.11.11.11. При этом, если набрать nslookup, то все будет отлично, резолв происходит и прямой, и обратной зоны, с сервера, который выдался OpenVPN по DHCP, т.е. 10.20.30.1.

ipconfig /flushdns не помогает

Рассмотрение трафика на клиенте с WireShark показало, что DNS запросы в проблемное время идут не на 10.20.30.1, а на шлюз локальной сети клиента - 192.168.0.1.

Почему так? ЧЯДНТ?

route на клиенте: pastebin.com/yPPtkjeJ
ipconfig на клиенте: pastebin.com/ZDkK2BPg


Возможно, Windows обязательно хочет наличие двух DNS серверов в конфигурации интерфейса.

Я бы попробовал просто добавить в файл ovpn.conf ещё одну строку: push «dhcp-option DNS 10.20.30.1»

maxt_t ()
Ответ на: комментарий от maxt_t

Не помогает, так же попробовал исправить push «redirect-gateway» на push «redirect-gateway def1»

Картина такая же, DNS запросы идут на шлюз локальной сети клиента - 192.168.0.1

aseco ()
Ответ на: комментарий от maxt_t

Спасибо за наводку!

По этой тематике нашел более простое решение openvpn.net/archive/openvpn-users/2004-09/msg00484.html

Иной подход: support2.microsoft.com

Бложик, где более менее описвыается проблема: itdoc.com.ua

p.s. как все коряво получается :(

aseco ()
Ответ на: комментарий от aseco

Тут ещё может быть такая вещь - Windows «не любит» и не даёт, например, в ручном режиме указать два DNS с одинаковым IP.

Как вариант - заведите дополнительный алиас на сетевой карте, на вашем DNS сервере с адресом, к примеру 10.20.30.2 и передавайте его вторым DNS.

maxt_t ()
Ответ на: комментарий от pic0

Воспроизвести проблему на виртуальной машине Windows XP (2 сетевых интерфейса - основной + tun) не получилось, такая проблема проявляется на ноутбуке с количеством интерфейсов = 5 (eth, wlan, tun, 2 адаптера от vmWare)

В целом, maxt_t, показал правильную причину «неисправности», за что ему большое спасибо!

aseco ()
Ответ на: комментарий от aseco

bicycle

Для решения соорудил такой вот костыль:

в *.ovpn добавил:

script-security 3
up dnsfix.bat

dnsfix.bat

start ipconfig.vbs

ipconfig.vbs

WScript.Sleep 10000

Set objShell = WScript.CreateObject ("WScript.shell")

objShell.Run "ipconfig /flushdns", 0
objShell.Run "ipconfig /renew", 0

Set objShell = Nothing

Использовал такую схему ~ день, полет нормальный.

aseco ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.