10 секундная задержка для.local TLD в Mac OS X Lion
Сеть нашей компании использует xxx.companyname.local
для всех серверов в нашей локальной сети. Всякий раз, когда я получаю доступ к одному из этих серверов на моем Mac, у меня задерживается 10 секунд. Я обнаружил, что эта задержка вызвана поиском DNS, потому что, по-видимому, Lion разрешает домены.local в следующем порядке:
- проверять
/etc/hosts
для адреса IPv6 - проверьте DNS-сервер для записи AAAA (адрес IPv6)
- проверка через MDNS (Bonjour) для записи AAAA
- проверять
/etc/hosts
для адреса IPv4 - проверить DNS-сервер для записи A (адрес IPv4)
- проверить MDNS для записи
Теперь проблема в том, что у нас нет сети IPv6. Все xxx.companyname.local
серверы в нашей сети имеют только IPv4-адреса, а DNS-сервер имеет только A-записи. Это означает, что адрес разрешен в шаге 5. Проблема в том, что шаг 3 занимает десять секунд, прежде чем истечет время ожидания! Каждый раз, когда я подключаюсь к нашей вики, серверу SVN, серверу Kerberos и т. Д., Задержка составляет 10 секунд.
Мне удалось обмануть Льва, добавив такие строки, как /etc/hosts
::FFFF:10.99.99.99 xxx.companyname.local
Если я сделаю это, Lion подумает, что для домена существует IPv6-адрес, и остановится после шага 1. Однако этот обходной путь полностью обходит все полезные функции DNS. Я не хочу вручную отслеживать IP-адреса десятков внутренних доменов! Я мог бы также прекратить использовать имена хостов и просто вводить IP-адреса!
Итак: у кого-нибудь есть идея, как изменить этот порядок поиска? Или отключить поиск IPv6, так как у нас нет сети IPv6?
2 ответа
Остановите ваш ИТ-отдел от злоупотреблений local.
,
Как уже говорилось, злоупотребление доменным именем, которое не принадлежит вашей компании и, следовательно, не должно предполагать, что оно может создавать корпоративные субдомены, является неправильным и составляет половину проблемы здесь. Если компьютеры компании включают в себя Macintoshes (или что-то еще, что использует DNSSD в этом отношении), то, безусловно, не предполагайте, что local.
Вы можете свободно возиться с таким способом.
Обновите свой Macintosh.
MacOS 10.4 действительно будет относиться xxx.companyname.local.
как вы описываете. Но это изменилось в более поздних версиях операционной системы. MacOS 10.5 передает только имена с двумя метками в Multicast DNS. Имена с тремя метками, такие как xxx.companyname.local.
не обрабатываются MDNS. MacOS 10.6 идет дальше и пытается определить, был ли DNS-сервер неправильно настроен на local.
зона и действовать соответственно.
Как минимум вы должны настроить свой Macintosh, чтобы иметь /etc/resolver/
название компании.local
файл с search_order 1
в нем перечислены текущие IP-адреса вашего прокси-сервера DNS. Это не будет хорошо работать с IP-адресами DNS-сервера, назначенными DHCP, которые меняются, как говорит Apple.
Сжимая руку...
... это просто постепенно усложняющиеся тела, чтобы приспособиться к ошибочности. По словам Марка Крочмаля из Apple, "всегда будет какая-то проблема", когда люди злоупотребляют local.
в том, что делает ваша компания. Известно, что с неправильной головой (быстрый поиск подсказывает мне) 2002, если не раньше. Просто не делай этого.
дальнейшее чтение
- dlove (2002-12-02). Проблемы с доменом.local и DNS. Macworld.
- Apple Corporation (2010). Mac OS X v10.4, 10.5, 10.6: как искать ".local" имена хостов через Bonjour и стандартный DNS.
- Стивен Хоффман (2010). Советы по DNS: Смешивание одноадресной и многоадресной DNS с.local. HoffmanLabs.
- Apple Corporation (2008). Mac OS X 10.3: как искать ".local" имена хостов через Bonjour и стандартный DNS.
Я не знаю Mac, поэтому не могу помочь, но я пришел с умной обходной идеей: если вы устанавливаете где-то в Интернете, "somedomain.com DNAME companyname.local"
- он поймает DNAME на шаге 2. Теперь я не уверен, что будет дальше, все равно будет ли это возвращаться к Bonjour, или, поскольку он уже находится в середине какого-то процесса DNS, возможно, он будет придерживаться DNS.