В Windows Server 2003, когда я выполняю netstat без флагов, он берет намного дольше, чем netstat-n для возврата результатов. Я понимаю, что это вызвано тем, что это должно выполнить обратные поиски IP-адресом для получения соответствующего имени хоста.
Существуют некоторые строки в результатах, что netstat, кажется, икает на и занимает больше времени чем обычно. Насколько я могу сказать, это все адреса, где нет никакого IP к имени хоста, отображающемуся в наших локальных серверах DNS.Ничего страшного. nslookup и nblookup оба сбоя для нахождения имен хостов для рассматриваемого дюйм/с также, соглашаясь, что это было бы частью замедления, связанного с этими записями.
Однако в результатах netstat, эти записи показывают корректное имя хоста. Как это возможно? То, как netstat в состоянии различить имя хоста для соединений без обратного DNS или инвертировать WINS (является там такой вещью), записи?
Я попытался сбросить локальный кэш DNS и все еще получаю те же результаты.Править: Существуют вперед записи DNS для рассматриваемых имен хостов. Действительно ли возможно, что базовое соединение так или иначе может "держаться" к настоящему имени, используемому для создания соединений?
Видимо, nblookup не работает с обратным IP -> поиском имен хостов. Я начал перехватывать пакеты с помощью MS Network Monitor, чтобы посмотреть, как netstat разрешает имя, и узнал кое-что новое. Очевидно, что он вернется к просмотру NetBIOS в случае сбоя DNS.
Еще одна важная вещь, на которую следует обратить внимание, это то, что я столкнулся с проблемой при диагностике, потому что моя локальная машина - это Windows 7. Другой метод, используемый Windows 7, называется LLMNR. Поэтому если DNS дает сбой, он попытается выполнить LLMNR поиск. LLMNR недоступна в Windows Server 2003.
Порядок разрешения:
Вот фантастическое видео на youtube с различными методами разрешения: https://www.youtube.com/watch?v=gzqjeds8gDg и есть отличная статья MSDN TechNet о разрешении имен, поиск "Link-Local Multicast Name Resolution: Кабельный парень"
.