Методы решения проблем проектирования и диагностики локальных вычислительных сетей. Рассмотрим процесс создания схемы локальной сети с помощью этой программы. LANState поддерживает сканирование SNMP-устройств и может рисовать схему сети автоматически с со

NDF (Network Diagnostics Framework) позволяет пользователям диагностировать и устранять неполадки, предоставляя диагностические оценки и информацию о последовательности операций, которая позволит устранить проблему. NDF упрощает и автоматизирует многие из стандартных операций по устранению неполадок и реализации решений для устранения проблем сети.

Теперь Microsoft поставляет NDF в составе Windows 7 наряду с другими новшествами, такими как доступ к утилите устранения неполадок из области уведомлений, апплет «Устранение неполадок компьютера» (Troubleshooting) в панели управления и трассировка сети средствами Event Tracing for Windows (ETW). Все они облегчают просмотр и сбор информации, необходимой для исследования неполадок сети, требующих исправления — автоматически или за счет вмешательства пользователя.

Устранение неполадок с использованием значка сети в области уведомлений

Утилиту устранения неполадок легко запустить, щелкнув правой кнопкой значок сети в области уведомлений рабочего стола Windows 7 и выбрав команду «Диагностика неполадок» (Troubleshoot problems). Откроется окно утилиты «Диагностика сетей Windows» (Windows Network Diagnostics) и запустится диагностика сети.

Поиск неполадок из Панели управления

В Windows 7 не нужно ждать, пока произойдет сбой сети, чтобы выполнить встроенную диагностику. Открыть сеанс поиска неполадок можно в любой момент, открыв служебную программу «Устранение неполадок компьютера» (Troubleshooting) на Панели управления, рис. 1. В данном случае служебная программа обнаружила, что у компьютера нет подключения к Интернету. Об этом говорит сообщение в верхней части страницы, при этом предлагается попытаться подключиться повторно.

Рис. 1 Открытие апплета устранения неполадок компьютера в панели управления.

Если щелкнуть «Сеть и Интернет» (Network and Internet), откроется диалоговое окно, показанное на рис. 2. Там можно выбрать один из семи вариантов исследования сетевых подключений, в том числе устранить неполадки подключения к Интернету, доступа к файлам и папкам на других компьютерах и печати.


Рис. 2 Поиск неполадок сети и подключения к Интернету.

При выборе любого из этих семи вариантов открывается мастер, помогающий выполнить диагностику неполадки и, если возможно, устранить ее автоматически или вручную. Средство диагностики также ведет запись в журнал трассировки событий (Event Tracing Log, ETL). Если неполадку не удается устранить, можно исследовать журнал самостоятельно или переслать его более сведущим людям. Для этого щелкните в диалогом окне поиска неполадок «Просмотр журнала» (View History). На рис.3 показан пример журнала ETL.


Рис. 3 Пример журнала ETL.

Каждая запись в журнале представляет отдельный сеанс поиска неполадок. Двойной щелчок сеанса открывает его журнал (рис. рис.4.


Рис. 4 Пример журнала устранения неполадок.

Чтобы просмотреть детали процедуры поиска неполадок обнаружения, щелкните ссылку «Обнаружение проблемы» (Detection details) - откроется окно, похожее на показанное на рис. 5.


Рис. 5 Типичное окно с подробностями поиска неполадок.

В верхней части диалогового окна отображается имя ETL-файла, в котором хранится информация о сеансе поиска неполадок. Если надо оправить копию в отдел поддержки или в Microsoft для анализа, вы можете сохранить файл, щелкнув его имя, после чего откроется окно загрузки файла.

Просматривать и анализировать ETL-файлы можно средствами Сетевого монитора версии 3.3. Также для этой цели можно задействовать средство «Просмотр событий» и Tracerpt.exe. Можно преобразовать файл в XML или текстовый формат командой netsh trace convert. Подробные результаты сеанса поиска неполадок можно получить в виде CAB-файла, для чего нужно щелкнуть правой кнопкой сеанс в окне «Журнал устранения неполадок» (Troubleshooting History) и выбрать Сохранить как (Save As). Как и ETL-файлы, CAB-файл можно отправить в отдел поддержки для анализа.

Трассировка сети средствами Netsh.exe

Windows 7 включает новый контекст утилиты Netsh.exe - netsh trace, служащий для трассировки сети. Команды в этом контексте позволяют выборочно включать трассировку провайдеров или сценариев. Провайдер - это отдельный компонент в стеке сетевых протокол, такой как Winsock, TCP/IP, службы беспроводной локальной сети или NDIS. Сценарий трассировки - это набор провайдеров, реализующих одну функциональность, например совместный доступ к файлам или беспроводную локальную сеть. Чтобы избавиться от несущественных подробностей и уменьшить размер ETL-файла, можно применять фильтры.

Как правило, для выполнения детального анализа неполадок сети нужно предоставлять сотрудникам отдела поддержки или службе поддержки клиентов Microsoft как информацию о трассировки компонента, так и запись сетевого трафика во время проявления неполадки. До Windows 7 для получения этих данных приходилось выполнять две различных процедуры: использовать команды Netsh.exe для включения и отключения трассировке и задействовать сетевой анализатор, такой как Сетевой монитор, для записи сетевого трафика. После этого предстояло решить нелегкую задачу синхронизации информации из этих двух источников, чтобы определить, как сетевой трафик соотносится с событиями в журналах трассировки.

В Windows 7 при выполнении трассировки сети в контексте netsh trace ETL-файлы могут последовательно содержать информацию и сетевого трафика, и трассировки компонента. Полученные ETL-файлы можно изучать средствами Сетевого монитора версии 3.3, который предоставляет намного более эффективный интерфейс анализа и исследования сетевых неполадок (рис. На рис. 6 показан пример файла ETL, который просматривается в Network Monitor 3.3.


Рис. 6 Использование сетевого монитора версии 3.3 для просмотра сетевого трафика, сохраненного в ETL-файле.

Эта новая возможность позволяет не требовать от конечных пользователей или сотрудников отдела поддержки для записи сетевого трафика устанавливать и использовать Сетевой монитор на компьютере, где наблюдаются неполадки. Имейте в виду, что по умолчанию ETL-файлы, созданные в сеансах диагностики неполадок апплета «Устранение неполадок компьютера» (Troubleshooting) не содержат данных сетевого трафика.

Для последовательной регистрации данных трассировки и сетевого трафика многих компонентов сетевого стека (таких как Winsock, DNS, TCP, NDIS, WFP и т. п.) в Windows используется корреляция на основе идентификатора транзакции, которая называется группировкой и используется для сбора и записи трассировки и трафика в ETL-файле. Группировка в ETL-файлах позволяет исследовать всю транзакцию как единую последовательность взаимосвязанных событий.

Подробнее о командах Netsh.exe для трассировки см. врезку «Запуск и остановка трассировки в Netsh.exe».

При использовании Netsh.exe в Windows 7 могут создаваться два файла. ETL-файл содержит события трассировки компонентов Windows и, если требуется, сетевого трафика. По умолчанию ETL-файл называется Nettrace.etl и размещается в папке %TEMP%\\NetTraces. Можно задать другое имя и место, задав параметр tracefile=. Необязательный CAB-файл может содержать файлы нескольких типов, в том числе текстовые файлы, файлы реестра Windows, XML и другие - они содержат дополнительную информацию для поиска неполадок. CAB-файл также включает копию ETL-файла. По умолчанию CAB-файл называется Nettrace.cab и размещается в папке %TEMP%\NetTraces.

Трассировку средствами Netsh.exe можно совмещать с диагностированием с помощью апплета «Устранение неполадок компьютера» панели управления. Сначала выполните соответствующую команду Netsh.exe, чтобы запустить трассировку сценария, например: netsh trace scenario=internetclient report=yes. В апплете «Устранение неполадок компьютера» запустите сеанс устранения неполадок подключения к Интернету. По завершении сеанса выполните команду netsh trace stop. Теперь при просмотре журнала сеанса устранения неполадок будет доступен CAB-файл.
Боковая панель: Запуск и остановка трассировки в Netsh.exe

Чтобы запустить трассировку сети в Netsh.exe, прежде всего надо открыть окно командной строки с дополнительными правами. Чтобы получить список провайдеров трассировки, выполните команду netsh trace show providers. Получить список сценариев, можно командой netsh trace show scenarios. Чтобы получить список провайдеров в сценарии, выполните netsh trace show scenario ScenarioName.

Можно запустить трассировку одного или нескольких провайдеров или сценариев. Например, трассировка сценария InternetClient запускается командой netsh trace start scenario=internetclient. Чтобы запустить трассировку нескольких сценариев, надо последовательно их задать:netsh trace start scenario=FileSharing scenario=DirectAccess.

Чтобы создать CAB-файл с форматированным отчетом, добавьте параметр report=yes. Для задания имени и местоположения ETL- и CAB-файлов служит параметр tracefile=parameter. Если в ETL файле нужно записать еще и сетевой трафик, добавьте параметр capture=yes.

Вот пример команды, которая запустит трассировку сценария WLAN, создаст CAB-файл с форматированным отчетом, запишет сетевой трафик и сохранит файлы под именем WLANTest в папке C:\\Tshoot: netsh trace start scenario=WLAN capture=yes report=yes tracefile=c:\tshoot\WLANtest.etl.

Чтобы остановить трассировку, используйте команду netsh trace stop command.

Боковая панель: Использование сетевого монитора версии 3.3 для просмотра ETL-файлов

Чтобы Сетевой монитор версии 3.3 смог полностью отображать ETL-файлы, сгенерированные в Windows 7, нужно сконфигурировать полные анализаторы Windows. По умолчанию Сетевой монитор версии 3.3 использует стандартные анализаторы Windows. Чтобы конфигурировать полные анализаторы Windows, выберите Tools/Options/Parsers. В списке анализаторов выберите Windows/Stubs, чтобы отключить стандартные анализаторы и включить полные анализаторы, далее щелкните OK.

Джозеф Дейвис (Joseph Davies) - ведущий технический писатель в группе команды технических писателей по теме сетей Windows в Microsoft. Он является автором и соавтором нескольких книг, опубликованных в издательстве Microsoft Press, в числе которых «Windows Server 2008 Networking and Network Access Protection (NAP)», «Understanding IPv6, Second Edition» и «Windows Server 2008 TCP/IP Protocols and Services».

Данная статья специально для тех, кто понимает, что такое IP-адрес, DNS и основной шлюз сети, а также знаком с терминами провайдер, сетевая карта и т.д. Обзор этих терминов, возможно, будет опубликован отдельно.

Поскольку статья написана для большой аудитории от простого пользователя Windows до начинающего администратора UNIX или пользователя MacOS, я решил выделить 2 части. В первой части статьи я расскажу о методах обнаружения и устранения сетевых ошибок средствами операционной системы Windows, во второй части – средствами UNIX-подобных ОС, таких, как Linux, FreeBSD, MacOS. И так, у Вас не работает Интернет, в отличии от Ваших коллег, соседей, жены, которые работают через один и тот же роутер/сервер и т.д. Что делать?

Диагностика и устранение ошибок сети штатными средствами ОС Windows

Для начала нам потребуется рабочий инструмент. Повторюсь, никаких сторонних программ устанавливать мы не будем, используем только то, что есть в составе ОС. Итак, запускаем Командную строку. Для тех, кто не знает, это черное окошко с белыми буковками. Находится она в меню Пуск->Все программы->Стандартные-> Командная строка. Быстро вызвать ее также можно через поиск в Windows7/Windows8 по фразе cmd или Пуск->Выполнить->cmd в WindowsXP.

Мигающий курсор говорит нам о том, что программа готова к вводу команд. Все эти команды мы будем вбивать не обращая внимания на то, что написано до этого курсора.

Шаг 1: проверяем состояние оборудования, наличия подключения(кабеля)

За все это отвечает команда ipconfig. Набираем ipconfig /all и нажимаем Enter. Таким же образом мы будем набирать и остальные команды. Обращаю внимание, что сама команда ipconfig запускается с параметром all, который обязательно отделяется пробелом и знаком косой черты /. Отреагировав на команду ipconfig, система нам вывела несколько экранов информации, в которые нам предстоит вникнуть, чтобы правильно диагностировать и устранить проблему сети.

Как видно на скриншоте, для каждого сетевого адаптера система вернула настройки. Если у Вас выведена только фраза Настройка протокола IP для Windows , значит в системе вообще не обнаружены сетевые адаптеры: здесь возможны варианты выхода из строя оборудования, отсутствия драйверов или аппаратное выключение, например кнопка на ноутбуке, которая выключает беспроводные сети.

Поскольку у меня ноутбук, были обнаружено несколько доступных сетевых адаптеров. Особо я выделю

Если у Вас, как, например, в моем случае, применимо к выделенной проводной сети в строке Состояние среды значится фраза Среда передачи недоступна значит налицо неподключенный или испорченный кабель/розетка/порт коммутатора и т.п. В случае наличия физического подключения, как например у меня в Wi-Fi сети, будут выведены основные настройки (мы рассмотрим только некоторые из них):

  • Описание : здесь, как правило, указывается сетевой адаптер, определенный системой (виртуальные адаптеры, типа Microsoft Virtual и т.п. не имеет смысла рассматривать вообще, нам нужны только физические);
  • DHCP включен : важный параметр, который указывает, как был получен адрес: автоматически через DHCP(будет значение Да ) или установлен вручную(будет значение Нет );
  • IPv4-адрес : IP-адрес в TCP/IP сети – один из трех самых важных параметров, который понадобится нам в дальнейшем;
  • Маска подсети : Еще один важный параметр;
  • Основной шлюз : 3-й важный параметр – адрес маршрутизатора/шлюза провайдера, как правило совпадает с DHCP-сервером, если настройки получены автоматически;
  • DNS-серверы : адреса серверов, которые преобразуют имена хостов в IP-адреса.

Шаг2: проверяем правильность IP-адреса

В случае, если у Вас настройки получаются автоматически (опция DHCP включен - Да), но не заполнен параметр Основной шлюз и DNS-серверы , служба DHCP не работает на роутере или сервере. В этом случае нужно убедиться, что роутер включен (возможно попробовать его перезагрузить), в случае сервера, что служба DHCP работает и назначает адреса.

После перезагрузки роутера, необходимо, обновить настройки. Для этого можно перезагрузить компьютер или просто выполнить 2 команды:

  • ipconfig /release – для сброса всех автоматических настроек
  • ipconfig /renew – чтобы получить автоматические настройки

В результате обеих команд мы получим вывод, аналогичный выводу команде ipconfig /all. Наша задача добиться того, чтобы были заполнены IPv4-адрес, Маска подсети, Основной шлюз, DNS-серверы. Если настройки назначаются вручную – проверяем, чтобы были заполнены IPv4-адрес, Маска подсети, Основной шлюз, DNS-серверы. В случае домашнего интернета эти настройки могут быть указаны в договоре с провайдером.

Шаг 3: проверяем доступность своего оборудования и оборудования провайдера

После того, как все настройки получены, необходимо проверить работоспособность оборудования. К слову сказать, вся сеть представляет собой цепочку шлюзов. Первый из них и есть тот Основной шлюз , который выдала нам команда ipconfig, следующий – шлюз, являющийся основным для провайдера и так далее до достижения нужного узла в сети Интернет.

И так, для проверки сетевых устройств в Windows служит команда ping и для того, чтобы правильно диагностировать проблему в работе сети необходимо выполнить пинг для следующих адресов в последовательности:

  1. Свой компьютер (IPv4-адрес). Наличие отклика свидетельствует о работоспособности сетевой карты;
  2. Роутер или сервер, выполняющий роль Интернет-шлюза (Основной шлюз). Наличие отклика свидетельствует о правильной настройки компьютера для работы в локальной сети и доступности шлюза, отсутствие отклика свидетельствует либо о неверных настройках, либо о неработающем роутере/сервере.
  3. Ваш IP у провайдера (обычно указан в договоре с провайдером – настройки, IP-адрес). Наличие отклика свидетельствует о правильной настройки Вашего компьютера, роутера/сервера, отсутствие отклика – либо о неверной настройки роутера, либо о недоступном шлюзе провайдера/ неполадках на стороне провайдера.
  4. DNS (DNS-серверы). Наличие отклика свидетельствует о корректной работе сетевого протокола – если в этом случае не работает Интернет, скорее всего дело в самой операционной системе, вирусном заражении, программных блокировках, как со стороны провайдера, так и самого компьютера/шлюза.
  5. IP-адрес любого рабочего хоста в сети, например я использую DNS-сервер Google – 8.8.8.8. Отклик свидетельствует о правильной работе сетевого оборудования как с Вашей стороны, так и со стороны провайдера. Отсутствие отклика свидетельствует об ошибках, которые дополнительно диагностируются трассировкой.
  6. URL любого сайта, например yandex.ru. Отсутствие отклика может свидетельствовать о неработающей службе распознавания адресов, если не удалось преобразовать url в IP-адрес. Это проблема скорее всего службы DNS-клиент, которая отключена в Windows на Вашем ПК, либо работает не правильно.

Для рассматриваемого примера будут выполнены следующие команды.

При положительном тесте будет выведено количество отправленных и полученных пакетов, а также время прохождения пакета до узла сети.

Характерные ошибки выглядят подобным образом.

Шаг 4: Тестирование трассировкой

Также общую картину можно получить, если воспользоваться трассировкой. Суть теста в том, что пакет проходит по всем шлюзам от тестируемого компьютера до узла сети. В качестве узла сети может быть шлюз провайдера, какой-либо сервер или просто url сайта.

Для запуска необходимо применить команду tracert. В примере, я буду тестировать сайт yandex.ru:

На первом шаге хост преобразуется в IP-адрес, что свидетельствует о правильной работе DNS-служб и верной настройке сети. Далее по порядку пакет проходит по всем шлюзам сети до назначения:

  • 1-Основной шлюз
  • 2,3-Шлюзы провайдера (может быть 1 или несколько)
  • 4,6-Промежуточный шлюзы
  • 5-Один из шлюзов не доступен
  • 7-Нужный нам сайт yandex.ru

Диагностика неисправности сети в этом тесте помогает определить на каком именно узле имеется неисправность. Так, например, если пакет не уходит дальше 1-й строки (Основной шлюз), значит существует проблема с роутером или ограничения на стороне провайдера. 2-я строка – проблема на стороне провайдера и т.д.

Шаг 5: Тестирование отдельных протоколов

При успешном прохождении всех вышеперечисленных тестов можно утверждать о правильной настройке сети и работе провайдера. Однако и в этом случае могут некорректно работать некоторые клиентские программы, например электронная почта или браузер.

Связано это может быть как с проблемами на самом компьютере (например, вирусное заражение или неправильные настройки программы или вовсе ее неработоспособность), так и с ограничительными мерами, применяемыми провайдером (блокирование 25-го порта для отправки почты).

Для диагностики этих проблем применяется программа telnet. По умолчанию в ОС Windows 7 и выше, данный компонент не установлен. Для установки необходимо перейти в Пуск-Панель-Управления->Программы(Программы и компоненты, Установка и удаление программ в зависимости от версии ОС), перейти в Включение и отключение компонентов Windows (для этого требуются права администратора) и установив галочку напротив Клиент Telnet нажать OK.

Теперь мы можем приступать к тестированию сетевых портов. Для примера, проверим работоспособность почтового протокола.

У меня есть корпоративный почтовый ящик, который располагается на хостинге RU-CENTER. Адрес сервера: mail.nic.ru, сообщения перестали поступать по протоколу POP3, стало быть порт 110 (адрес сервера и номер порта я взял из настроек Outlook). Таким образом для того, чтобы проверить, имеет ли мой компьютер доступ к серверу mail.nic.ru по порту 110 в командной строке я запишу:

telnet mail.nic.ru 110

Далее сервер выдал мне статус моего обращения +ОК , что свидетельствует о корректной работе как сети в целом, так и почтовой службы в частности и в неработающей почте скорее всего виноват почтовый клиент.

Убедившись в этом, я набираю команду quit, на что сервер снова ответил мне +ОК и тем самым завершил сеанс работы команды telnet.

Таким образом, с помощью штатных средств операционной системы Windows мы можем диагностировать и устранить проблему сети. В следующей части статьи, я расскажу о штатных средствах диагностики в UNIX-подобных ОС, таких, как Linux, FreeBSD и MacOS.

Всякий раз, когда вы сталкиваетесь с проблемой с сетью, наиболее распространенным решением является, запустить программу диагностики, что позволит обнаружить и исправить ошибки. Тем не менее, наиболее часто встречающиеся сетевые проблемы могут быть решены с помощью простых команд, таких как ping, tracert, ipconfig, и др.

Знаете ли вы что?
Команда "ipconfig" может быть использована, чтобы найти компьютер по IP-адресу как в Windows так и в Linux/Unix-машинах.

Все указанные ниже команды нужно вводить в командной строке. Чтобы открыть командную строку в Windows выполните любой из нижеследующих пунктов:

  • Пуск -> Все программы -> Стандартные -> Командная строка.
  • Пуск -> Выполнить и введите имя программы cmd.exe
  • Нажать клавиши Win + R и ввести имя программы cmd.exe

Любой человек с базовыми знаниями о работе сети знает про команду ipconfig. Эта команда дает информацию об IP-адресе компьютера, наряду с DNS, DHCP, шлюзом и маской подсети. IP-адрес необходим для выполнения дальнейших команд поиска неисправностей. Если эта команда возвращает по умолчанию шлюз 0.0.0.0, то у вас проблемы с маршрутизатором. Вы можете попробовать другой вариант этой команды, чтобы решить ваши проблемы с сетью. Очередное расширение этой команды - это команда ipconfig/flushdnsи. Она очищает кэш DNS при любом несанкционированном IP-адресе или техническом сбое.

Команда « ping»


Ping одна из самых важных команд, используемых в сети. Эта команда используется для проверки подключения между узлом и назначением. Главное преимущество использования этой команды, это выяснить проблемный участок в сети. Если вы проверите ping с любого компьютера в сети, вы получите статус маршрутизатора. Также вы получите четыре ответа на запрос проверки связи. Если Вы не получаете ответов, то это указывает на проблемы с сетевой картой.


Другим преимуществом, использования команды ping, является возможность проверки подключения к любому веб-сайту/интернету. Для того чтобы сделать это, вам нужно ввести имя веб-сайта после команды ping. Если вы получаете ответы от веб-сайта, то нет практически никакой проблемы. Но если вы не получите ответа, есть вероятность, что у вас неисправен кабель, DSL модем или ISP проблема подключения. Чтобы еще больше сузить вероятность и найти основную причину проблемы, введите ping 4.2.2.1. Если вы получите ответы в командной строке, но все равно не имеете доступ к веб-сайту, то у вас есть проблемы в конфигурации DNS.


Команда tracert возвращает весь путь данных, который требуются, чтобы добраться до места назначения. Ответом будет список транзитных пунктов, через которые проходят данные, чтобы добраться до места назначения. Если вы внимательно присмотритесь, то увидите, что с каждым пунктом происходит изменение сети. Это означает, что каждая сеть передает данные в другую сеть, пока они не достигнут своего назначения. Однако, вы можете наблюдать звездочки в некоторых пунктах, эти звездочки представляет собой сеть, которая имеет проблемы.


Система доменных имен (DNS адреса), в основном, первопричина многих проблемы с сетью.. Эти IP-адреса необходимы для функционирования сетевых устройств для подключения к интернету или сети. В случае, если с этими адресами есть проблемы, функции всей сети затрудняются. Команда nslookup выдает список IP-адресов, связанных с доменным именем. Если Вы не можете получить любую информацию относительно IP-адреса, есть проблемы с DNS.


В случае сетей, большое количество хостов подключены к одному маршрутизатору. Таким образом, возникает сложнейшая задача для проверки возможности подключения каждого узла в случае проблем с сетью. Однако, в то же время, важно, проверить, являются ли соединения (TCP, UDP порты) активными или нет. Команда Netstat возвращает список всех компьютеров, подключенных к маршрутизатору, а также их статус. Зная это состояние, вы будете знать номер порта (и IP-адрес) протокол TCP/udp соединения, который неисправен или находится в закрытом состоянии или состоянии ожидания.


Команда «arp» является внешней командой, которая используется для идентификации проблем, связанных с преобразованием IP в локальные сетевые адреса. Самой распространенной проблемой, которая может обнаружена в таблице «arp» - это совместное использование одного IP-адреса двумя системами. Два хоста (один из которых, безусловно, не тот) используют один и тот же IP-адрес, и шансы неправильного хоста, отвечающего на IP в этом случае бывают высоки. Это повлияет на всю вашу сеть. Вы должны проверить, наличие парных локальных сетей и правильность прописанных IP-адресов. Для этого вы должны составить список сетевых адресов каждого хоста. Сравнивая свой список и таблицу команды «arp», вы можете легко определить проблемный хост.

Лекция 13 Диагностика сетей

Лекция 13

Тема: Диагностика сетей

а. Администраторы сети, которые формируют сетевую среду (подавляющее меньшинство).

б. Пользователи сети, кто вынужден эту среду осваивать и в ней жить.

Вторая категория, в силу своего численного превосходства, способна задать столько вопросов, на которые первая, даже будучи столь же многочисленной, не смогла бы ответить. Вопросы бывают простые, например: "Почему не работает электронная почта?" (хотя известно, что вторые сутки за неуплату обесточен весь вычислительный центр). Бывают и сложные: "Как уменьшить задержку отклика, если канал перегружен?"

Число компьютерных сетей увеличивается лавинообразно, растет число больших (>10 ПК) и многопротокольных сетей (802.11, 802.16, 802.17 и т.д.). По мере увеличения сети усложняется ее обслуживание и диагностика, с чем сталкивается администратор при первом же отказе. Наиболее сложно диагностировать многосегментные сети, где ПК разбросаны по большому числу помещений, далеко отстоящих друг от друга. По этой причине сетевой администратор должен начинать изучать особенности своей сети уже на фазе ее формирования и готовить себя и сеть к будущему ремонту.

При возникновении нештатной ситуации администратор должен суметь ответить на ряд вопросов:

Связана проблема с оборудованием или программным обеспечением;

Отказ вызван повреждением программы, неверным выбором конфигурации или ошибочными действиями оператора.

Сетевая диагностика - это получение и обработка информации о состоянии сети.

Документирование сети

Начинать надо с исчерпывающего документирования аппаратной и программной части сети. Администратор всегда должен иметь под рукой схему сети, отвечающую реальному положению на текущий момент, и подробное описание конфигурации программного обеспечения с указанием всех параметров (физические и IP-адреса всех интерфейсов, маски, имена ПК, маршрутизаторов, значения MTU, MSS, TTL и других системных переменных, типовые значения RTT и других параметров сети, измеренных в разных режимах.).

В пределах локальной сети поиск неисправности возможен с помощью временного деления ее на части. По мере интеграции сети в Интернет такие простые меры становятся недостаточными или недопустимыми. Но не следует пренебрегать такими простыми средствами, как проверка отсутствия обрыва или закоротки сетевого кабеля.

Следует помнить, что сетевая диагностика является основой сетевой безопасности. Только администратор, знающий все о том, что происходит в сети, может быть уверен в ее безопасности.

В лекции будет предполагаться, что сеть на физическом уровне использует стандарт Ethernet, а для межсетевой связи протокол TCP/IP (Интернет). Этим перечнем разнообразие сетевых сред не исчерпывается, но многие приемы и программные диагностические средства с успехом могут использоваться и в других случаях. Большинство из рассматриваемых программ работают в среде UNIX, но существуют их аналоги и для других ОС.

Источником диагностической информации может быть компьютер, его процессор, сетевой интерфейс, операционная система, установленная на машине, сетевые перключатели, маршрутизаторы и т.д.

При переходе на стандарты передачи 1 и тем более 10Гбит/с возникают дополнительные проблемы. Обработка таких потоков с целью диагностики может существенно замедлить работу машины. Аналогичные проблемы возникают при построении IPS/IDS-систем, а также антивирусных программ. Впрочем эта проблема становится тяжелой также из-за фантастического роста числа сигнатур (миллионы) атак и вирусов. Одним из способов решения задачи является привлечение аппаратных средств, а также организация нескольких потоков обработки, что достаточно реально для машин с несколькими процессорами.

Программные средства диагностики

В Интернет имеется немало общедоступных специализированных диагностических программных продуктов: Etherfind, Tcpdump , netwatch, snmpman, netguard, ws_watch.

Такие средства входят также и в комплекты поставки большинства стандартных сетевых пакетов для ОС MS-DOS, UNIX, Windows NT, VMS и других: ping, tracetoute, netstat, arp, snmpi, dig (venera.isi.edu /pub), hosts, nslookup, ifconfig, ripquery. Перечисленные выше диагностические программы являются необходимым инструментом для отладки программ, передающих и принимающих пакеты.

Диагностические команды ОС

Таблица 1.

Название команды Назначение

arp Отображает или модифицирует таблицу протокола ARP (преобразование IP в MAC-адреса)

chnamsv Служит для изменения конфигурации службы имен на ЭВМ (для TCP/IP)

chprtsv Изменяет конфигурацию службы печати на ЭВМ-клиенте или сервере

gettable Получает таблицы ЭВМ в формате NIC

hostent Непосредственно манипулирует записями адресного соот-ветствия ЭВМ в конфигурационной базе данных системы

hostid Устанавливает или отображает идентификатор данной ЭВМ

hostname Устанавливает или отображает имя данной ЭВМ

htable Преобразует файлы ЭВМ в формат, используемый программами сетевой библиотеки

ifconfig Конфигурирует или отображает параметры сетевых интерфейсов ЭВМ (для протоколов TCP/IP)

ipreport Генерирует сообщение о маршруте пакета на основе специфицированного маршрутного файла

iptrace Обеспечивает отслеживание маршрута движения пакетов на интерфейсном уровне для протоколов Интернет

lsnamsv Отображает информацию базы данных DNS

lsprtsv Отображает информацию из базы данных сетевой службы печати

mkhost Создает файл таблицы ПК

mknamsv Конфигурирует службу имен клиент ПК (для TCP/IP)

mktcpip Устанавливает требуемые величины для запуска TCP/IP на ЭВМ

namerslv Непосредственно манипулирует записями сервера имен для локальной программы DNS в базе данных конфигурирования системы

netstat Отображает состояние сети

no Конфигурирует сетевые опции

rmnamsv Удаляет TCP/IP службу имен из ЭВМ

rmprtsv Удаляет службу печати на машине клиента или сервере

route Служит для ручного манипулирования маршрутными таб-лицами

ruptime Отображает состояние каждой ЭВМ в сети

ruser Непосредственно манипулирует записями в трех отдельных системных базах данных, которые регулируют доступом внешних ЭВМ к программам

securetcpip Активизирует сетевую безопасность

setclock Устанавливает время и дату для ЭВМ в сети

slattach Подключает последовательные каналы в качестве сетевых интерфейсов

timedc Присылает информацию о демоне timed

trpt Выполняет отслеживание реализации протокола для TCP-сокетов

Для того чтобы диагностировать ситуацию в сети, необходимо представлять себе взаимодействие различных ее частей в рамках протоколов TCP/IP и иметь некоторое представление о работе Ethernet .

Сети, следующие рекомендациям Интернет, имеют локальный сервер имен (DNS, RFC-1912, -1886, -1713, -1706, -1611-12, -1536-37, -1183, -1101, -1034-35; цифры, напечатанные полужирным шрифтом, соответствуют кодам документов, содержащим описания стандартов), служащий для преобразования символьного имени сетевого объекта в его IP-адрес. Обычно эта машина базируется на ОС UNIX.

DNS-сервер обслуживает соответствующую базу данных, которая хранит много другой полезной информации. Многие ПК имеют SNMP-резиденты (RFC-1901-7, -1446-5, -1418-20, -1353, -1270, -1157, -1098), обслуживающие управляющую базу данных MIB (RFC-1792, -1748-49, -1743, -1697, -1573, -1565-66, -1513-14, -1230, -1227, -1212-13), содержимое которой поможет также узнать много интересного о состоянии вашей сети. Сама идеология Интернет предполагает богатую диагностику (протокол ICMP, RFC-1256, 1885, -1788, -792).

Использование протокола ICMP

Протокол ICMP используется в наиболее популярной диагностической программе ping (входит в поставку практически всех сетевых пакетов). Возможная форма вызова этой программы имеет вид:

ping <имя или адрес ЭВМ или другого объекта> [размер пакета] [число посылок]

В различных реализациях программа ping имеет много различных опций, которые позволяют измерять статистические характеристики канала (например, потери), определение задержки в канале (RTT), отображение посылаемых пакетов и получаемых откликов, а также определение маршрута до интересующего объекта. Ping используется для определения доступности сервис-провайдера и т.д.

Ниже приведен пример использования команды tracetoute, которая во многом эквивалентна ping (но базируется непосредственно на IP, используя соответствующие опции):

traceroute kirk.Bond.edu.au

Программа traceroute посылает по три пакета с нарастающими значениями TTL, если отклик на пакет не получен печатается символ *. Большие задержки (RTT) в приведенном примере определяются спутниковыми каналами связи (время распространения сигнала до спутника!).

Для того чтобы правильно реагировать на нештатные ситуации, надо хорошо представлять себе, как сеть должна работать в нормальных условиях. Для этого надо изучить сеть, ее топологию, внешние связи, конфигурацию программного обеспечения центральных серверов и периферийных ПК. Следует иметь в виду, что изменение конфигурации является обычно привилегией системного администратора и в любых сомнительных случаях нужно обращаться к нему. Неквалифицированные действия при реконфигурировании системы могут иметь катастрофические последствия.

Применение DNS для целей диагностики

Как уже отмечалось выше, одним из важнейших частей любого узла Интернет является сервер имен (DNS). Конфигурация DNS-сервера определяется тремя файлами: named.boot, named.ca и named.local. Зонная информация содержится в файле named.rev, а данные о локальном домене в файле named.hosts. Отладка, контроль и диагностика DNS-сервера осуществляется с использованием программ nslookup (или dig).

DNS-сервер весьма важный объект узла, от него зависит скорость обслуживания запросов и надежность системы в целом. Именно по этой причине помимо основного любой узел имеет несколько вторичных DNS-серверов.

Программа ifconfig служит для контроля состояния сетевых интерфейсов, их конфигурирования и проверки. С помощью этой команды интерфейсу присваивается IP-адрес, субсетевая маска и широковещательный адрес.

Применение NETSTAT

Одной из наиболее информативных команд является netstat (за исчерпы-вающим описанием опций и методов применения отсылаю к документации на ваше сетевое программное обеспечение).

Эта команда может вам дать информацию о состоянии интерфейсов на ПК, где она исполнена: netstat -i

В последнее время появилось несколько комплексных (общедоступных) пакетов диагностики (NetWatch, WS_watch, SNMPMAN, Netguard и др.). Некоторые из этих пакетов позволяют построить графическую модель тестируемой сети, выделяя цветом или с помощью вариации картинок работающие ЭВМ. Программы, использующие протокол SNMP, проверяют наличие посредством специального запроса доступность SNMP-демона, с помощью ICMP-протокола определяют работоспособность ЭВМ, после чего отображают переменные и массивы данных из управляющей базы данных MIB (если эта база имеет уровень доступа public). Это может делаться автоматически или по запросу оператора. SNMP-протокол позволяет мониторировать вариации загрузки отдельных сегментов сети пакетами UDP, TCP, ICMP и т.д., регистрируя количество ошибок по каждому из активных интерфейсов. Для решения этой задачи можно использовать соответствующую программу, которая регулярно опрашивает MIB интересующих вас ЭВМ, а полученные числа заносятся в соответствующий банк данных. При возникновении нештатной ситуации администратор сети может просмотреть вариации потоков в сегментах сети и выявить время и причину сбоя в системе. Аналогичные данные можно получить с помощью программы, переводящей интерфейс Ethernet в режим приема всех пакетов (mode=6). Такая программа допускает получение данных по всем типам пакетов, циркулирующих в данном кабельном сегменте.

Определенный интерес может представлять диагностическая программа ttcp, которая позволяет измерять некоторые характеристики TCP- или UDP-обменов между двумя узлами.

При переходе сетей в гигабитный диапазон скоростей, в частности на 10Гбит/с, возникают трудности мониторинга состояния сети.

Многие пользователи периодически сталкиваются с теми или иными сетевыми проблемами. Ситуации тут могут быть разные. Скажем, качество связи может ухудшиться и отдельные серверы могут оказаться недоступными. Подобные сбои могут оказаться критичными для пользователей онлайновых сервисов, например, трейдеров, торгующих на фондовом рынке, игроков в сетевые игры и пр. Бывает, что после изменения каких-то настроек на компьютере или смены провайдера вообще не удается получить доступ к сети, а при настройке домашней сети, например, выясняется, что доступ к интернету есть только на одном из компьютеров, и т.п. Во многих подобных случаях приходится проводить диагностику сетевого соединения и проверять работоспособность того или иного удаленного узла.

⇡ Встроенные средства Windows - утилиты Ping и Tracert

В OS Windows имеется несколько утилит для диагностики состояния сети, но чаще всего используются Ping и Tracert. Программа Ping отправляет запрос указанному узлу сети и фиксирует время между отправкой запроса и получением ответа (RTT, от англ. Round Trip Time), иными словами, утилита позволяет определить время отклика интересующего сервера. Понятно, что чем оно меньше, тем обмен данными с этим сервером производится быстрее. Программа Tracert выполняет отправку тестового пакета указанному узлу сети, отображая информацию обо всех промежуточных маршрутизаторах, через которые прошел пакет на пути к запрошенному узлу, а также минимальное, максимальное и среднее время отклика каждого из них. Это позволяет оценить, насколько "длинный" путь прошел пакет и на каком участке возникают наибольшие задержки, связанные с передачей данных. Что означают результаты, выдаваемые утилитами Ping и Tracert? Например, отсутствие отклика от удаленного сервера может свидетельствовать о том, что он сейчас недоступен, или же администратор сервера заблокировал эхо-запросы (при этом остальные службы сервера могут нормально работать). Если время отклика (RTT) удаленных серверов слишком велико и не зависит от их месторасположения, скорее всего, качество вашего подключения оставляет желать лучшего и стоит обратиться к вашему провайдеру. Впрочем, некоторый выигрыш в скорости можно получить и путем настройки интернет-соединения на максимальное быстродействие, для чего лучше воспользоваться специальными утилитами-оптимизаторами, такими как TweakMASTER, но это уже совсем другая тема. Слишком "длинный" маршрут до интересующего сервера (то есть большое количество промежуточных маршрутизаторов на пути соединения с сервером) часто приводит к замедлению связи с ним. Если это критично, то имеет смысл попытаться поискать варианты сокращения длины маршрута. Например, в случае игровых серверов можно сделать выбор в пользу тех, которые находятся как можно "ближе" к серверу вашего интернет-провайдера. Если утилиты показывают, что тестовые пакеты не проходят дальше сервера вашего провайдера, весьма вероятно, что возникли проблемы на его стороне, а может быть это плановые профилактические работы. В применении утилит Ping и Tracert нет никаких хитростей, но технически использовать их не очень удобно. Для запуска ping-теста или трассировки придется открывать окно командной строки и вводить команду, возможно, еще и с параметрами, которые нужно либо запоминать, либо каждый раз обращаться к справке. Например, для проверки работоспособности узла www.сайт потребуется ввести в командной строке команду ping www.сайт , а чтобы выяснить путь прохождения пакетов до данного узла - команду tracert www.сайт . Результаты выполнения этих команд представлены ниже и представляют собой несколько текстовых строк. Отметим, что запускать указанные команды можно и через меню "Пуск" > "Выполнить", но в этом случае окно программы автоматически закрывается сразу после завершения ее работы и все результаты будут потеряны.

Гораздо удобнее использовать специализированные утилиты, которые способны проследить "путешествие" пакетов по сети и по IP-адресу сервера сообщить о нем дополнительную информацию. Подобные утилиты могут оказаться весьма полезными для быстрого анализа и идентификации источника сетевых проблем. На использовании утилит такого плана мы и остановимся в данной статье.

⇡ Диагностические сервисы

Сначала вкратце расскажем об альтернативном варианте диагностики сети - с помощью специальных онлайновых сервисов. В качестве примеров таковых можно привести WhatIsMyIPAddress.com и Yougetsignal.com , а также Whois-сервис . С помощью сервиса WhatIsMyIPAddress.com можно узнать свой внешний IP-адрес, если вы его не знаете или он у вас динамический. Также можно путь прохождения пакетов между своим компьютером и данным сервером. Сделать это просто, нужно в меню "IP Tools" выбрать функцию "Visual Traceroute", ввести свой внешний IP-адрес и щелкнуть по кнопке "Visual Traceroute".

Также можно воспользоваться инструментом "IP lookup" для того, чтобы выяснить кое-какие детали об интересующем IP-адресе, включая имя хоста, географические координаты и местоположение на карте мира. Зачем это нужно? Ну, например, для выхода на источник вторжения в вашу систему, если вы таковое зафиксировали. Воспользовавшись функцией "Visual Trace Route Tool" на сервисе Yougetsignal.com, также можно провести трассировку, для чего достаточно ввести URL сервера или его IP-адрес и щелкнуть на кнопке"Host Trace". В итоге сервис отобразит путь следования пакетов на карте мира, а также в виде списка промежуточных серверов с указанием общего числа переходов и принадлежности каждого из них конкретной стране. Активировав функцию "Network Location Tool", можно выяснить географическое положение любого сервера по его IP-адресу. А воспользовавшись функцией "WHOIS lookup Tool" можно получить информацию о сервере с информационного сервиса WHOIS.

Whois-сервис поможет установить время отклика интересующего сервера (функция "Ping"), определить путь прохождения запроса до сервера и узнать, сколько и какие промежуточные интернет-серверы, маршрутизаторы и другие устройства участвуют в пересылке данных на сервер и обратно (Tracert).

Кроме того, с помощью функции "IP Lookup" можно выяснить по имени хоста его IP-адрес (либо наоборот), а функция "Whois" подскажет, свободен указанный домен или занят. Если домен занят, то можно выявить его владельца и то, как с ним связаться (если вы, например, желаете купить это доменное имя).