Работа с сетевым монитором (часть 4)
В предыдущей части этой серии статей я показал вам, как отфильтровать захват сетевого монитора, чтобы отображались только связи между нужными хостами. Фильтрация разговоров с хостами, которые вас не интересуют, имеет большое значение для избавления от «шума» в файле захвата, но все еще может быть много беспорядка, который вам придется рассортировать, чтобы найти информацию, которую вы интересуют. Например, в нашем примере захвата мы выполнили эхо-запрос на один из других хостов в сети. Стандартная команда PING обычно создает двенадцать пакетов данных. Если вы посмотрите на рисунок A, вы увидите, что даже после фильтрации диалогов с другими хостами отображается гораздо больше, чем двенадцать пакетов.
Рисунок A: Когда вы обычно выполняете захват, будет много беспорядка, который нужно убрать.
Самое страшное в этом захвате то, что все эти пакеты были захвачены в течение примерно пяти или шести секунд. Вы можете только представить, сколько пакетов было бы захвачено, если бы продолжительность захвата была больше или если бы хосты были более загружены, как это, вероятно, имело бы место в реальном мире.
К счастью, есть еще несколько способов избавиться от беспорядка. В данном конкретном случае нас интересуют пакеты, относящиеся к PING. Каждый раз, когда вы запускаете команду PING, Windows вызывает протокол ICMP. В этом случае мы можем отфильтровать список так, чтобы отображались только пакеты, относящиеся к ICMP.
Помните, что мы уже отфильтровали список, чтобы найти правильные хосты. Для дальнейшей фильтрации списка по протоколу щелкните значок «Фильтр» (значок в виде воронки). Когда вы это сделаете, вы увидите диалоговое окно Display Filter, показанное на рисунке B.
Рисунок B. Диалоговое окно «Фильтр отображения» позволяет выполнять фильтрацию по хосту и протоколу.
Для фильтрации по протоколу выберите строку Протокол==Любой и нажмите кнопку Изменить выражение (эта кнопка появится вместо кнопки Изменить оператора, показанной на рисунке). После этого вы увидите экран, аналогичный показанному на рисунке C. Как видно на рисунке, в этом окне перечислены все протоколы, о которых знает сетевой монитор, а также краткое описание каждого протокола.
Рисунок C. В диалоговом окне «Выражения» перечислены все протоколы, о которых знает сетевой монитор.
Чтобы создать фильтр, просто нажмите кнопку «Отключить все». При этом все протоколы, показанные на рисунке, будут перемещены из списка «Включенные протоколы» в список «Отключенные протоколы». Теперь прокручивайте список отключенных протоколов, пока не найдете протокол ICMP. Выберите протокол ICMP и нажмите кнопку Включить. После этого ICMP должен быть единственным протоколом, указанным в списке разрешенных протоколов. Дважды щелкните OK, и захват будет отфильтрован, чтобы показывать вам только интересующие вас пакеты, как показано на рисунке D.
Рисунок D: Вы можете одновременно фильтровать по хосту и по протоколу
Техника, которую я вам только что показал, отлично работает, если вы точно знаете, какие протоколы вас интересуют. Иногда вам может понадобиться просто получить общее представление о том, что происходит в диалоге между двумя хостами, и вы можете не знать, какие именно протоколы будут использоваться. быть вовлеченным в разговор. Даже в таких ситуациях есть методы, которые можно использовать, чтобы избавиться от беспорядка.
Техника, которую я собираюсь показать вам, далеко не так эффективна, как та, которую вы только что видели, но я использовал ее в реальной жизни. Идея этого метода состоит в том, чтобы отфильтровывать «шумовые» пакеты по одному. Прежде чем я покажу вам, как работает этот метод, я просто хочу отметить, что критерии классификации пакета как шума будут сильно различаться от одной ситуации к другой. Чем тщательнее вы хотите исследовать файл захвата, тем меньше пакетов вам нужно будет отфильтровать. С другой стороны, если вы просто хотите получить общее представление о том, что происходит с трассировкой, то обычно будет довольно много пакетов, которые вы можете отфильтровать.
Как вы уже видели, мы использовали компьютер FUBAR для проверки связи с сервером TAZMANIA. Давайте представим, что мы знаем, что эти два компьютера являются машинами, которые нам интересно проанализировать, но давайте также представим, что мы не знаем, что ICMP — это протокол, который используется командой PING.
Если бы это было так, то первое, что мы должны были бы сделать, это отфильтровать список захваченных пакетов, чтобы исключить диалоги с хостами, отличными от тех, которые нас интересуют. Для этого мы будем использовать ту же технику. используется в части 3, и результаты должны выглядеть так, как показано на рисунке A.
Когда мы узнали, что нас интересуют только пакеты ICMP, мы использовали фильтр для исключения всех пакетов, кроме ICMP. В этой технике мы собираемся сделать обратное. Вместо того, чтобы исключать все протоколы, кроме интересующего нас, мы сначала оставим все протоколы включенными, а затем отфильтруем отдельные протоколы, когда поймем, что они нас не интересуют.
Как вы видите на рисунке A, одним из наиболее часто используемых протоколов является протокол TCP. Протокол TCP/IP склонен к фрагментации данных. Часто, когда вы видите пакет TCP, это фрагмент чего-то, что осталось от другого кадра. Если я пытаюсь получить общее представление о том, что происходит в трассировке, самое первое, что я обычно делаю, — это отфильтровываю TCP-пакеты.
Казалось бы, вы должны иметь возможность щелкнуть значок фильтра, чтобы получить доступ к диалоговому окну фильтра отображения. Щелкните строку Protocol==Any и нажмите кнопку Edit Expression. Выберите протокол TCP и нажмите кнопку «Отключить». К сожалению, ошибка в текущей версии Network Monitor не позволяет ему работать должным образом. В качестве обходного пути я составляю список всех протоколов, которые использовались при захвате. Затем я отключаю все протоколы, но включаю протоколы, которые фактически использовались при захвате. Оттуда я могу отключить протоколы, так как считаю, что они не имеют отношения к тому, что я делаю. Например, если вы сравните рисунок E с рисунком A, вы увидите, насколько мне удалось сократить трассировку, отфильтровав протокол TCP.
Рисунок E. Отфильтровывая протоколы, которые не имеют отношения к тому, что вы ищете, вы можете значительно уменьшить количество пакетов, которые вам нужно отсортировать.
Вывод
В этой статье я показал вам два разных метода изоляции нужных вам пакетов. В части 5 я продолжу серию, показав вам, как извлекать данные из отдельного захваченного кадра.