Проектирование сетевой инфраструктуры (лекции) / Лекция 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. Перечисленные выше диагностические программы являются необходимым инструментом для отладки программ, передающих и принимающих пакеты.
Диагностические команды ОС
Название команды Назначение
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 имеет много различных опций, которые позволяют измерять статистические характеристики канала (например, потери), определение задержки в канале (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 -i
В последнее время появилось несколько комплексных (общедоступных) пакетов диагностики (NetWatch, WS_watch, SNMPMAN, Netguard и др.). Некоторые из этих пакетов позволяют построить графическую модель тестируемой сети, выделяя цветом или с помощью вариации картинок работающие ЭВМ. Программы, использующие протокол SNMP, проверяют наличие посредством специального запроса доступность SNMP-демона, с помощью ICMP-протокола определяют работоспособность ЭВМ, после чего отображают переменные и массивы данных из управляющей базы данных MIB (если эта база имеет уровень доступа public). Это может делаться автоматически или по запросу оператора. SNMP-протокол позволяет мониторировать вариации загрузки отдельных сегментов сети пакетами UDP, TCP, ICMP и т.д., регистрируя количество ошибок по каждому из активных интерфейсов. Для решения этой задачи можно использовать соответствующую программу, которая регулярно опрашивает MIB интересующих вас ЭВМ, а полученные числа заносятся в соответствующий банк данных. При возникновении нештатной ситуации администратор сети может просмотреть вариации потоков в сегментах сети и выявить время и причину сбоя в системе. Аналогичные данные можно получить с помощью программы, переводящей интерфейс Ethernet в режим приема всех пакетов (mode=6). Такая программа допускает получение данных по всем типам пакетов, циркулирующих в данном кабельном сегменте.
Определенный интерес может представлять диагностическая программа ttcp, которая позволяет измерять некоторые характеристики TCP- или UDP-обменов между двумя узлами.
При переходе сетей в гигабитный диапазон скоростей, в частности на 10Гбит/с, возникают трудности мониторинга состояния сети.