Пилотный проект. ИБшники придумали зеркалировать RSPAN трафик в анализатор трафика. Перед покупкой железа и софта нужно проверить, заработает ли вообще всё это дело. Поэтому зеркалировать трафик будем на виртуальную машину. Работаем в vCenter 7.
Зеркалирование портов делается для анализа трафика. Раньше, когда вместо коммутаторов стояли обычные хабы, зеркалировать трафик было просто. Слушаешь всё на своём порту и видишь все пакеты. С появлением коммутаторов перехватить чужие пакеты стало сложнее, и анализировать трафик тоже стало сложнее. Вендоры решили эту проблему, разработав различные механизмы зеркалирования трафика. Функция Port Mirroring (зеркалирование портов) позволяет копировать кадры, принимаемые и/или отправляемые портом-источником или группой портов-источников на порт-получатель коммутатора, к которому подключен компьютер с установленным анализатором трафика.
Зеркалирование может быть локальным (в пределах одного коммутатора: SPAN — Switch Port Analyzer) или удалённым. При удалённом зеркалировании порт-источник и порт-получатель находятся на разных коммутаторах и мониторинг выполняется через коммутируемую сеть. Такой мониторинг называется RSPAN — Remote Switch Port Analyzer.
Идея простая. Сетевики зеркалируют нужный им трафик и направляют на определённый порт коммутатора. В моём случае сразу на два порта в LACP. Трафик тегированный, завёрнут в VLAN 222. Моя задача: прокинуть этот трафик на виртуальную машину.
Подготовка гипервизора
Проект временный, всю систему зеркалирования тоже буду делать временной, чтобы потом без проблем разобрать и удалить. На гипервизор, расположенный поближе к портам с зеркалируемым трафиком, устанавливаю дополнительную сетевую карту с двумя SFP+ портами. Подключаю к ней патчкорды, ведущие к зеркальным портам коммутаторов.
Линк есть, на хосте появились две новые сетевухи 10G.
Распределённый коммутатор
В кластере с целевым хостом создаю новый распределённый коммутатор.
vCenter 7 — создаём Distributed Switch
Открывается мастер создания распределённого коммутатора. Указываю имя. Next.
Указываю версию коммутатора, выбираю 7.0.0. Next.
Количество аплинков — 2, у меня два порта. Network I/O Control — Enabled. Создаю порт-группу по умолчанию, назову её RSPAN. Next.
Finish.
Коммутатор создан. Двигаюсь дальше.
Сетевики собрали на портах LACP, поэтому в коммутаторе тоже нужно собрать LACP. Configure → Settings → LACP.
vCenter 7 — LACP в Distributed Switch
+NEW. Открывается мастер создания Link Aggregation Group.
Пусть называется rspan_lag1, два порта. Режим пассивный, балансировка по IP адресам. OK. LACP собран.
Настройка группы портов
Редактирую созданную ранее порт-группу RSPAN. Port binding — Static binding. Port allocation — Fixed.
VLAN type — None.
MAC address changes — Reject. Forged transmits — Reject. Promiscuous mode — Accept.
Promiscuous mode или promisc mode — так называемый "неразборчивый" режим, в котором сетевая плата позволяет принимать все пакеты независимо от того, кому они адресованы.
В разделе Teaming and failover делаю активным ранее собранный LACP. OK.
Группа портов настроена.
Подключение гипервизора к распределённому коммутатору
Перехожу к нашему коммутатору, добавляю хост. Add and Manage Hosts...
Add hosts. Next.
Select hosts. + New hosts...
Выбираю подготовленный ранее гипервизор. OK.
Next.
Теперь нужно прицепить сетевые адаптеры. Это у меня добавленные ранее vmnic6 и vmnic7.
Выбираю vmnic6. Assign uplink.
Назначаю ему первый порт от настроенного ранее LACP. OK.
Выбираю vmnic7. Assign uplink.
Назначаю ему второй порт от настроенного ранее LACP. OK.
Next. Next. Next. Finish.
Гипервизор подключён к распределённому коммутатору.
Линки есть.
Пускаем RSPAN трафик на виртуальную машину
Создаю на подготовленном гипервизоре виртуальную машину нашего пилотного проекта. Накатываю ОС, настраиваю. На нужный сетевой адаптер подключаю сеть RSPAN, которую я создал на распределённом коммутаторе. OK.
Перехожу к нашему коммутатору. Configure → Settings → Port Mirroring. Добавляю новую сессию. + New...
Выбираю тип сессии Remote Mirroring Destination. Next.
Next.
Выбираю источник трафика. +.
В качестве источника трафика указываю VLAN 222, именно в нём сетевики подают RSPAN трафик. Next.
Выбираю получателя трафика. +.
Получатель у меня один, пилотная виртуалка. Выбираю, OK.
Next.
Finish.
Сессия добавлена.
Если я ничего не напутал, то поток RSPAN трафика перенаправлен с коммутаторов по VLAN 222 на второй сетевой адаптер пилотной виртуальной машины.
Немного про SPAN
Зеркалирование мы настроили, это хорошо. Однако, при использовании SPAN, RSPAN или ERSPAN следует помнить, что технология SPAN не является масштабируемой. Если немного углубиться в историю, то мы увидим, что сама возможность зеркалирования трафика на определённый порт коммутатора изначально использовалась вендорами для тестирования своих устройств. Это уже потом появилась идея использовать эту фичу для целей информационной безопасности. Если вооружиться калькулятором, то легко можно посчитать, что ни один аплинк, на который зеркалируется трафик, не выдержит потока данных, генерируемых на всех портах коммутатора при большой нагрузке. А RSPAN создаст ещё большую нагрузку при передаче SPAN трафика.
Cisco предупреждает, что коммутатор обрабатывает данные SPAN с более низким приоритетом, чем обычные данные от порта к порту. Если какой-либо коммутатор/маршрутизатор под нагрузкой будет выбирать между передачей обычного трафика и SPAN-трафика, то зеркальные кадры будут произвольно отбрасываться. И мы не увидим полную картину в анализаторе трафика.
Таким образом, использование SPAN трафика в вашей сети целесообразно только при невысокой общей сетевой нагрузке. При большой нагрузке уже имеет смысл смотреть в сторону TAP (Test Access Point) устройств типа оптических разветвителей. При этом TAP устройство создает полную 100% копию двунаправленного сетевого трафика.
TAP (Test Access Point) — это простое, преимущественно пассивное, устройство, которое напрямую подключается к кабельной инфраструктуре сети между двумя сетевыми устройствами. Весь трафик проходит через него. Используя внутренний физический (оптический) или логический (электрический) делитель, TAP ответвляет копию данных для мониторинга, в то время как исходные данные беспрепятственно передаются по сети.