10 секунд затримка для .local TLD у Mac OS X Lion


13

Наша мережа компанії використовується xxx.companyname.localдля всіх серверів нашої локальної мережі. Щоразу, коли я отримую доступ до одного з цих серверів на своєму Mac, у мене затримка на 10 секунд. Я з'ясував, що ця затримка викликана пошуками DNS, оскільки, очевидно, Лев вирішує .local домени у такому порядку:

  1. перевірити /etc/hostsIPv6-адресу
  2. перевірити DNS-сервер на наявність запису AAAA (IPv6-адреса)
  3. перевірити через MDNS (Bonjour) на запис AAAA
  4. перевірити /etc/hostsадресу IPv4
  5. перевірити DNS-сервер на запис A (IPv4-адреса)
  6. перевірити MDNS на запис

Тепер проблема полягає в тому, що у нас немає мережі IPv6. Усі xxx.companyname.localсервери в нашій мережі мають лише адреси IPv4, а сервер DNS має лише записи A. Це означає, що адресу вирішено на кроці 5. Проблема в цьому полягає в тому, що крок 3 займає десять секунд, перш ніж він закінчиться! Кожен раз, коли я підключаюсь до нашого wiki, SVN-сервера, сервера Kerberos тощо, відбувається затримка на 10 секунд.

Мені вдалося обманути Лева, додавши такі рядки, як нижче /etc/hosts

::FFFF:10.99.99.99 xxx.companyname.local

Якщо я це зробив, Лев вважає, що для домену є IPv6-адреса і зупиняється після кроку 1. Однак це рішення повністю обходить усі корисні функції DNS. Я не хочу вручну відстежувати IP-адреси десятків внутрішніх доменів! Я також міг перестати використовувати імена хостів і просто ввести IP-адреси!

Отже: Хтось має ідею, як змінити цей порядок пошуку? Або відключити пошук IPv6, оскільки у нас все одно немає мережі IPv6?


Дякую за запитання - я відзначаю це як посилання на роздільну здатність Mac DNS;)
Алекс

Вам буде набагато краще, намагаючись визначити, чому вашим серверам DNS потрібно 10 секунд, щоб надіслати порожню відповідь на AAAAзапис для записів, коли вони (відповідно до того, що ви говорите) не беруться ніде поруч, щоб відповісти на Aзапити самих ті ж доменні імена. Здається, ви перебуваєте на класичній території RFC 4074, де проблема полягає в тому, що сервери зламані . Зауважте також, що ви потрапили на одну з декількох відомих і довго обговорюваних причин не використовувати local.для служби DNS з розділеним горизонтом. Це теж краще виправити.
JdeBP

1
DNS-сервери на другому кроці миттєво повертають порожній запис AAAA. Проблема - крок 3 - запит MDNS / Bonjour / Zeroconf. Лев чекає 10 секунд після трансляції, перш ніж вийти з тайму. Після трохи погуглившись, я добре розумію, що використання local.- це погана ідея, але ІТ-відділ сказав мені, що вони вважають, що користуватися local.companyname.ідеально, і я нічого не можу з цим зробити.
Якоб Еггер

Люди, які знаходяться у вашому відділі ІТ, значно недооцінені. Це, як відомо, було майже не "чудово" в колах мережевого адміністрування протягом майже пів десятиліття. Ви можете… заохочувати… знань про мережу людей вашого ІТ-відділу, щоб вони були внесені до 21 століття. Ви могли б ... нагадати їм, що їхня робота - не влаштовувати справи, щоб корпоративні комп’ютери не працювали належним чином. ☺
JdeBP

@JdeBP І все ж, Apple вирішила, що було б корисно використовувати його ... Ви зауважите, що Microsoft також використовує його і рекомендує його як найкращу практику. Отже ... Хто каже, що це не так ?
Основні

Відповіді:


8

Зупиніть ваш ІТ-відділ від зловживань 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/COMPANYNAME.local файл search_order 1в ньому , що відображає поточний IP - адреса (а) вашого проксі DNS сервера (ів). Це не буде добре працювати з призначеними DHCP IP-адресами сервера DNS, які змінюються, хоча, як каже Apple.

На захватній руці…

... це просто прогресивно складніші боді, щоб пристосувати неправильність. Цитуючи Марка Крохмала з Apple, "завжди буде якась проблема", коли люди зловживають local.так, як це робить ваша компанія. Відомо, що це неправильно з часів 2002 року (швидкий пошук мені підказує), якщо не раніше. Просто не робіть цього .

Подальше читання


2
Жодна з цих відомостей не стосується моїх проблем з роздільною здатністю DNS у Lion (Mac OS X 10.7). Крім того, /etc/resolver/companyname.localсхоже, що Лев ігнорується.
Якоб Еггер

0

Я не знаю, що Mac не може дуже допомогти, але я прийшов із розумною ідеєю вирішення проблеми: якщо ви встановите десь в Інтернеті, "somedomain.com DNAME companyname.local"- це схопить DNAME на кроці 2. Тепер я не впевнений, що буде далі, чи все-таки він повернеться до bonjour, або оскільки він вже знаходиться в середині деякого процесу DNS, можливо, він буде дотримуватися DNS.


Я можу взяти участь у створенні DNAME для вас, якщо хочете :)
Alex
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.