Руководство по захвату сетевого трафика. Часть 5 – Основы устройств TAP (Перевод)

Наибольшее число дампов сейчас записываются при помощи SPAN-портов. Теперь, когда мы знаем о SPAN очень многое (из предыдущей статьи), пришло время узнать об устройствах TAP – когда и как их нужно использовать для записи дампа и что это вообще такое.

ТАР – это сокращение от “Test Access Port”. (В русском языке подобное устройство называется  “ответвитель трафика”. Однако для удобства я предпочту использовать оба варианта – как английское сокращение ТАР, так и русскоязычный вариант – прим. перев.)  Предназначение ТАР – дать вам доступ к трафику, который проходит через определенный канал связи.

При захвате трафика правильно задействовать ТАР – прямой путь к получению максимально точного и достоверного дампа. Обратите внимание на слово “правильно”! Да, именно это я имею в виду – даже с ТАР можно получить некорректный результат, если неправильно его использовать. Естественно, мы рассмотрим эти моменты, а пока посмотрим немного подробнее, что это за устройство, как оно используется.

Вы не ошибетесь, если представите себе ответвитель как небольшую коробочку, которая устанавливается в разрыв кабеля и предоставляет доступ к данным, которые по нему проходят. Наверняка вы слышали термин “человек посередине” (он же “Man in the middle”) – именно это и делает ТАР, причем на физическом уровне (Layer 1). “Установить в разрыв” означает именно физический процесс – вы вытаскиваете кабель из порта, скажем, коммутатора, вставляете его в ТАР, а вторым дополнительным кабелем (не забудьте взять его с собой!) соединяете ТАР с конечным узлом сети.

Рис.1 – Установка полнодуплексного ТАР

Кстати, второй дополнительный кабель должен быть “перевертышем”, но в последнее время это становится все менее необходимым требованием, потому что уже немного осталось сетевых устройств, которые не могут самостоятельно позаботиться об этом (функция Auto MDI-X). Поэтому и прямой кабель в тоже большинстве случаев заработает нормально.

Работа с ТАР/сплиттерами

Давайте рассмотрим, как использовать ТАР в самом общем случае. С самого начала, если вы начнете выбирать, какой именно ответвитель нужен, вы обнаружите, что  существует много их разных видов для разной сетевой инфраструктуры. Самый первый выбор, который нужно сделать – это оптика или медь. Оптические ответвители зачастую называют “сплиттерами“. Функциональность ТАР может быть достаточно богатой и сложной, поэтому выбор конкретной модели может занять много времени и усилий, особенно, если у вас нет достаточного опыта и знаний о том, на что конкретно обращать внимание. Но не переживайте – я собираюсь помочь с этим в текущей статье. Итак, вначале давайте посмотрим, что есть общего у всех ТАР независимо от типа.

Отключение/подключение сети

Ответвитель должен быть установлен в разрыв физического линка (если мы не говорим о “виртуальных ТАР”, которые некоторые вендоры разрабатывают для использования в виртуальных средах, но это скорее маркетинговое название, в большей или меньшей степени). Установка в разрыв означает, что что придется пережить как минимум один цикл прерывания линка. Для того, чтобы отключить ТАР  после захвата, придется пережить второй такой же цикл. Кстати, второй разрыв линка – это одна из причин, по которой мне постоянно приходится покупать для себя новые ответвители: время от времени мои клиенты предпочитают просто купить мой ТАР и оставить его установленным, не убирая вовсе после окончания анализа. Тем самым избежав необходимости ещё раз разрывать линк (а заодно получая возможность постоянного мониторинга).

Cовет: если вы в команде сетевых инженеров, проектирующих датацентр, добавьте ТАР ещё на этапе проектирования и установите изначально – очень часто это единственный способ иметь ответвитель на backbone-линке, потому что со стопроцентной гарантией никто вам не позволит установить его позже, разорвав настолько важный и загруженный линк, по которому постоянно протекает масса данных. Стоимость ТАР в этом случае будет на порядки меньше стоимости high-end коммутаторов и маршрутизаторов, и в то же время он будет очень полезен при необходимости траблшутинга. И если вы выберете надежный, хорошо зарекомендовавший себя бренд, вам не нужно будет переживать о дополнительной точке отказа в системе – ответвители такого порядка имеют резервированный блок питания, а также защиту при аварийном отключении электричества (автоматический режим байпасса). Ничто мне не говорит о профессионализме команды сетевых инженеров больше, чем тот момент, когда я вижу на объекте несколько профессиональных ответвителей, уже установленных в наиболее критичных точках по всей сети.

Истина в пакетах

Использование ТАР – это единственный путь к получению настоящей картины того, что происходит в линке. ТАР исключает возможность потери пакета или манипуляции в случае, если атакующий имеет доступ к вашей сети. Помните: SPAN-порт может “прятать” пакеты по причине компрометации или просто из-за перегрузки. Тогда как абсолютно невозможно манипулировать пассивным полнодуплексным сплиттером и практически невозможно всеми остальными типами ответвителей. Конечно, стоит отметить, что есть и “навороченные” управляемые ответвители с веб- или CLI-интерфейсом, а всем, что управляется, можно и манипулировать. Но – если вы выберете правильный тип ТАР, никто не будет в состоянии спрятать от вас свои вредоносные пакеты. Поэтому наиболее квалифицированные злоумышленники стараются или сымитировать обычный, не вызывающий подозрения трафик, или прячутся в огромном числе пакетов, чтобы их было труднее в этой массе заметить.

Поведение при перебоях с электричеством

Ответвители, которым для работы необходимо питание (практически все “медные”, а также более функциональные оптические с агрегацией линков) обычно имеют механизм защиты на Layer 1  (физическом уровне) для случаев пропадания питания. Это представляет из себя что-то типа реле, которое замыкается при пропадании питания и соединяет линк в обход ТАР (активируется режим байпасса). Такую сработку – щелчок – можно даже услышать, когда вы включаете/выключаете ТАР по питанию.

Рис. 2 – Поведение при сбое питания

Обычно время реакции ответвителя на событие пропадания питания занимает меньше секунды. Но – все-таки, это достаточно неприятный факт, потому что может вызвать обрыв текущих сессий, а также старт какой-либо процедуры схождения сети. Все же, как минимум, это обеспечит возврат сети в исходное состояние без вмешательства персонала. Также имейте в виду, что без питания ТАР перестанет выполнять основную функцию – и вы больше не увидите трафика на его мониторном порту. При этом восстановление питания на ТАР снова вызовет flap/ресинхронизацию линка.

Совет: если вам нужно снова подать питание на медный ответвитель, делайте это во время сервисного окна длиной как минимум 5 минут, потому как продакшн-линк может быть “потушен” слишком надолго для выживания части соединений.

Выходной (мониторный) порт – только на передачу!

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

Рис. 3 – Отбрасывание пакета на мониторном порту

Изредка находится кто-нибудь, желающий, чтобы ТАР имел на борту функцию инжектирования пакетов в сеть. Чаще всего это относится к случаю, когда у вас на мониторном порту висит IDS, и вы хотите отправлять RST-пакеты с него как реакцию на подозрительные подключения. Но это не лучший вариант реализации, в подобной ситуации лучше установить в сети inline-IPS.

Совет: все-таки проверьте, принимает ли ваш ответвитель пакеты на мониторном порту. Некоторые производители предлагают ТАР (ну, или они просто называют их так), которые не отбрасывают входящие пакеты. Это может быть как в виде отдельной функции, так и втихую, не ставя вас в известность. По моему мнению, это или бесполезно (IDS) или попросту вредно (“Man on the side” / “Man in the middle” с использованием сконструированных пакетов).

Полнодуплексные ответвители

Вы могли уже заметить, что на рисунке 1 ТАР подключается немного другим способом, чем SPAN-порт. У вас не один агрегированный линк, а два отдельных. Посмотрим снова:

Рис.4 – Снова полнодуплексный ТАР

Как видим, пакеты по направлению ПК -> коммутатор передаются на один мониторный порт, а встречные пакеты – на другой. Такой ответвитель называется полнодуплексным – каждое направление коммуникации перенаправляется на свой выделенный мониторный порт. Конечно, это значит, на устройстве захвата вам понадобятся два порта для получения полного дампа. Это имеет свои преимущества, но повышает цену. (Стоит отметить, что многие коммутаторы умеют делать так же со SPAN – перенаправлять разнонаправленный трафик в разные порты – прим. перев.) 

Полоса пропускания при полном дуплексе

Запись трафика на прием и на передачу двумя портами означает, что у вас не возникнет перегрузка линка: если, например, гигабитный линк имеет скорость 1 Гбит/с на прием и столько же на передачу, а в сумме 2 Гбит/с – ТАР передает по 1 Гбит/с через каждый из портов. Потому у нас могут появиться дропы только на самом устройстве захвата.

Сплиттеры

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

Рис.5 – Пассивный полнодуплексный сплиттер

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

Если посмотреть на сплиттер, то можно увидеть характеристику “Split Ratio“, то есть, соотношение или коэффициент разделения. Это – процентное количество светового сигнала, которое отражает зеркало. Типичные значения параметра – 70/30 и 50/50, что означает соответственно 70% пройдет на основной линк и 30% на мониторный порт, или, для второго примера – по 50% в каждый из портов. Небольшое предупреждение: я встречал инженеров, которые предпочитали использовать сплиттеры с коэффициентом 90/10, опасаясь, что слишком много сигнала уйдет на мониторный порт и это может повредить основному каналу. И это на самом деле теоретически может произойти для протяженных по расстоянию каналов. Подход 90/10 исключит такое развитие событий, но в то же время оставшихся 10% практически всегда оказывается недостаточно для устройства захвата и оно не может установить соединение. Лично я предпочитаю сплиттеры с соотношением 70/30, и до сих пор у меня не было ни одной проблемы с ними.

Следующая характеристика, которую нужно иметь в виду – тип оптического коннектора сплиттера. Существует достаточно много их видов, не всегда коннекторы на сплиттере и на карте захвата совпадают. Наиболее распространенный сейчас – тип LC, он постепенно заменяет более старые и громоздкие коннекторы типа SC.

Правильная установка сплиттера иногда тоже бывает проблемой – если вы установили его, основной линк поднялся и продолжил нормально работать – это вовсе не означает, что вы уже получаете копию трафика на мониторном порту. Потому что сплиттер вполне возможно установить неправильно – так, что свет будет падать на зеркало с обратной стороны и соответственно отражаться не в том направлении. Если это произошло – отключите кабель основного линка и поменяйте местами RX/TX с обеих сторон. Ну и также это значит, что лучше запланировать эти операции в пределах сервисного окна как минимум 15-минутной продолжительности. Ведь, в отличие от медного ТАР, на установку которого нужна минута, возможно, вам придется делать переподключение и проверку. И снова не забудем о классическом предупреждении – никогда не смотрите прямо на оптический линк, чтобы проверить наличие сигнала – мощность лазера достаточно велика, чтобы повредить зрение!

Интересно, что оптический сплиттер в отличие от медного ответвителя имеет три порта, а не четыре. Это потому, что он использует один физический порт для обоих мониторных каналов:

Рис.6 – Схема портов медного и оптического ТАР

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

Проблема нарушения порядка пакетов

Если вы используете полнодуплексный ответвитель, устройство захвата должно иметь 2 свободных сетевых порта на одной сетевой карте или две сетевых карты. Тогда вы получите каждый из мониторных потоков в отдельный порт, и после этого возникает необходимость пересобрать из двух потоков один. Эта задача сложнее, чем она кажется на первый взгляд. Многие предполагают, что двух самых обычных сетевых карт вполне хватит, и никаких сложностей быть не должно. Но на самом деле все выходит несколько иначе. Проблема же в том, что две сетевые карты в одном ПК далеко не всегда передают захваченные пакеты к ПО захвата моментально:

Рис.7 – Нарушение порядка пакетов в NIC

Как видите, сетевые пакеты с верхней карты передаются процессу захвата быстрее, чем с нижней. Это происходит очень часто – ведь обычные сетевые карты, которые используются для базовой сетевой функциональности, изначально не проектируются для соблюдения микро- или наносекундных зазоров между пакетами. Сетевой стек просто будет как-то сортировать их и передавать уже непосредственно на ПО захвата/анализа. Результат может быть раздражающим:

Рис.8 – Нарушенный порядок пакетов в Wireshark

Присмотритесь внимательно: пакет №2 – это SYN, который прилетел в дамп после SYN-ACK. В пакете №3 находится  “HTTP 200 OK”, который прилетел раньше, чем закончился handshake и раньше, чем был отправлен  GET request. Между некоторыми пакетами отображается отрицательный временной зазор, что является верным признаком нарушенного порядка пакетов в дампе.

Для подобной ситуации есть эффективное решение – использовать утилиту командной строки reordercap.exe, которая входит в комплект Wireshark и находится в папке установки:

[D:\Traces]reordercap "Out of Order Sample.pcapng" "Out of Order Sample Reordered.pcapng"
12 frames, 3 out of order

Результат будет выглядеть так:

Рис.9 – Исправленный при помощи reordercap порядок

Если вы хотите сразу избежать всех этих неприятностей с неправильным порядком пакетов – есть только единственный путь: профессиональная FPGA мультипортовая карта захвата, которая пересобирает поток у себя на борту ещё перед отправкой дальше по стеку. Это именно тот путь, которым я пользуюсь при захвате с полнодуплексного ответвителя. У меня есть несколько устройств для захвата, среди них – пара старых Network General S6040 19″ стоечного форм-фактора, в которые можно ставить до 4-х полнодуплексных карт захвата. Такие карты я собираюсь рассмотреть подробнее в одном из следующих моих постов.

ТАР с агрегацией потоков

ТАР с агрегацией подключаются с основному линку таким же образом, как и полнодуплексные:

Рис.10 – ТАР с агрегацией линков

Но, в отличие от полнодуплексных ответвителей, у них есть только один выходной мониторный порт. То есть, это в чем-то похоже на SPAN-порт – такой ответвитель будет сливать два потока в один перед отправкой на карту захвата. Хорошие стороны такого подхода следующие: для захвата нужна только одна карта и не надо думать про нарушенный порядок пакетов – об этом позаботится сам ТАР.

Но есть и проблемы в таком подходе. Конечно же, это проблема перегрузки выходного мониторного порта. В общем, снова про те же 1Гбит/с на прием, столько же на отдачу… Вы понимаете. Чтобы избежать этой неприятности, можно использовать ТАР с выходным портом, имеющим большую скорость, чем сумма входных портов. Как частность – существуют ТАР, которые подключаются к ПК посредством USB3. На входе они подключаются точно так же, как и все остальные, а выходной поток передают по USB3-кабелю (с макс. скоростью передачи в 6Гбит/с, чего вполне достаточно для мониторинга полнодуплексного гигабитного линка с полной загрузкой).

ТАР с агрегацией технически гораздо сложнее, чем полнодуплексные их коллеги, потому они гораздо дороже и стартуют примерно с 1000 евро. Самые простые полнодуплексные ТАР можно найти за пару сотен евро.

О дешевых ТАР

Я практически уверен, что некоторые из вас качают головой, когда видят примерные цены ответвителей, думая – почему же так дорого? Ну… Это зависит от того, что вы хотите получить от ТАР и где их использовать. Есть возможность найти или самому построить ответвитель за несколько долларов или купить вариант с агрегацией за пару сотен. Причина настолько низкой цены – в данном случае это может быть только медный ТАР и только ограниченный 100 Мбит/с. Также в таких ТАР недостает большинства функций. По моему опыту:

  • в них нет механизма байпасса при пропадании питания, что ограничивает использование (уж точно не надо делать этого в датацентре);
  • они позволяют инжектирование пакетов в сеть.

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

Кстати, если вы видели статьи о самодельных ТАР – помните, подобные вещи могут работать только для 100 Мбит/с линков и не больше! Для гигабитных линков ТАР на коленке соорудить не выйдет. Это потому что принципы работы гигабитных линков сильно отличаются и гораздо сложнее на физическом уровне: все 4 медные пары используются обоими участниками соединения, и устройство захвата не в состоянии определить, кто из участником поместил тот или иной бит в сеть.

Поэтому гигабитные ответвители:

  • гораздо сложнее в реализации, чем 100-мегабитные;
  • нуждаются в согласовании собственных портов с портами конечных узлов, что по сути означает подход Man-in-the-Middle (создать подобное пассивное устройство невозможно);
  • не способны захватить процесс автосогласования (потому что заменяют его своим собственным автосогласованием).

Примеры разных моделей ТАР

Лично я сейчас использую следующие модели ответвителей (на текущий момент NetOptics является частью компании Ixia):

  • NetOptics Teeny TAP 10/100 copper full duplex (небольшой, с резервированным БП)
  • NetOptics TP-CU3 10/100/1000 copper full duplex  (шумный, с резервированным БП)
  • NetOptics 96443 10/100 copper aggregation TAP (шумный, с резервированным БП)
  • NetOptics 96042G-30 fiber full duplex 1Gbps splitter (70/30 коэффициент, пассивное устройство)
  • DATACOM FIBERtap F50/50/50-M 1005 fiber full duplex 1Gbps splitter (50/50 коэффициент, пассивное устройство)
  • Garland Technology P1GCCA 100/1000 full duplex / aggregation / SPAN copper TAP (конфигурируется DIP-переключателями, бесшумный, хорош для захвата на рабочем ПК и для FPGA-карт)
  • ProfiTAP 10/100/1000 ProfiShark 1G link aggregation copper TAP (подключение по USB3, бесшумный, хорош для захвата на рабочем ПК, конфигурируется программно)
  • DualComm ETAP 2306 (медные и SFP-порты, полнодуплексный или с агрегацией, бесшумный, питание по USB).

Как я, так и другие члены нашей команды сталкивались с очень негативным опытом при использовании NetOptics (iTAP 1GBit медный, с LCD-дисплеем) и со старым DATACOM ТАР с агрегацией линков, поэтому мы больше их не используем. Мое правило: чем меньше наворотов в ТАР, тем он лучше. В данный момент я предпочитаю устройства от Garland Technology, Dualcomm и ProfiTAP. Они портативны, конфигурируемые, бесшумны и надежны. Какой именно из них – зависит от конкретной ситуации.

UPD.: только что обнаружил, что Garland P1GCCA не поддерживает режим 10Мбит/с. Новый P1GCCAS вроде бы устраняет этот недостаток, но так как у меня его нет, проверить не могу.

Руководство при покупке

Если вы собираетесь купить ТАР/сплиттер, обратите внимание на следующие параметры:

  • Тип коннектора “боевого” линка (зачастую это LC)
  • Тип и коннектор мониторного линка (можно купить ТАР, у которого на входе оптические линки, а мониторный порт – медный или наоборот)
  • Тип оптики – single mode или multi mode. Убедитесь, что покупаете нужный, а также проверьте диаметр (у меня есть несколько ТАР с диаметром 50/125 мкм, в то время, как у большинства диаметр 62.5/125 мкм)
  • Коэффициент разделения. Чаще всего я пользуюсь 70/30, а иногда – 50/50
  • Если сомневаетесь – спросите совета у самого производителя. Они знают собственные продукты очень хорошо и будут всегда рады помочь с выбором.

Установка ТАР/сплиттеров

Вот некоторые мои мысли по данному предмету:

  • всегда проверяйте новый ТАР перед установкой. Проверка должна включать в себя как минимум следующее: 1) пробный захват на скорости, с которой вы собираетесь работать; 2) поведение при пропадании питания; 3) поведение при восстановлении питания (неплохо знать заранее, сколько требуется времени на восстановление линка, чтобы потом не трястись на протяжении 15 секунд, думая, что тут происходит); 4) поведение мониторного порта при попытке инжектирования в него пакетов.
  • для сплиттеров, проверьте и поменяйте RX/TX в случае, если рабочий линк в порядке, но на мониторном порту ничего нет, или есть только одно направление трафика. Если вы устанавливаете сплиттер в течение сервисного окна, проверяете только рабочий (но не мониторный) линк и думаете “ну, все получилось”, а уже по истечении окна обнаруживаете, что мониторный линк не работает – это не очень радостно.
  • повторюсь, чем меньше наворотов в ТАР – тем лучше. Ответвители с красочными функциями по управлению / выводу статистики / с наличием LCD-дисплея имеют тенденцию сбоить гораздо чаще, чем самые простые полнодуплексные.
  • практически невозможно оспаривать результаты, полученные с помощью полнодуплексных оптических сплиттеров (если само устройство захвата достаточно быстрое и не теряло пакеты). Это истинная картина происходящего в сети, не больше и не меньше.
  • самые дешевые ТАР или те, что я называю “ТАР в кавычках” (не всё, что производитель называет ТАР, им является) практически всегда способны преподнести неожиданные сюрпризы. Всегда всесторонне проверяйте их перед тем, как поместить в разрыв критически важного линка. Обычно они вполне сгодятся для захвата на линках рабочих станций, где вы не особо заботитесь о высочайшей точности и надежности.
  • использование полнодуплексных ответвителей совмесно с FPGA-картой захвата – это мой предпочитаемый способ, но он не везде возможен.
  • убедитесь, что ТАР не допускает инжектирование пакетов в мониторный порт. Это облегчит общение с техническим персоналом заказчика. Очень часто кто-то из них подходит к вам и произносит: “это вы сейчас захватываете трафик, да? Вы нам вносите нарушения в сеть, из-за вас у нас проблемы!”
  • в ситуации, когда вы подключаете ТАР к РоЕ-порту, убедитесь, что он может работать в таком режиме. Я осознал это, когда подключал NetOptics TeenyTap в 100Мбит/с VoIP-phone PoE линк в первый раз, ещё не зная, что сейчас будет. Слава богу, ничего не задымилось!

Заключение

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

Захват трафика при помощи ТАР – это наиболее точный способ получения сетевых пакетов. И среди самих ТАР лидерство по точности занимает полнодуплексный пассивный оптический сплиттер – он просто передает вам часть света, никаким образом на него не влияя – не внося задержек, модификаций и не производя никакой агрегации.

Вот ситуации, когда необходимо использовать ТАР для получения наилучших результатов (если этот список вам покажется на удивление знакомым – так и есть, это тот же список из поста про SPAN, но наоборот):

  • поиск устройства, виновного в потере пакетов
  • определение точных временных характеристик, особенно при общей задержке в пределах 50мс
  • доказательство, что пакет был в линке, к которому подключен конечный узел
  • в случае, если загрузка слишком велика для мониторного порта
  • forensics, случаи, когда вы не можете себе позволить потерю ни одного пакета

После того, как вы решили, что без ТАР не обойтись, следующий шаг – обдумайте ваше устройство захвата. Если вы остановились на варианте ТАР с агрегацией – убедитесь, что не будет перегрузки мониторного порта. Если вы остановились на варианте полнодуплексного ТАР – оцените возможность нарушения порядка прибывания пакетов, а также необходимость наличия двух свободных портов на устройстве захвата. Для меня выбор полнодуплексного ТАР также означает необходимость использования профессиональной FPGA-карты захвата.

Статья переведена и опубликована с разрешения автора (Jasper Bongertz) только для сайта packettrain.net 

Использование материала статьи без согласования запрещено!

Оригинал статьи находится по адресу: https://blog.packet-foo.com/2016/12/the-network-capture-playbook-part-5-network-tap-basics/

This article has been translated and published with author’s (Jasper Bongertz) permission. For packettrain.net website only.

Original article can be found at: https://blog.packet-foo.com/2016/12/the-network-capture-playbook-part-5-network-tap-basics/

Поделиться
  • 13
  •  
  • 3
  •