Назад | Перейти на главную страницу

Как заставить короткие (неполные) имена хостов работать с Mountain Lion, Tunnelblick, pfSense, OpenVPN

Я использую Tunnelblick 3.3beta21b в Mac OS X 10.8.2 (Mountain Lion) для подключения к виртуальной частной сети pfSense / OpenVPN. При подключении к VPN я могу получить доступ к машинам в нашем центре обработки данных. Это pfSense 2.0.1.

Машины в центре обработки данных работают под управлением Ubuntu 12.04 Precise. Когда я нахожусь на машине в центре обработки данных, я могу пинговать другие машины с короткими (не полностью определенными) именами хостов:

web1:~  $ ping web2
PING web2 (10.10.160.6) 56(84) bytes of data.
64 bytes from web2 (10.10.160.6): icmp_req=1 ttl=64 time=0.380 ms

Файл resolv.conf на любом компьютере с Ubuntu в центре обработки данных выглядит так:

web1:~  $ cat /etc/resolv.conf 
nameserver 10.10.160.2
nameserver 10.10.160.45

К сожалению, когда я дома подключаюсь через TunnelBlick / OpenVPN, короткие имена не работают с моего Mac:

mac:~  $ ping web2
ping: cannot resolve web2: Unknown host

Однако nslookup возвращает правильный IP-адрес для «web2», и если я пингуюсь с точкой в ​​конце, он работает:

mac:~  $ ping web2.
PING web2 (10.10.160.6) 56(84) bytes of data.
64 bytes from web2 (10.10.160.6): icmp_req=1 ttl=64 time=0.380 ms

При подключении через Tunnelblick файл resolv.conf моего Mac выглядит следующим образом. Обратите внимание, что Tunnelblick добавил строку «поиск»; его нет, когда я отключен от VPN:

#
# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.
#
# This file is automatically generated.
#
search company.com
nameserver 10.10.160.45
nameserver 8.8.8.8

Как мне настроить Mac OS X, Pfsense / OpenVPN или Tunnelblick, чтобы я мог использовать короткие имена хостов с моего Mac?

Вариант 1: перенастроить pfSense

При настройке OpenVPN в pfSense поле «DNS Default Domain» передается клиенту как «поисковый» домен. Если это поле не отмечено или оставлено пустым, OpenVPN передает "dhcp-option DOMAIN openvpn", что приводит к тому, что resolv.conf выглядит следующим образом, что не помогает:

search openvpn
nameserver 10.10.160.45
nameserver 8.8.8.8

Наше решение состояло в том, чтобы установить для «DNS Default Domain» просто точку: «.».

В результате файл resolv.conf будет выглядеть так: который работает!

search .
nameserver 10.10.160.45
nameserver 8.8.8.8

Теперь я могу пинговать с короткими именами хостов.

mac:~  $ ping web2
PING web2 (10.10.160.6) 56(84) bytes of data.
64 bytes from web2 (10.10.160.6): icmp_req=1 ttl=64 time=0.380 ms

Это простое решение, поскольку оно не требует перенастройки каждого клиента.

Вариант 2: перенастройте Mac OS X

Я не пробовал, но может быть возможно перенастроить DNS-преобразователь Apple, чтобы не добавлять поисковые домены, заставляя его действовать, как мне кажется, больше как Ubuntu. Похоже, что что-то изменилось в Lion или Mountain Lion, в результате чего MAC OS X DNS не работает должным образом.

Вариант 3: перенастроить OpenVPN

Кажется pfSense просто передает поле «DNS Default Domain» в OpenVPN., который добавляет его как параметр конфигурации push следующим образом:

dhcp-option DOMAIN company.com

Если DOMAIN не установлен, OpenVPN устанавливает для него значение «openvpn». Это не проблема pfSense.

IMO, было бы хорошо, если бы OpenVPN можно было настроить (или я мог бы узнать, как его настроить), чтобы не устанавливать DOMAIN принудительно. Теоретически это приведет к тому, что поисковый домен останется неустановленным в resolv.conf и позволит использовать короткие имена хостов.