Лабораторная работа №5

Изучение средств мониторинга сети и производительности системы

 

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

Краткие сведения из теории.

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

В состав Windows Server 2003 входит утилита под названием "Сетевой монитор". В упомянутой ОС данная утилита представлена как Network Monitor Light, полная же версия есть в пакете SMS (System Management Server). Сетевой монитор - это инструмент, который часто используется в качестве последнего способа разрешения различных проблем. Он применяется для получения статистики оценки загрузки каналов сети, пакетной передачи кадров, а также для захвата и дешифровки данных сети с целью последующего анализа. После установки этот инструмент окажется в Administrative Tools. Первым, что вы увидите при запуске Сетевого монитора, будет окно захвата (Capture Window).

 

Окно захвата делится на четыре части: графиков (Graph), общей статистики (Total Statistics), статистики сеанса (Session Statistics) и статистики станции (Station Statistics).

1. Графики (левый верхний угол) показывают текущую активность сети в виде шкалы.

2. Общая статистика (правый верхний угол) показывает общие данные с момента начала захвата. В полной версии, поставляемой в SMS, на данной панели показана полная статистика захвата кроме отфильтрованных вами кадров (см. ниже), а в Light показана полная статистика, но захвачено лишь столько пакетов, сколько показано в поле "Захваченной статистики" (Captured Statistics) панели "Общей статистики", опять же при условии, что не выполняется фильтрация.

3. Статистика сеанса (левый нижний угол) содержит информацию об отдельных сеансах между двумя узлами.

4. Статистика станции (самая нижняя панель) показывает общую статистику по кадрам, посланным-принятым отдельными узлами. Здесь, например, можно на вскидку определить, кто перегружает вашу сеть.

Для начала захвата кадров есть кнопка Start Capture (Начать Захват) на панели инструментов или F10. Для работы с сетевым монитором сетевой адаптер должен поддерживать драйвер NDIS 4.0 или выше (как правило сейчас поставляется со всеми картами). При использовании нескольких плат адаптеров вам будет предложено выбрать, на какой из них выполнять перехват.

После щелчка на кнопке Stop and View Captures (Остановить и просмотреть захваченные данные) или F12 на экране появится окно просмотра кадров Frame Viewer.

 

Оно делится на три части: панель сведений, панель детальной информации и HEX (шестнадцатиричная) панель.

1. Панель сведений отображает список захваченных кадров. Указывается порядковый номер кадра, время, прошедшее с начала захвата, локальные адреса MAC – исходный и места назначения – это аппаратные адреса канального уровня. Далее идет используемый протокол и текстовое описание. После щелчка на любом кадре откроются следующие две панели окна просмотра кадров.

2. Панель детальной информации содержит, так сказать, внутренности кадра – описание его заголовков на английском языке в порядке принадлежности их к уровням модели OSI, начиная с физического и выше. Вот здесь без необходимых теоретических знаний вы не уловите сути и не сможете провести детальный анализ.

Hex панель позволяет увидеть данные кадра в виде текста ASCII. Здесь, например, можно увидеть гуляющие по сети незашифрованные пароли.

Иногда Сетевой монитор используют в качестве снифера для неблаговидных целей. В этом случае можно мгновенно вычислить пользователя, нажав на кнопку Identify Network Monitor Users (Определение пользователей сетевого монитора), находящуюся в меню Tools (Сервис). Данная опция показывает текущие сеансы сетевого монитора в вашей сети и даже его статус (capture или running).

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

Параметры захвата можно задать и по-другому. Если захватывать не весь кадр, а только часть (заголовки без остальных данных), то резко снизится потребность в больших объемах буфера. Выставить параметры захвата и объем буфера можно в элементе Capture Buffer Settings (Параметры буфера захвата) меню Capture. Напомню, что заголовки Ethernet в сети TCP/IP обычно длиной в 60 байт.

И наконец - фильтры захвата. Тоже хороший способ сократить объем информации. Найти их можно во вкладке Filter (Фильтр) меню Capture.

 

Выбирая кадры определенного типа, вы быстрей доберетесь до сути – фильтровать можно по протоколам, адресам и данным. Естественно, профессионалы делают свои сложные фильтры при помощи триггеров булевой логики. Удачные сложные фильтры рекомендуется сохранять для решения, так сказать, типовых задач – подобных проблем возникающих в будущем. Захватываемые протоколы можно изменить в окне Capture Filter (Фильтр захвата), дважды щелкнув на элементе SAP/ETYPE = Any SAP or Any ETYPE’s, появится диалоговое окно Capture Filter SAP’s and ETYPE’s.

Использование фильтров сбережет буферные ресурсы и увеличит время реакции системы. Задание адресов тоже позволяет избежать захвата ненужной информации, генерируемой хостами. Адреса отображаются в окне Address Expression (Адреса) двойным кликом на элементе Address Pairs (Адресные пары) во все том же окне Capture Filter. Адреса можно как добавлять, так и исключать. И последний пункт - Pattern Matches (Фрагменты данных). Фрагменты данных – это просто образец данных, которые вы ищете в захватываемых кадрах в Hex или в ASCII формате. Необходимо также указать смещение (offset) в байтах, оно определяет местоположение внутри кадра.

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

 

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

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

Ко всему прочему в панели Expressions (Выражения) окна Display Filter (Фильтр Отображения) вкладки Display вы сможете выбрать нужные и/или исключить ненужные свойства протокола FTP и других протоколов.

После задействования фильтра, появляются только те кадры, которые удовлетворяют условиям фильтрации.

Создавая сложные фильтры, можно быстрей докопаться до сути. Это очень похоже на поиск важной информации в некоторых поисковиках - чем полнее запрос, тем меньше ненужных ссылок. Естественно, можно опять воспользоваться элементами логики при создании фильтра.

Есть некоторые нюансы в использовании фильтров отображения и фильтров захвата:

1. Фильтр отображения позволяет определять только три адресные пары. Таким образом, при большом количестве сеансов фильтры захвата окажутся непригодными в отличии от фильтров отображения.

2. Фильтры отображения позволяют неограниченно использовать операторы OR, AND, NOT при создании условий поиска по фрагментам данных, а фильтры захвата - лишь AND.

3. При использовании фильтров захвата активно используется CPU, а при полном захвате - объемы буфера.

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

В меню Capture есть очень интересная опция Addresses, поговорим теперь о ней. Это база данных адресов, которые сетевой монитор нашел в вашей сети, и это очень полезная база данных. В ней вы увидите такие данные как имя NetBIOS, локальный адрес MAC. Их можно изменять, но это не рекомендуется, лучше создавайте описательное имя лишь для машин, у которых нет имени NetBIOS (напр. «Макинтошей»). Как только вы заведете его в базе, оно будет и в остальных окнах сетевого монитора. Поля SRC MAC Addr и DST MAC Addr (Исходный локальный адрес и локальный адрес места назначения) в окне просмотра захвата можно редактировать напрямую, выбрав в контекстном меню Edit Address (Изменить адрес). Там можно наделить адрес понятным именем и комментариями, база данных автоматически пополнится, а вам станет легче идентифицировать рабочие станции и разрешать непонятные имена.

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

Начнем с расшифровки IP заголовка:

Version: 4 bits (Версия 4 бита). Поле версии указывает на формат заголовка сети.

IHL – Internet Header Length: 4 bits (Длина заголовка Internet: 4 бита) Это длина заголовка в 32-битном формате, указывает на начало данных в пакете. Минимальное значение для корректного заголовка – 5.

Type of Service: 8 bits (Тип службы: 8 бит). Тип службы абстрактные параметры качества желательного обслуживания данных, эти значения используются в качестве параметров службами управления передачей датаграмм. Короче говоря, с помощью этого параметра можно регулировать приоритет обслуживания у соответствующих служб. Параметры следующие:

Бит 0-2 – Приоритет;

Бит 3 – 0=Нормальная задержка, 1=Слабая задержка;

Бит 4 – 0= Нормальная производительность, 1=Высокая производительность;

Бит 5 – 0=Нормальная надежность, 1=Высокая надежность;

Бит 6-7 – Зарезервировано.

Вот такой интересный параметр TOS. Используется он, кстати, в такой продвинутой сетевой технологии как ATM для эффективного управления задержками и производительностью. Едем дальше…

Precedence (Приоритетность). Тип службы, используемой для интерпретации датаграммы во время передачи датаграммы в сети. Это тоже приоритетность, однако предназначена она для управления соединениями только в пределах конкретной сети. В глобальной сети можно использовать только один параметр: 110 – Управляется Глобальной сетью.

Total Length: 16 bit (Общая длина: 16 бит) Эта длина датаграммы измеряемая в октетах. Все узлы обязаны быть готовы к приему датаграмм в 576 октетов – не случайное число: 64 октета заголовок (типичный равен 20) и 512 октетов блок данных.

Identification: 16 bits (Идентификация: 16 бит). Это идентификатор пакета, определяемый отправителем, помогает собрать датаграмму целиком, если пакет фрагментирован.

Flags: 3 bits (Флаги: 3 бита). Существуют следующие значения:

Bit 0-5: зарезервированный; должен быть нулевым.

Bit 6: 0=May Fragment (может фрагментироваться); 1=Don’t fragment (не фрагментировать).

Bit 7: 0=Last fragment (последний фрагмент); 1=More fragment (будут еще фрагменты).

Fragment offset: 13 bits (Смещение фрагмента: 13 бит). Это поле указывает, где в датаграмме расположен текущий фрагмент.

Time to Live: 8 bits (Время жизни: 8 бит). Это время жизни датаграммы в сети. Если это поле равно 0, датаграмма уничтожается. Оно уменьшается на единицу каждый раз при обработке заголовка, например маршрутизатором, в общем, по достижению определенного количества хопов, либо по окончанию времени (что быстрей закончится) датаграмма будет уничтожена.

Protocol: 8 bits (Протокол: 8 бит). Указывает протокол следующего уровня.

Header Checksum: 16 bits (Контрольная сумма заголовка: 16 бит). Название говорит само за себя.

Source address: 32 bits (Исходный адрес: 32 бита). Адрес источника.

Destination address: 32 bits (Адрес назначения: 32 бита).

Padding: variable (Дополнение: переменная). Дополняется к заголовку, чтобы гарантировать, что он имеет длину в 32 разряда.

Теперь посмотрим TCP пакет:

Source port: 16 bits (Исходный порт: 16 бит). Номер исходного порта определяет порт отправителя.

Destination port: 16 bits (Порт назначения: 16 бит). Порт получателя.

Sequence number: 32 bits (Порядковый номер: 32 бита). Порядковый номер первого октета данных в сегменте (за исключением бита SYN). Если SYN присутствует, то порядковый номер – это начальный порядковый номер (ISN – Initial Sequence Number), и первый октет данных определяется как ISN + 1.

Acknowledgment number: 32 bits (Номер уведомления: 32 бита). Если используется бит уведомления ACK, то это поле содержит порядковый номер следующего сегмента, которого ожидает отправитель.

Data offset: 4 bits (Смещение данных: 4 бита). Это номер 32 разрядных слов и указывает он, где начинаются данные.

Reserved: 6 bits (Резервирование: 6 бит). Резерв для дальнейшего использование должен быть нулевым. Это резерв часто используется разработчиками для разработки сетевых приложений или своих расширений TCP.

Flags: 6 bits (Флаги: 6 бит слева на право). Флаги – это биты управления RFC 791. Этот список начинается с поля указателя Urgent и заканчивается данными из установки отправителя No:

1. URG. Определение поля указателя срочности.

2. ACK. Определение поля уведомления.

3. PSH. Функция PUSH.

4. RST. Сброс соединения.

5. SYN. Синхронизация. С этого флага начинается установка соединения.

6. FIN. Нет больше данных для отправки.

Window: 16 bits (Окно: 16 бит). Это номер октетов данных, начинающийся с указанного в поле уведомления ACK, которое отправитель сегмента желает принимать.

Checksum: 16 bits (Контрольная сумма: 16 бит).

Urgent Pointer: 16 bits (Указатель срочности: 16 бит). Это поле сообщает текущее значения указателя срочности в виде положительного смещения порядкового номера в этом фрагменте. Указатель срочности определяет порядковый номер октета срочных данных, естественно, если есть флаг URG.

Options: variable (Опции: переменная). Опции могут занять пространство в конце заголовка кратное 8 битам. Есть два формата опций:

1. Октет настройки.

2. Октет настройки, октет длины настройки, октет данных настройки.

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

Разряд 0 – конец списка настроек. Используется в конце всех настроек и только тогда, когда конец настроек не совпадает с концом заголовка TCP.

Разряд 1 – Отсутствие действия. Этот код добавляется между настройками, для выравнивания начала следующей настройки по границе слова.

Разряд 2 – Максимальный размер фрагмента. Эта настройка определяет максимальный приемлемый размер принимаемого фрагмента. Это поле представлено только в запросе на соединение SYN. Если настройки нет, значит, допустимы любые фрагменты.

Padding: variable (Дополнение: переменная). Дополнение заголовка TCP как в случае с IP заголовком используются для выравнивания относительно 32 разрядной границы. Состоит из нулей.

Большую часть представленной информации можно почерпнуть из RFC (в частности для данной статьи - RFC791, RFC793).

 

Последовательность выполнения работы:

1. Установите системный и сетевой монитор, если они еще не установлены в системе (обычно устанавливаются по умолчанию).

2. Запустите сетевой монитор

3. Осуществите захват кадров в течение нескольких секунд

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

5. Настройте компьютер на захват кадров, начните захват и тутже выполните утилиту Ping на соседний ПК. После выполнения утилиты сразу остановите захват.

6. Проанализируйте содержимое захваченных пакетов

7. Настройте сетевой монитор только на захват кадров с соседнего хоста

8. и выполните аналогичный захват.

9. Проанализируйте содержимое пакетов (IP заголовков, TCP/UDP заголовков, содежимое в соответствии со структурой пакетов)

10. Выполните аналогичный захват с выполнением утилиты Ping без фильтра захвата пакетов

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

12. Закройте окно сетевого монитора и запустите системный монитор (Администрирование | производительность) и просмотрите счетчики загруженности процессора, памяти, DNS сервера, активность использования физического диска.

13. Настройте оповещение администратора по сети при превышении загруженности процессора более 50 %.

14. Настройте регистрацию загруженности процессора в системном журнале.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: