Я запускаю сервер LDAP в своей домашней сети для хранения учетных записей, записей автоматического монтирования и т.д. Я потратил много времени на то, чтобы правильно настроить сервер LDAP для клиентов OS X, и, похоже, все работает, кроме случаев, когда я подключаюсь к VPN своего работодателя с помощью Cisco VPN Client на OS X 10.5.
До сих пор я проследил проблему до того факта, что служба каталогов OS X выполняет обратный поиск DNS (PTR) для сервера LDAP, и кажется, что Cisco VPN Client перехватывает эти запросы DNS. Чтобы понять это, я включил отладку в службе каталогов, и в журнале отладки появляется следующее:
2010-02-11 18:02:02 EST - T[0xB031C000] - CLDAPConnectionManager::CheckFailed - checking 1 node connections
2010-02-11 18:02:02 EST - T[0xB031C000] - CLDAPNodeConfig::CheckWithSelect - good socket to host 192.168.1.11 but failed check, clearing from poll
Продолжая изучать tcpdump, я обнаружил, что могу выполнять поиск DNS по имени хоста сервера каталогов, но обратный поиск вообще не попадает на DNS-сервер моей локальной сети. Вместо этого VPN-клиент, кажется, ест их и ссылается на prisoner.iana.org
.
Теперь я знаю, что именно так обычно и должно работать, когда вы запрашиваете у интернет-DNS-сервера адрес частной сети в адресном пространстве RFC 1918. Однако предполагается, что запрос направляется на DNS-сервер моей локальной сети (просто dnsmasq, работающий на Linksys WRT54G.) И когда VPN-клиент не работает, эти запросы возвращаются нормально, и OS X может подключиться к моему серверу LDAP, и я счастлив. Но как только я запускаю Cisco VPN Client, кажется, что он перехватывает эти запросы, что блокирует доступ к моему LDAP, что означает, что мои ресурсы автоматического монтирования не появляются, что очень раздражает.
Итак, кто-нибудь знает, почему VPN-клиент делает что-то подобное, и может ли кто-нибудь придумать какие-нибудь обходные пути?