Устранение неполадок TCP/IP: структурированный подход. Часть 4. Использование Netdiag.exe
В последней статье этой серии мы рассмотрели, как восстанавливать сетевые подключения с помощью функции восстановления сетевых подключений Windows. Функция восстановления работает путем выполнения серии тестов, чтобы попытаться восстановить сетевое подключение, вызванное неправильной конфигурацией сети либо на клиенте (проблемы с настройками DHCP или кэшем преобразователя), либо на сервере (регистрация имени на WINS или DNS-сервере). Однако функция восстановления имеет несколько ограничений, а именно:
-
- Результаты процесса восстановления нельзя сохранить для последующего просмотра или создания отчетов.
- На многосетевых компьютерах процесс восстановления необходимо выполнять отдельно для каждого сетевого подключения.
- Количество тестов, выполняемых процессом восстановления, ограничено.
Получите свою копию Windows Server Hacks!
Эти ограничения можно обойти с помощью Netdiag.exe, средства устранения неполадок сетевого подключения, входящего в состав средств поддержки Windows. Netdiag выполняет более обширную серию тестов, чем процесс восстановления, и выполняет намного больше тестов, чем процесс восстановления. Вы также можете перенаправить выходные данные для Netdiag.exe в текстовый файл, чтобы иметь запись о выполненных тестах и их результатах.
Установка Netdiag
Вы можете установить Netdiag, установив средства поддержки Windows, которые можно установить, дважды щелкнув SupportToolsSUPTOOLS.MSI. По умолчанию инструменты поддержки устанавливаются в %SystermDrive%Program FilesSupport Tools, но мне проще установить их в %SystemDrive%Tools, так как инструменты нужно запускать из командной строки, и это делает ввод пути к ним инструменты проще запускать их. В качестве альтернативы, если вы хотите установить только Netdiag, а не другие средства поддержки, вы можете дважды щелкнуть CAB-файл SupportToolsSupport.cab, а затем дважды щелкнуть Netdiag.exe, чтобы установить только это средство.
Понимание Netdiag
Netdiag выполняет серию тестов на каждом сетевом адаптере в локальной системе. После выполнения этих тестов Netdiag выполняет серию глобальных тестов подключения, чтобы выявить и устранить проблемы с подключением, которые могут быть вызваны проблемами за пределами локальной системы.
Сначала Netdiag выполняет следующие тесты сетевых адаптеров локальной системы:
- Ндис
- ipconfig
- Автонет
- DefGw
- NbtNm
- ВЫИГРЫШИ
После выполнения этих тестов Netdiag выполняет следующую серию глобальных тестов подключения:
- Член
- NetBTTransports
- Автонет
- IPLoopBk
- DefGw
- NbtNm
- Уинсок
- DNS
- Браузер
- Дсжетдк
- ДкКуст
- Доверять
- Керберос
- Лдап
- Привязки
- глобальная сеть
- Модем
- IPSec
Подробная информация о каждом из этих тестов представлена в следующей таблице:
Название теста |
Описание |
Автонет |
Проверяет, используется ли APIPA сетевыми адаптерами. |
Привязки |
Перечисляет сетевые привязки, включая имя интерфейса, имена нижних и верхних модулей, указывает, включена ли привязка в данный момент, и сообщает о владельце привязки. |
Браузер |
Список всех сетевых протоколов, привязанных к службе браузера и к перенаправителю. |
DcList |
Получает список контроллеров домена для домена. |
DefGw |
Проверяет подключение к каждому настроенному шлюзу по умолчанию. |
DNS |
Проверяет доступность настроенных DNS-серверов и проверяет регистрацию DNS клиента. |
Дсжетдк |
Получает имя любого контроллера домена из службы каталогов, а затем получает имя эмулятора основного контроллера домена. Проверяет, совпадает ли идентификатор GUID домена, хранящийся в локальном органе безопасности (LSA), с идентификатором GUID домена, хранящимся в контроллере домена. |
ИпКонфиг |
Перечисляет параметры TCP/IP для каждого сетевого адаптера. |
IPLoopBk |
Пингует петлевой адрес 127.0.0.1 для каждого адаптера. |
IPSec |
Проверяет, включен ли IPsec, и если да, то выводит список всех активных политик IPsec для компьютера. |
IPX |
Выводит статистику для IPX (если он установлен). |
Керберос |
Проверяет актуальность пакета проверки подлинности Kerberos. |
Лдап |
Обращается ко всем доступным контроллерам домена и определяет, какой протокол проверки подлинности LDAP используется в настоящее время. |
Член |
Проверяет, чтобы подтвердить сведения об основном домене, включая роль компьютера, доменное имя и GUID домена. Проверяет, запущена ли служба NetLogon, добавляет основной домен в список доменов и запрашивает идентификатор безопасности основного домена (SID). |
Модем |
Предоставляет информацию о конфигурации для каждого модема в системе. |
NbtNm |
Выполняет действия, аналогичные команде nbtstat -n, т. е. проверяет, что имя службы рабочей станции <00> совпадает с именем компьютера, и проверяет, что Messenger = имя службы <03> и имя службы сервера <20> присутствуют на всех интерфейсах и что ни одно из этих имен не конфликтует. |
Ндис |
Перечисляет сведения о конфигурации каждого сетевого адаптера, включая имя адаптера, конфигурацию, носитель, идентификатор GUID и статистику. |
NetBTTransports |
Список всех транспортных протоколов, привязанных к NetBIOS через TCP/IP (NetBT). |
Нетстат |
Список текущих подключений TCP/IP и статистика протокола. |
Сетевое ПО |
Запрашивает у ближайшего сервера Netware (если используется) текущую информацию для входа в систему. |
Маршрут |
Перечисляет все статические маршруты в таблице маршрутизации и указывает, являются ли они постоянными. |
Доверять |
Проверяет доверительные отношения домена и проверяет правильность SID основного домена. |
глобальная сеть |
Обобщает настройки и состояние каждого используемого COM-порта. |
ВЫИГРЫШИ |
Проверяет доступность настроенного WINS-сервера и регистрацию клиентов WINS. |
Уинсок |
Отображает протоколы и порты, доступные для службы WinSock. |
В дополнение к выполнению этих тестов Netdiag.exe также сообщает следующую информацию о системе:
- NetBIOS-имя системы
- DNS-имя системы
- Общая информация о системе
- Установленные исправления
Запуск Netdiag
Самый простой способ запустить Netdiag — без каких-либо параметров, который проверяет каждый локальный сетевой адаптер в системе, а затем выполняет серию глобальных тестов подключения. Пример вывода этой команды на рядовом сервере Windows Server 2003 выглядит следующим образом (список исправлений усечен):
C:инструменты netdiag
………………………………..
Имя компьютера: СРВ
Имя хоста DNS: SRV.contoso.com
Сведения о системе: Microsoft Windows Server 2003 R2 (сборка 3790)
Процессор: x86 Family 15 Model 4 Stepping 1, GenuineIntel
Список установленных исправлений:
KB890046
KB893756
KB896358
…
KB925486
Q147222
Тест запросов сетевой карты.......: Прошло
Результаты интерфейса:
Адаптер: подключение по локальной сети
Тест запросов сетевой карты...: Прошло
Имя хоста.........: СРВ
Айпи адрес........: 172.16.11.31
Маска подсети........: 255.255.255.0
Шлюз по умолчанию......: 172.16.11.1
DNS-серверы........: 172.16.11.32
Результаты автоконфигурации......: Прошло
Проверка шлюза по умолчанию...: Прошло
Проверка имени NetBT......: Прошло
[ПРЕДУПРЕЖДЕНИЕ] Отсутствует по крайней мере одно из названий <00> 'WorkStation Service', <03> 'Messenger Service', <20> 'WINS'.
Тест службы WINS.....: пропущено
Для этого интерфейса не настроены серверы WINS.
Глобальные результаты:
Тест на членство в домене......: Прошло
Тест транспорта NetBT.......: Прошло
Список настроенных в настоящее время транспортов NetBt:
NetBT_Tcpip_{64B5D4FF-0014-4CC2-BB8D-9FB0C67CB75E}
В настоящее время настроен 1 транспорт NetBt.
Проверка адреса автосети.......: Прошло
Пинг-тест IP loopback.......: Прошло
Проверка шлюза по умолчанию.......: Прошло
Проверка имени NetBT..........: Прошло
[ВНИМАНИЕ] У вас нет единого интерфейса с определенными именами <00> 'WorkStation Service', <03> 'Messenger Service', <20> 'WINS'.
Тест Уинсока...........: Прошло
ДНС-тест.............: Прошло
Redir и тест браузера......: Прошло
Список транспортов NetBt, которые в настоящее время привязаны к Redir
NetBT_Tcpip_{64B5D4FF-0014-4CC2-BB8D-9FB0C67CB75E}
Redir привязан к 1 транспорту NetBt.
Список транспортов NetBt, которые в настоящее время привязаны к браузеру
NetBT_Tcpip_{64B5D4FF-0014-4CC2-BB8D-9FB0C67CB75E}
Браузер привязан к 1 транспорту NetBt.
Тест обнаружения DC.........: Прошло
Тест списка DC...........: Прошло
Тест на доверительные отношения......: Прошло
Безопасный канал для домена «CONTOSO» — «\DC-1A.contoso.com».
Кербер тест...........: Прошло
LDAP-тест.............: Прошло
Тест креплений...........: Прошло
Тест конфигурации WAN......: пропущено
Нет активных подключений удаленного доступа.
Диагностика модема......: Прошло
Тест IP-безопасности.........: пропущено
Примечание. Запустите «netsh ipsec dynamic show /?» для получения более подробной информации
Команда выполнена успешно
Обратите внимание, что запуск теста NbtNm дал следующие результаты:
Проверка имени NetBT......: Прошло
[ПРЕДУПРЕЖДЕНИЕ] Отсутствует по крайней мере одно из названий <00> 'WorkStation Service', <03> 'Messenger Service', <20> 'WINS'.
Это предупреждение на самом деле не является проблемой, поскольку по умолчанию служба обмена сообщениями не работает в Windows Server 2003, поэтому для нее не будет зарегистрировано имя <20>.
Существуют и другие способы запуска Netdiag, в частности:
- Netdiag /q запускает тесты в тихом режиме и сообщает только об ошибках.
- Netdiag /v запускает тесты в подробном режиме и предоставляет дополнительные сведения.
- Netdiag /test:test_name(s) запускает стандартные тесты, а затем выполняет только указанные тесты.
- Netdiag /skip:имя_теста(ов) запускает стандартные тесты, за которыми следуют глобальные тесты, за исключением указанных. (Однако нельзя пропустить некоторые тесты, включая Member, Ndis и NetBTTransports.)
- Netdiag /fix выполняет все стандартные и глобальные тесты и пытается исправить все обнаруженные проблемы.
Например, запуск теста Netdiag /q в приведенной выше системе дает следующие результаты:
C: ools netdiag/q
………………………………..
Имя компьютера: СРВ
Имя хоста DNS: SRV.contoso.com
Сведения о системе: Microsoft Windows Server 2003 R2 (сборка 3790)
Процессор: x86 Family 15 Model 4 Stepping 1, GenuineIntel
Список установленных исправлений:
KB890046
KB893756
KB896358
…
KB925486
Q147222
Результаты интерфейса:
Адаптер: подключение по локальной сети
Имя хоста.........: СРВ
Айпи адрес........: 172.16.11.31
Маска подсети........: 255.255.255.0
Шлюз по умолчанию......: 172.16.11.1
DNS-серверы........: 172.16.11.32
Тест службы WINS.....: пропущено
Глобальные результаты:
[ПРЕДУПРЕЖДЕНИЕ] У вас нет единого интерфейса с определенными именами <00> 'WorkStation Service', <03> 'Messenger Service', <20> 'WINS'.
Тест IP-безопасности.........: пропущено
Команда выполнена успешно
Дополнительные примеры Netdiag
Лучший способ научиться интерпретировать выходные данные Netdiag — попробовать запустить его в различных тестовых сценариях. Ниже приведены несколько примеров различных сценариев и результатов, которые вы можете получить с помощью этого инструмента. Эти сценарии выполняются путем запуска Netdiag на рядовом сервере в домене Windows Server 2003, и выходные данные были усечены, чтобы выделить только сообщения об ошибках, о которых сообщает средство.
1. Результат запуска netdiag /q, когда контроллер домена находится в автономном режиме:
Глобальные результаты:
[ПРЕДУПРЕЖДЕНИЕ] У вас нет единого интерфейса с определенными именами <00> 'WorkStation Service', <03> 'Messenger Service', <20> 'WINS'.
Redir и тест браузера......: Не удалось
[FATAL] Невозможно отправить сообщение почтового ящика в '\CONTOSO*MAILSLOTNETNETLOGON' через redir. [ОШИБКА_BAD_NETPATH]
Тест обнаружения DC.........: Не удалось
[FATAL] Не удается найти контроллер домена в домене «CONTOSO». [ОШИБКА_NO_SUCH_DOMAIN]
Тест списка DC...........: Не удалось
«CONTOSO»: не удается найти контроллер домена, чтобы получить список контроллеров домена из [тест пропущен].
Тест на доверительные отношения......: Не удалось
[FATAL] Безопасный канал для домена CONTOSO нарушен. [RPC_S_SERVER_UNAVAILABLE]
Тест Керберос...........: пропущено
«CONTOSO»: не удается найти контроллер домена, чтобы получить список контроллеров домена из [тест пропущен].
LDAP-тест.............: Не удалось
Не удается найти контроллер домена для запуска тестов LDAP. Произошла ошибка: указанный домен либо не существует, либо с ним невозможно связаться.
[ПРЕДУПРЕЖДЕНИЕ] Не удается найти контроллер домена в домене «CONTOSO». [ОШИБКА_NO_SUCH_DOMAIN]
2. Результат запуска netdiag /q, когда в системе настроен неправильный шлюз по умолчанию:
Проверка шлюза по умолчанию.......: Не удалось
[FATAL] ШЛЮЗЫ НЕДОСТУПНЫ.
У вас нет подключения к другим сегментам сети.
Если вы настроили IP-протокол вручную, то
вам нужно добавить хотя бы один действительный шлюз.
[ПРЕДУПРЕЖДЕНИЕ] У вас нет единого интерфейса с определенными именами <00> 'WorkStation Service', <03> 'Messenger Service', <20> 'WINS'.
Тест списка DC...........: Не удалось
Не удалось перечислить контроллеры домена с помощью браузера. [ОШИБКА_REQ_NOT_ACCEP]
3. Результат запуска netdiag /q, когда служба Computer Browser не запущена в системе:
Глобальные результаты:
[ПРЕДУПРЕЖДЕНИЕ] У вас нет единого интерфейса с определенными именами <00> 'WorkStation Service', <03> 'Messenger Service', <20> 'WINS'.
Тест списка DC...........: Не удалось
Не удалось перечислить контроллеры домена с помощью браузера. [NERR_ServiceNotInstalled]
4. Результат запуска netdiag /q, когда учетная запись компьютера для системы отключена в Active Directory при запуске системы:
Глобальные результаты:
[ВНИМАНИЕ] У вас нет единого интерфейса с <00> 'WorkStation Servi
ce", <03> "Messenger Service", <20> "WINS" определены имена.
Тест на доверительные отношения......: Не удалось
Не удается проверить безопасный канал для домена «CONTOSO» на DC «DC-1A». [ОШИБКА_NO_LOG
ON_SERVERS]
Тест Керберос...........: Не удалось
[FATAL] Не удается получить кеш билетов от Kerberos.
Произошла ошибка: (null)
Вывод
Netdiag.exe — это мощный инструмент для устранения проблем с сетевым подключением в сетях Windows. Читателям этой статьи предлагается попытаться придумать дополнительные сценарии, аналогичные приведенным выше примерам, чтобы получить больше опыта в понимании возможностей этого инструмента и способов его использования.