Программный анализатор протоколов - вот что может способствовать более ровной и быстрой работе сети. Самая последняя версия анализатора протоколов EtherPeek понимает еще и язык гипертекстов HTML.
Важная (и часто крайне необходимая) информация, проходящая через сеть, невидима. Как правило, это и не нужно, но когда возникает неисправность, то, чтобы разобраться, лучше все-таки увидеть, что происходит. И здесь вам помогут анализаторы протоколов.
EtherPeek 3.1 - последняя версия программного пакета анализатора протоколов компании AG Group для компьютеров Macintosh. (Компания AG Group недавно выпустила версию EtherPeek для Windows 95. Первоначально продукт под Windows 95 предполагалось рассмотреть в данном обзоре, однако из-за ограничений по времени этого сделать не удалось, и потому мы рассмотрим его как-нибудь в следующий раз.) EtherPeek 3.1 может работать на компьютерах Macintosh с процессором Motorola 680x0, процессором PowerPC и, конечно же, Power Macintosh. Кроме того, EtherPeek 3.1 выполняется и на компьютерах Power Macintosh последних моделей с шиной PCI.
В ходе испытаний EtherPeek запускался на двух машинах: Macintosh Quadra 650 (компьютер на основе процессора 68040) и Power Macintosh 7500/100. Модель Quadra имела встроенный адаптер Ethernet. В компьютер Power Macintosh мы установили адаптер Ethernet 500 для шины PCI фирмы Digital Equipment.
Тем, кто никогда не использовал анализаторы протоколов, этот обзор даст представление, как они работают и как с их помощью анализировать работу сети. Тем же, кто уже хорошо знаком с EtherPeek или другими анализаторами протоколов, наша статья будет полезна конкретными сведениями об этом программном продукте и о новых возможностях, отличающих его от предыдущих версий.
ЧТО ТАКОЕ ПРОТОКОЛ?
Большинство анализаторов протоколов работают по принципу "вылавливания" пакетов из сети с последующей записью их в память для анализа (см. в этом номере журнала статью Майка Гурвица "Протоколы на анализ!"). Основными частями анализатора протоколов являются сетевой интерфейс (для сбора пакетов) и буфер (для хранения перехваченных пакетов).
В современных сетях передача данных происходит на весьма высоких скоростях, и в идеале анализатор должен быть в состоянии собирать пакеты со скоростью передачи данных в сети. Это не всегда возможно, и, чтобы добиться наивысшей скорости сбора данных, большинство анализаторов (в том числе и EtherPeek) помещают собираемые пакеты в оперативную память компьютера. В область хранения данных в оперативной памяти, называемой большинством производителей анализаторов протоколов буфером сбора (capture buffer), помещаются данные всех пакетов, перехватываемых сетевым интерфейсом анализатора.
Анализаторы протоколов можно разделить на две большие группы: одни представляют собой комбинацию аппаратного и программного обеспечения, для использования которой дополнительного оборудования не требуется, другие - это только пакеты программ, устанавливаемые на отдельном компьютере (в последнем случае необходимо, конечно, чтобы компьютер имел сетевой интерфейс).
Сказать, какой подход лучше, трудно. Можно предположить, что сочетание аппаратного и программного обеспечения более эффективно, поскольку производители подгоняют друг к другу обе составляющие продукта. Однако аппаратно-программные решения обычно очень дороги. Чисто программные анализаторы - это просто пакеты программ (предполагается, что компьютер с сетевым интерфейсом уже имеется), и поэтому они гораздо доступнее по цене.
Кроме того, тому, кто не занимается разработкой маршрутизаторов или каких-либо других сетевых устройств, все пакеты перехватывать незачем. Большинство администраторов используют анализаторы протоколов для диагностики неполадок, возникающих в сети, так что основными характеристиками здесь являются легкость использования, гибкость и поддержка широкого спектра протоколов.
ИНСТАЛЛЯЦИЯ ETHERPEEK
Инсталляция и конфигурация этого пакета программ просты: EtherPeek поставляется на одной дискете 3,5 дюйма, и можно либо запустить EtherPeek с дискеты, либо отбуксировать папку EtherPeek на жесткий диск и запустить пакет оттуда. Одно из преимуществ программных анализаторов протоколов (в том числе и EtherPeek) в том, что для диагностики возникающих проблем не приходится таскать громоздкий анализатор по всему офису: взяв дискету с EtherPeek, администратор может запустить с нее пакет на машине того пользователя, который жалуется на неполадки.
Руководство пользователя предупреждает, что EtherPeek можно использовать для перехвата сетевых паролей, если они не зашифрованы (на самом деле это может делать любой анализатор протоколов). Поэтому доступ к данному программному обеспечению, возможно, придется контролировать - например запускать EtherPeek только с дискеты, а остальное время хранить ее в сейфе. Но если компьютер расположен в недоступном для посторонних помещении, то намного удобнее инсталлировать EtherPeek на жесткий диск.
На компьютерах Macintosh новых моделей используется сетевое программное обеспечение Open Transport фирмы Apple. На таких компьютерах с сетевыми адаптерами для шины PCI, драйверы которых соответствуют стандарту Data Link Provider Interface (DLPI), можно одновременно использовать один и тот же сетевой адаптер и для EtherPeek, и для нормального взаимодействия с сетью. На тех же компьютерах, где нет Open Transport и DLPI-совместимых драйверов сетевых адаптеров, одновременно запускать EtherPeek и AppleTalk нельзя: как только EtherPeek начнет перехватывать пакеты, программное обеспечение выдаст сообщение, что необходимо закрыть AppleTalk, и предложит осуществить это действие немедленно. При выходе из EtherPeek программа заботливо восстановит AppleTalk. В данном случае разумнее использовать два адаптера Ethernet - один для EtherPeek, другой для AppleTalk.
СБОР ПАКЕТОВ
Разумеется, если предполагается собирать пакеты в течение длительного промежутка времени, то буфер должен иметь максимально возможную емкость. Так что необходимо сначала удостовериться, что ПК оснащен достаточно большим объемом оперативной памяти. Будьте готовы к тому, что придется использовать столько оперативной памяти, сколько вы можете себе позволить или сколько можно вставить в этот ПК. В противном случае буфер переполнится почти в самом начале работы.
Работу сети нельзя проанализировать, не собрав пробы трафика. Поэтому начинать работу с EtherPeek следует со сбора пакетов. Для этого щелкните мышью на кнопке Start Capture в главном окне EtherPeek, появляющемся при вызове программы. EtherPeek предоставляет широкие возможности фильтрации пакетов, но во время первого сеанса работы желательно, по всей видимости, получить полную картину того, что происходит в сети (количество узлов, действительно функционирующих в сети, и степень загруженности сети). Так что вначале, вероятно, предпочтителен основной режим сбора пакетов, без установки фильтров и запуска процедур в ответ на события.
Рисунок 1 дает представление, как выглядит при сборе пакетов экран EtherPeek. На нем показано основное окно EtherPeek сразу же после завершения сеанса сбора. Фактически то же самое находится на экране и в процессе сбора пакетов.
(1x1)
Рисунок 1.
Главное окно анализатора пакетов EtherPeek сразу после выполнения сеанса
по сбору пакетов. Такой же вид имеет экран и в процессе сбора пакетов.
Как видно из Рисунка 1, экран содержит строки со сводками данных по каждому кадру в буфере сбора пакетов. Кроме номера пакета (который показывает, в каком порядке прибывают пакеты) экран отображает адреса отправителя и получателя этого пакета Ethernet (в шестнадцатиричном формате), размер пакета (в байтах), отметку о времени (устанавливаемую EtherPeek в момент перехвата пакета), тип протокола пакета и другую информацию, для получения которой, возможно, придется использовать модули расширения EtherPeek (подробнее о модулях расширения чуть ниже). EtherPeek позволяет также менять порядок столбцов, добавлять и удалять столбцы на экране.
EtherPeek позволяет установить соответствие между именами узлов и их шестнадцатиричными адресами, что облегчает отслеживание происходящих событий. Так, на Рисунке 2 показана та же самая информация, что и на Рисунке 1, но шестнадцатиричные адреса заменены здесь на имена узлов. Посредством опроса узлов EtherPeek может сам выяснять имена компьютеров Macintosh; для компьютеров, работающих с протоколами TCP/IP, EtherPeek запрашивает сервер DNS для определения имени хоста. Пользователь может также вручную занести сетевые адреса и имена узлов в таблицу Name Table.
(1x1)
Рисунок 2.
Показаны те же самые пакеты данных, что и на Рисунке 1, но вместо физических
адресов сети Ethernet на экран выведены имена узлов из Name Table программы
EtherPeek.
Обратите внимание на большое число пакетов HTTP на Рисунке 2. Мы запустили браузер Web на компьютере Power Mac в процессе сбора пакетов программой EtherPeek. Пакеты HTTP содержат страницу Web, перекачиваемую на наш Power Mac, который EtherPeek обозначает как This Computer.
Собрав определенное число пакетов и ознакомившись с общей статистикой трафика, пользователь, скорее всего, захочет проанализировать отдельные пакеты. Подробную информацию о пакете можно получить двумя способами: либо поместить курсор на соответствующую строку и дважды щелкнуть мышью, либо выделить строку, а затем нажать на кнопку Show Contents в нижней части окна. После этого откроется окно Packet Details (см. Рис.3), в верхней части которого находятся адреса Ethernet отправителя и получателя. Кроме того, там есть поле Protocol Type, где записано шестнадцатиричное число 0x0800 - идентификатор IP-протокола, распознаваемый декодировщиком протоколов EtherPeek. Это означает, что данный пакет Ethernet используется для передачи IP-пакета. В свою очередь, IP-пакет содержит TCP-пакет. Декодировщик протоколов анализатора EtherPeek в состоянии углубляться в каждый пакет настолько, насколько необходимо пользователю, при этом EtherPeek действует как переводчик.
(1x1)
Рисунок 3.
Двойной щелчок мышью по любому пакету в основном окне EtherPeek позволяет
ознакомиться с содержимым пакета, используя декодировщики протоколов EtherPeek.
Показан пакет номер 634 из буфера сбора пакетов.
Щелкнув мышью по кнопке в форме ромба в правом нижнем углу окна Packet Details, вы получите изображение пакета в "исходной" форме, в виде блока данных шестнадцатиричного формата. Но в большинстве случаев удобнее, конечно, пользоваться декодированными данными (Рис. 3).
НАБЛЮДЕНИЕ ЗА ТРАФИКОМ
Сбор пакетов позволяет увидеть, насколько активно функционирует сеть. Выполните команду Network из меню Statistics - и величина загрузки сети, выраженная в битах/с и процентах, а также гистограмма, по которой можно проследить изменения загрузки сети во времени, появится у вас перед глазами.
Вас интересует, кто наиболее часто использует сеть? Выберите команду Source в меню Statistics, и EtherPeek выдаст вам количество активных узлов сети, которые он обнаружил в текущем сеансе, и гистограмму, показывающую число пакетов, приходящих от каждого отправителя. Кроме того, EtherPeek позволяет отсортировать список активных узлов по количеству отосланных пакетов.
Меню Statistics позволит получить ту же самую информацию и о получателях, а команда Dual отображает одновременно информацию об исходящих и входящих данных для каждого узла. На Рисунке 4 показан результат действия команды Dual. Как и в случае с EtherPeek, полученная информация может быть отсортирована с указанием наиболее активных узлов сети.
(1x1)
Рисунок 4.
EtherPeek показывает, какой узел в сети посылает или получает наибольшее
количество пакетов. Эту информацию можно сортировать по наиболее активным
узлам сети.
Другая чрезвычайно полезная команда меню Statistics - команда Protocol. Она дает гистограмму, показывающую, какие протоколы наиболее активно используются в сети.
Компания AG Group снабдила анализатор EtherPeek функцией интеллектуальной обработки информации о протоколах под названием ProtoSpecs. Одна из областей, где применяется ProtoSpecs, - отображение информации по команде Protocol из меню Statistics. В результате действия ProtoSpecs EtherPeek группирует протоколы по принципу принадлежности к тому или иному семейству, а не высвечивает их аббревиатуры в виде беспорядочного списка. EtherPeek может работать в режиме, когда отображаются только главные семейства протоколов (например IP или AppleTalk). Когда функция ProtoSpecs в состоянии выделить из данного протокола субпротоколы, рядом с основным заголовком протокола высвечивается маленький треугольник. Если щелкнуть по нему мышью, то на экране появятся субпротоколы, вложенные в "родительский" протокол. К примеру, под заголовком протокола IP с некоторым сдвигом показаны протоколы TCP и UDP.
Новая опция в версии 3.1 анализатора протоколов EtherPeek - создание динамической страницы HTML со статистикой трафика, так что статистику можно просматривать с помощью любого браузера Web. Вряд ли допустимо называть данную опцию полноценным интерфейсом браузера Web для EtherPeek (например, EtherPeek нельзя запустить с помощью браузера Web), однако это интересный способ просмотра информации, получаемой с помощью описываемой программы. Новая опция позволяет также просмотреть статистику для удаленных узлов (предполагается, что соответствующие сети соединены через маршрутизаторы).
МОДУЛИ РАСШИРЕНИЯ
Начиная с версии 3.0 EtherPeek использует архитектуру модулей расширения, благодаря которой компания AG Group увеличивает функциональные возможности EtherPeek путем разработки новых модулей вместо полной перестройки ядра программы. Модули расширения для EtherPeek 3.0 позволяют обнаруживать дублирование IP-адресов и вести учет доступа к серверам Web и конференциям Usenet. В версию EtherPeek 3.1 добавлен модуль контрольных сумм для подсчета и проверки контрольных сумм в пакетах AppleTalk и IP. Кроме того, модуль TCP-SYN предупреждает о возможной атаке хакеров, а модуль telnet обеспечивает учет сеансов telnet.
К сожалению, функция проверки контрольных сумм дала ошибочные результаты - счетчик показал, что у пакетов неправильные контрольные суммы, хотя в действительности это было не так. Если внимательно посмотреть на нижнюю часть окна Packet Details, изображенную на Рисунке 3, то можно увидеть, что EtherPeek пометил контрольную сумму как ошибочную, однако все посланные данные были доставлены неповрежденными. По словам инженера AG Group, компания знает об этом просчете и работает над его устранением.
СИСТЕМА ФИЛЬТРАЦИИ
Часто перехватывать все проходящие по сети пакеты не имеет смысла, поскольку в результате буфер заполняется очень быстро. Если пользователю точно известно, что именно его интересует, то в EtherPeek можно установить фильтр для отсева ненужных пакетов. Например, если необходимо устранить неполадки во взаимодействии между рабочей станцией на базе ПК и сервером NetWare, все пакеты, кроме пакетов IPX и SPX, можно игнорировать.
Пакеты можно фильтровать по адресу узла, по протоколу и даже по другим данным пакета (задавая смещения интересующего поля данных при фильтрации). Если проблемы возникают с отдельной рабочей станцией или сервером, то фильтрация по адресу узла окажется чрезвычайно полезной.
Для новичков установка фильтров - одна из наиболее тяжелых задач в освоении анализатора протоколов. Однако команда Make Filter... анализатора EtherPeek предоставляет достаточно простой и легкий способ определения фильтра. Предположим, что в буфере содержится несколько пакетов. Просмотрев содержимое буфера, щелкните мышью по интересующему вас пакету, а затем выберите команду Make Filter... в меню Special. Адреса отправителя и получателя выбранного пакета будут помещены в соответствующие поля диалогового окна Filter Settings, которое при этом откроется; далее вы можете подтвердить или модифицировать содержимое его полей. Причем поле Protocol диалогового окна Filter Settings также будет заполнено - оно будет содержать тип протокола помеченного пакета. (Конечно, фильтрацию по протоколу устанавливать необязательно, но в этом случае нужно обнулить флажок Protocol Filter.) Если все правильно, надо нажать на кнопку OK - и фильтр создан.
Закончив с созданием фильтров и присвоив им имена, пользователь может переводить их в активное или пассивное состояние командой Filters... в меню Capture. По этой команде открывается диалоговое окно, где перечислены активные фильтры. Можно потребовать, чтобы анализатор протоколов EtherPeek собирал только соответствующие (или, наоборот, не соответствующие) данным фильтрам пакеты.
Потренировавшись некоторое время с фильтрацией по образцу, пользователь может попытаться определить свой собственный фильтр (целиком или путем модификации существующего фильтра). В документации есть подробные инструкции по установке фильтров.
Фильтр можно определить по адресу отправителя. Это означает, что EtherPeek будет собирать только пакеты, приходящие из означенного адреса независимо от получателя. И наоборот, фильтр можно определить по адресу получателя, чтобы он собирал только пакеты, направленные по заданному адресу, кем бы этот пакет ни был отправлен. И наконец, вы можете определять пары отправитель/получатель.
Как уже отмечалось, трафик можно фильтровать по определенным байтам или битам внутри пакета. В анализаторе протоколов EtherPeek этот процесс называется "фильтрование по смещению" (offset filtering). Для этого вы должны задать смещение или количество байтов от начала кадра поля данных, а также то, какой байт необходимо искать. Далее необходимо определить маску, используемую при сравнении заданного пользователем шаблона с конкретными байтами, находящимися в пакете. Так, если ввести шестнадцатиричное число 0x80 в качестве маски (в двоичном виде это 10 000 000), то EtherPeek будет сравнивать самый старший бит байта в пакете с самым старшим битом заданного пользователем байта.
Мы можем успокоить тех, кого наш пример испугал, - EtherPeek принесет массу пользы даже тогда, когда фильтрация по смещению не используется. Кроме того, компания AG Group предоставила некоторую помощь в использовании этой опции, включив в комплект поставки некоторое количество готовых фильтров по смещению. Выбрав один из них (фильтр для поиска операций создания новой папки по протоколу AppleTalk Filing Protocol)
и активизировав его, мы начали сбор пакетов. Сначала буфер долго оставался пустым (поскольку не встретилось пакетов, соответствующих критерию данного фильтра). Однако как только мы подали с другого компьютера команду на создание новой папки на одном из томов тестируемого сервера, соответствующий пакет немедленно оказался в буфере. Дважды щелкнув мышью по присланному пакету, мы убедились, что это была действительно операция открытия папки; нам даже удалось выяснить имя, присвоенное этой папке (unnamed folder).
Задав пороговое значение, например, для загруженности сети, можно определить, чтобы данный компьютер Macintosh сообщал о перегрузке сети посредством воспроизведения звукового файла. То же самое EtherPeek проделывает и при сообщении о появлении нового узла сети (который не был виден раньше).
ОКОНЧАТЕЛЬНЫЙ АНАЛИЗ
Анализаторы протоколов являются очень мощным инструментом, и это требует высокой степени подготовки для использования их преимуществ в полной мере. Главная трудность не в понимании того, как он работает, а в освоении анализа протоколов как методологии. Стоит упомянуть, что компания AG Group организовала курсы по диагностированию сети и сняла видеофильмы об анализе протоколов.
Разработчики анализатора протоколов EtherPeek пытались сделать этот программный продукт легким в освоении и использовании. Их усилия не пропали даром. Нельзя сказать, что EtherPeek поможет быстро стать знатоком протоколов, но работать с этим инструментом действительно легко. Простое чтение некоторых пакетов сети позволяет лучше познакомиться с жизнью сети. Если известно, что произошло, существует высокая степень вероятности, что удастся локализовать неполадку и найти способ ее устранения. Попытки же обнаружить неисправность посредством наблюдения видимых симптомов неполадок напоминают игру в жмурки.
Анализатор протоколов EtherPeek - удобное средство выявления проблем в сети. Заложенная в нем возможность наблюдения трафика позволяет периодически проверять "здоровье" сети: определять загрузку отдельных сегментов, а также выяснять, какие из станций производят наибольший поток данных и на какие станции этот поток данных направлен.
Алан Франк - редактор по обзорам журнала Network Magazine. С ним можно связаться по адресу: afrank@mfi.com.
ИТОГ ИСПЫТАНИЙ
EtherPeek 3.1
AG Group, 2540 Camino Diablo, Ste. 200, Walnut Creek, CA 94596, 1-510-937-7900, www.aggroup.comЦена. 995 долларов
Требования к системе. Компьютер Macintosh 68030/25МГц или выше, операционная система не ниже System 7.1 (эта ОС поставляется с компьютерами Power Macintosh). Кроме того, EtherPeek поддерживает широкий спектр интерфейсов Ethernet; среди них встроенные адаптеры Ethernet большинства компьютеров Macintosh, а также ряд адаптеров производства сторонних фирм для шин Nubus и PCI, адаптеры PC Card и адаптеры Ethernet для шины SCSI - список поддерживаемых адаптеров можно найти на ftp-сервере компании AG Group (ftp://ftp.aggroup.com/public/upgrades/).
EtherPeek 3.1 - программный анализатор протоколов для компьютеров Macintosh (к настоящему времени имеется и версия для Windows 95), обеспечивающий возможности декодировки широкого спектра сетевых протоколов и распространяющий замечательную особенность компьютеров Macintosh - удобство в использовании - на анализаторы протоколов.
Установка. Инсталляционную программу можно запускать с дискеты или жесткого диска. Для инсталляции с жесткого диска графический значок для дискеты с EtherPeek следует отбуксировать на значок жесткого диска.
Документация. Хорошо. Программное обеспечение снабжено руководством для версии EtherPeek 3.0 с дополнениями для версии 3.1. Руководство очень содержательное, написано хорошим языком, имеет много иллюстраций с изображениями экранов и примерами. Однако желательно, чтобы в руководстве нашли отражение все изменения, внесенные в последнюю версию.
Гарантия. Нет. Продукт продается "как есть".
Удобство использования. Очень хорошо. Один из наиболее легко осваиваемых анализаторов протоколов. Использует возможности графической среды компьютеров Macintosh.
Надежность/совместимость. Единственная возникшая проблема - встроенный модуль для подсчета контрольных сумм выдавал неверную информацию о наличии ошибок в контрольных суммах для пакетов AppleTalk и IP. Но во время написания нашего обзора компания AG Group уже исправляла эту ошибку. В процессе тестирования несовместимости обнаружено не было. Программный продукт работает со множеством сетевых интерфейсов, в том числе с сетевыми адаптерами на основе шины PCI, шины Nubus, PC Card, адаптерами SCSI для Ethernet и встроенными адаптерами Ethernet большинства компьютеров Macintosh.
Область применения. Очень хороший инструмент для диагностики любых сетей Ethernet, не только на основе компьютеров Macintosh.
Тестовая среда. Два компьютера Macintosh - Quadra 650 (68040) с 16 Мбайт оперативной памяти, с операционной системой System Software 7.1 и встроенным адаптером Ethernet; компьютер Power Macintosh 7500/100 (PowerPC 601) с 48 Мбайт оперативной памяти, операционной системой MacOS 7.6 и адаптером Ethernet 100BaseT DEC 500 для шины PCI (Open Transport and DLPI). Использовалась сеть Ethernet 100BaseT.