Кажется, у меня постоянно возникают проблемы с разрешением узлов в моей сети из систем OS X. У меня есть домен (назовем его mydomain.com) с поддоменом lab.mydomain.com и хостом, на который я хочу попасть, по адресу host.lab.mydomain.com.
DNS-записи моего Mac включают в себя:
- mydomain.com
- lab.mydomain.com
- lab.otherdomain.com
- othersubdomain.otherdomain.com
Я могу в полной мере разрешить полный «host.lab.mydomain.com», и когда у меня есть «lab.mydomain.com» в списке, я могу использовать только «host», так как он разрешается в «lab.mydomain.com». суффикс Но я не могу разрешить (в некоторых случаях - читать дальше) "host.lab".
Самое странное, что этот сбой происходит только с определенными командами (а именно с SSH и копанием). Использование nslookup работает нормально и правильно разрешает имя хоста. Однако использовать SSH или копать не удается. Я обычно, но не всегда, могу разрешить "host.lab" через Chrome.
Я запустил фильтрацию tcpdump на порту 53, чтобы попытаться самостоятельно диагностировать это, и результаты оказались интересными: после запуска «dscacheutil -flushcache; killall -HUP mDNSResponder» и попытки разрешить его с помощью различных команд я обнаружил, что "nslookup", конечно, выполнял правильный поиск на моем настроенном DNS-сервере, используя каждый суффикс по порядку, который обнаружил хост в коротком порядке. Однако ssh и dig, похоже, рассматривают «host.lab» как домен верхнего уровня и сразу переходят к root-servers.net, чтобы попытаться определить "host" как доменное имя в домене «.lab» - без когда-либо касаясь моего настроенного сервера DNS!
В чем дело? Почему эти определенные схемы разрешения имен на моем Mac закорачивают и рассматривают .lab как домен верхнего уровня вместо соблюдения моих суффиксов поиска DNS? Конечно, я могу обойти это, выбив полное доменное имя, но это действительно очень раздражает.