По законам фронтира в финале встречаются не самые сильные или быстрые, а наиболее опытные, способные из горсти никчемного сора сотворить что угодно, от лекарства до взрывчатки, и понимающие, чем один шум отличается от другого. Компьютеры — это тоже фронтир. Можно отступить и позвать на помощь более знающего товарища. А можно и самому пытаться решить те нескончаемые задачки, что подбрасывает техника, отказываясь работать. Большая часть проблем обычно связана с сетью. Что и неудивительно: персональные компьютеры объединяются в домашние, офисные, корпоративные сети, не забудем и про глобальную сеть — Интернет. Так что умение локализовать сетевые неисправности весьма ценно для обитателей виртуального мира. Средств диагностики сетей достаточно много, но прежде всего необходимо уметь пользоваться тем, что всегда есть под рукой. Тем более что утилиты командной строки Windows от версии к версии становятся все более серьезным инструментом.

Первый этап анализа сетевой работы персонального компьютера  — это проверка световой индикации сетевого интерфейса (сетевой платы) компьютера. Если на сетевом интерфейсе горит зеленая или оранжевая лампочка — кабель подключен и сетевой интерфейс оборудования, принимающего второй конец кабеля, тоже находится в рабочем состоянии.

Следующий этап — проверка TCP/IP-настроек сетевого интерфейса. Их отразит команда ipconfig. Сверив полученные данные (адрес компьютера, шлюз и маска подсети) с теми, что были получены от своего системного администратора или провайдера, перейдем к анализу сетевой доступности шлюза, который предназначен для соединения локальной сети с иными сетями. Для этой цели служит команда ping, в параметрах запуска которой указывается сетевой адрес шлюза.

C:> ping 192.168.0.1

По выполнении команда сообщит, сколько из направленных запросов (пакетов) достигло своей цели и сколько было потеряно. Если потери достигают 100%, таким же образом следует проверить доступность соседей, иных клиентов данной локальной сети. Если и они недоступны (исключая случай, когда проверяемые компьютеры отключены от сети), для начала следует отключить сетевой брандмауэр (разумеется, при его наличии), поскольку сбои в работе программных сетевых фильтров весьма нередко приводят к полной блокировке любой сетевой активности защищаемого компьютера. Если проблема не исчезает, данное физическое соединение следует проверить с помощью иного компьютера. Встреченная проблема по признакам из разряда программных переходит уже в разряд аппаратных неполадок. Вероятно, она вызвана либо неисправностью сетевого интерфейса персонального компьютера или интерфейса коммуникационного оборудования, либо частичным повреждением кабеля (при более серьезном повреждении не было бы индикации на сетевых интерфейсах).

В идеальном случае серия ping-запросов к сетевому шлюзу должна пройти без потерь. Частичные потери указывают на перегрузку шлюза или промежуточного коммуникационного оборудования, сетевых коммутаторов — свичей или концентраторов  — хабов. И то и другое говорит о необходимости реорганизации локальной сети. Для небольших сетей обычно проблема решается заменой шлюза на более производительное устройство.

При отсутствии потерь пакетов в локальной сети следует переходить к проверке доступности внешних сетей или Интернета. Для этой цели помимо уже знакомой команды ping можно использовать утилиту trаcert, как и ping, принимающую в качестве параметров запуска доменное имя или сетевой адрес какого-либо ресурса.

С:>ping www.rbc.ru
С:>tracert www.rbc.ru  

Особенность tracert в том, что она выводит список шлюзов, соединяющих различные сети по маршруту следования сетевых запросов (сетевого трафика) к указанному в параметрах команды адресу (в примере www.rbc.ru ). В отчете приводится также и время доступа к каждому из этих ресурсов, что при изменении скорости работы сети позволяет вычислить ресурс, ставший причиной замедления передачи сетевого трафика.

Для более подробного анализа сетевых маршрутов удобно использовать утилиту pathping, объединяющую в себе обе вышеописанные утилиты. Как и tracert, она выводит данные о цепочке шлюзов по маршруту следования сетевого трафика к запрошенному адресу, а также посылает по сотне ping-запросов к каждому из данных ресурсов.

C:>pathping www.rbc.ru

Указывая в параметрах запуска утилит доменные имена, иногда можно получить сообщение, что «не удалось разрешить» системное имя указанного узла. Причина этого в том, что соответствующая системная программа компьютера не смогла получить ответ от DNS-сервера, работа которого заключена в преобразовании доменных имен (например, www. rbc.ru ) в сетевые адреса (вида 82.204.218.11). Список DNS-серверов, для работы с которыми настроен данный компьютер, можно получить, запустив утилиту ipconfig c параметром all.

C:>ipconfig /all

Далее состояние каждого из указанных серверов следует анализировать утилитой nslookup.

C:>nslookup www.rbc.ru сетевой_адрес_DNS_сервера

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

В основном описанные выше методики касаются диаг-ностики сторонних сетевых ресурсов, но неменьший интерес представляет и анализ состояния работы самого персонального компьютера, провести который позволяет утилита netstat. Запущенная с ключом e, помимо прочего она сообщит об ошибках обработки сетевых пакетов на сетевом интерфейсе. Наиболее вероятная причина появления ошибок во входящем трафике — это несовпадение параметров работы (скорости и duplex-режима) сетевого интерфейса компьютера и интерфейса (порта) устройства, к которому данный компьютер подключен. Следующие по вероятности причины — повреждение кабеля или слишком большое число участников в данной локальной сети.

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

C:>netstat — e
C:>netstat — na — p tcp 10

Утилиты командной строки Windows  — удобный инструмент диагностики, но не стоит забывать про ограничения. Одна из задач, которую нельзя решить с их помощью, — анализ содержимого сетевого трафика. Для этой цели можно привлечь бесплатно распространяемую программу Wireshark. Она дает возможность полностью или выборочно перехватывать сетевой трафик, просматривать тип и содержимое отслеженных сетевых пакетов. А для сбора и графического отображения сетевой статистики с течением времени можно привлечь программы TMeter, BWMeter или иной инструмент из данного класса. Отмечу, что анализ соотношения входящего и исходящего трафика часто позволяет выявить случаи вирусного заражения, при котором исходящий трафик компьютера в десятки или сотни раз превышает входящий.

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

Далее рассмотрим программы визуального анализа сетевых маршрутов на примере VisualRoute и PingPlotter. Они по сути дублируют утилиты командных строк tracert и pathping, но их графические интерфейсы, вероятно, будут более привычны многим пользователям ОС семейства Microsoft Windows. К тому же эти программы предлагают возможность автоматической проверки доступности сетевых ресурсов через заданные промежутки времени.

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


ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

Работа с командной строкой

Для получения доступа к командной строке следует нажать на кнопку «Пуск» в Панели задач, далее выбрать раздел «Программы•
Стандартные•Командная строка». Или выполнить запуск программы, набрав команду cmd («Пуск•Выполнить•Открыть»).

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

Для выделения текста необходимо навести курсор на рабочее окно, щелкнуть правой клавишей мыши и выбрать пункт «Пометить». Затем навести курсор на начало копируемого блока и, нажав левую клавишу мыши, выделить блок. После завершения выделения отпустить левую клавишу мыши и нажать клавишу на клавиатуре. Выделенный текст будет помещен в буфер обмена компьютера. Для вставки текста из буфера обмена в командную строку следует, наведя курсор на рабочее поле окна командной строки и щелкнув правой клавишей мыши, выбрать в появившемся меню пункт «Вставить».


ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ

Подключение ноутбука

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

Переключение сетевого интерфейса, в настройках обозначенного как ”Подключение по локальной сети”, в режим DHCP–клиента (динамическое получение конфигурации TCP/IP от DHCP-сервера) происходит так:

C:>netsh interface ip set address name=”Подключение по локальной сети” source=dhcp

Команда установки статического (определенного) адреса на интерфейсе в общем виде выглядит следующим образом:

C:>netsh interface ip set address name=”Подключение по локальной сети” source=static addr=[IP-адрес] mask=[Маска подсети] gateway=[IP-адрес шлюза] gwmetric=1

На практике:

C:>netsh interface ip set address name=”Подключение по локальной сети” source=static addr=10.20.3.2 mask=255.255.255.0 gateway=10.20.3.1 gwmetric=1

Команда, устанавливающая настройку DNS-сервера с помощью DHCP:

C:>netsh interface ip set dns name=”Подключение по локальной сети” source=dhcp

Команда, устанавливающая для указанного интерфейса статическую настройку DNS-серверов:

C:>netsh interface ip set dns name=”Подключение по локальной сети” source=static addr=10.2.3.4

Возможно и сокращение команд. Для вышеприведенных примеров соответственно:

C:>netsh interface ip set address ”Подключение по локальной сети” dhcp
C:>netsh interface ip set address ”Подключение по локальной сети” static 10.20.3.2 255.255.255.0 10.20.3.1 1
C:>netsh interface ip set dns ”Подключение по локальной сети” dhcp
C:>netsh interface ip set dns ”Подключение по локальной сети” static 10.2.3.4

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

C:>netsh interface ip dump > IpConfFile.txt

А операция восстановления выполняется так:

C:>netsh –с ”interface ip” –f IpConfFile.txt


Список упоминаемых проектов и ресурсов

BWMeter http://www.desksoft.com/
Free Online IP SubNet Calculator http://ipcalc.dewil.ru/
Network Calculators http://www.subnetmask.info/
TMeter http://www.tmeter.ru/
PingPlotter http://www.pingplotter.com/
VisualRoute http://www.visualroute.com/
WildPackets Network Calculators http://www.wildpackets.com/
Wireshark http://www.wireshark.org/