Зеркалирование трафика

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 21:40, 17 июня 2017.

Зеркали́рование трафика (англ. port mirroring) — технология дублирования пакетов одного порта сетевого коммутатора (или отдельной VLAN) на другом. Большое количество управляемых сетевых коммутаторов позволяют дублировать трафик от одного или нескольких портов и/или VLAN на отдельно взятый порт.

Функция зеркалирования впервые появилась в коммутаторах из-за существенных отличий в принципах их работы от концентраторов. Концентратор, работающий на физическом уровне сетевой модели OSI, при получении сетевого пакета на одном порту отправляет его копии на все остальные порты. Потребность в зеркалировании в этом случае отсутствует. Коммутатор, работающий на канальном уровне сетевой модели OSI, в начале своей работы формирует таблицу коммутации, в которой указывается соответствие MAC-адреса узла порту коммутатора. Трафик при этом локализуется, каждый сетевой пакет отправляется только на нужный порт назначения.

Применение технологии

Зеркалирование трафика является одним из самых распространенных и эффективных методов диагностирования в коммутируемых сетях. Он позволяет устройству мониторинга получать весь проходящий через коммутатор трафик, которым обмениваются несколько станций. Чаще всего данный метод используется в сочетании с анализатором протоколов. Мониторинг трафика используется в целях оценки безопасности, анализа производительности/загрузки сетевого оборудования с применением аппаратных средств, для записи VoIP.

Зеркалирование трафика на оборудовании различных производителей

Cisco

В оборудовании Cisco технология зеркалирования называется SPAN — Switch Port Analyzer (работает в пределах одного коммутатора) и RSPAN — Remote Switch Port Analyzer (зеркалирует трафик между коммутаторами)[Источник 1]. Порт приемника зеркалированного трафика имеют ряд ограничений, такие как:

  • При настройке порта назначения (Destination SPAN/RSPAN) его конфигурация будет перезаписана. При удалении SPAN с порта, конфигурация восстанавливается.
  • При настройке Destination SPAN порта, который находится в Etherchannel, он будет удален из него. Если порт был routed (L3), то будет переписаны настройки этого порта.
  • Destination SPAN порт не поддерживает : port security, 802.1x аутентификацию, private VLAN.
  • Destination SPAN порт не поддерживает Layer 2 протоколы, такие как: CDP, Spanning Tree, VTP, DTP и другие.

Зеркалирование можно проводить при выполнении следующих условий:

  • Портом исходящего трафика (Source SPAN/RSPAN) может быть один или более портов коммутатора, или VLAN, но только один из вариантов, т.е. или VLAN или порт/порты.
  • Возможно до 64 Destination SPAN портов, которые могут сконфигурированы на коммутаторе.
  • Layer 2 и Layer 3 порты могут быть сконфигурированы как Source SPAN порт, так и Destination SPAN порт.
  • В случае когда суммарный трафик на source port превышает возможности порта Destination возникает перегрузка интерфейса.
  • В пределах одной сессии SPAN, нельзя доставить трафик до Destination SPAN из Source SPAN на локальном коммутаторе и с Source RSPAN на другом коммутаторе. Это ограничение связано с тем, что нельзя смешивать порты и VLAN в SPAN технологиях (а RSPAN работает по так называемому RSPAN VLAN).
  • Destination Port не может быть Source Port и наоборот.
  • Только одна сессия SPAN/RSPAN может доставлять трафик на единственный порт destination.
  • При настройке порта как Destination, он перестает работать как обычный Layer 2 порт, т.е. он предназначен только для принятия зеркалированного трафика.
  • Trunk порты так же могут использоваться как Source Port, таким образом все VLAN, которые есть в данном trunk порте по-умолчанию находятся под наблюдением. Можно указать конкретные VLAN, которые необходимо учитывать, с помощью команды filter vlan.
  • При использовании VLAN как Source SPAN существует ограничение: если трафик передается с другого VLAN, то такой трафик в SPAN не попадет.

Зеркалирование трафика на коммутаторе Cisco 2960[1]

Для удаления существующей сессии зеркалирования используется глобальная команда настройки no monitor session session_number. Для удаления порта исходящего трафика, порта назначения или VLAN используются команды no monitor session session_number source {interface interface-id | vlan vlan-id} и no monitor session session_number destination interface interface-id[Источник 2].

Пример ниже показывает, как настроить сессию зеркалирования трафика порта-источника на порт назначения (с идентификатором 1). Сначала удаляется любая существующая SPAN сессия и затем двунаправленный трафик зеркалируется из порта-источника Gigabit Ethernet 1 на порт назначения Gigabit Ethernet 2.

Switch(config)# no monitor session 1
Switch(config)# monitor session 1 source interface gigabitethernet0/1
Switch(config)# monitor session 1 destination interface gigabitethernet0/2
Switch(config)# end

Просмотр текущих сессий зеркалирования может быть выполнен командой:

Switch(config)# show monitor session 1

Отключение зеркалирования трафика, приходящего на порт 1, можно сделать следующим образом:

Switch(config)# no monitor session 1 source interface gigabitethernet0/1 rx

При этом продолжится зеркалирование трафика, отправляемого с порта 1. Отключение зеркалирования трафика, отправляемого с порта 1:

Switch(config)# no monitor session 1 source interface gigabitethernet0/1 tx

Пример ниже показывает настройку сессии зеркалирования для наблюдения за получаемым трафиком всех портов, находящихся в VLAN 1 - 3, и его отправку на порт назначения Gigabit Ethernet 2. Затем конфигурация изменяется для наблюдения за всем трафиком портов в VLAN 10.

Switch(config)# no monitor session 2
Switch(config)# monitor session 2 source vlan 1 - 3 rx
Switch(config)# monitor session 2 destination interface gigabitethernet0/2
Switch(config)# monitor session 2 source vlan 10
Switch(config)# end

При указывании VLAN в качестве порта назначения можно дополнительно использовать параметр encap ingress vlan_id. В этом случае при наличии межсетевого экрана Cisco ASA подозрительные соединения будут закрываться.

Mikrotik

Поскольку зеркалирование трафика - это аппаратная функция коммутатора (или маршрутизатора со встроенным чипом коммутации), то она доступна не во всех моделях оборудования MikroTik. Актуальная информация о поддержке функции зеркалирования находится на официальном сайте[2] производителя. Для наличия функции зеркалирования также достаточно наличия в блок-схеме устройства чипа коммутации. Им, например, обладают устройства RB941-2nD[3], CCR1009-8G-1S-PC[4], CCR1009-8G-1S-1S+PC[5]. Устройства серии CRS (англ. Cloud Router Switch) обладают широкими возможностями в настройке функции зеркалирования. В частности, для таких устройств существует три вида зеркалирования (Port Based, VLAN Based, MAC Based)[Источник 3].

При настройке отслеживаемый порт, с которого нужно отправлять копии пакетов входящего и исходящего трафика, называется mirror-source. Порт назначения называется mirror-target. Оба типа портов должны принадлежать одному и тому же устройству. Также опции mirror-target может быть присвоено значение cpu, при этом перехваченные пакеты отправляются с cpu-порта чипа коммутации. Функцию зеркалирования можно, например, настроить следующим образом[Источник 4]:

/interface ethernet switch
set switch1 mirror-source=ether2 mirror-target=ether3

Также необходимо установить необходимые параметры:

  • mirror=yes - в таблице MAC-адресов или в таблице правил (пакет в этом случае может быть клонирован и отправлен в порт mirror-target),
  • ingress-mirror=yes - в VLAN-таблице.

Предпочтительный тип зеркалирования на устройствах серии CRS зависит от конкретной задачи[Источник 5]. Пусть задана сеть, схематически изображенная на рисунке ниже.

Схематическая схема сети с устройством серии CRS

Пример Port Based зеркалирования:

/interface ethernet switch##y##
set ingress-mirror0=ether5 egress-mirror0=ether5

/interface ethernet switch port##y##
set ether6 ingress-mirror-to=mirror0 egress-mirror-to=mirror0

Пример VLAN Based зеркалирования:

/interface ethernet
set ether7 master-port=ether2

/interface ethernet switch
set ingress-mirror0=ether5 vlan-uses=mirror0

/interface ethernet switch vlan
add ports=ether2,ether7 vlan-id=300 learn=yes ingress-mirror=yes

Пример MAC Based зеркалирования::

/interface ethernet
set ether8 master-port=ether2

/interface ethernet switch
set ingress-mirror0=ether5 fdb-uses=mirror0

/interface ethernet switch unicast-fdb
add port=ether8 mirror=yes svl=yes mac-address=E7:16:34:A1:CD:18

Juniper Networks

Коммутаторы компании Juniper Networks, Inc. серии EX[6] позволяют зеркалировать трафик на локальный интерфейс для локального мониторинга или в VLAN для удаленного мониторинга трафика[Источник 6]. Зеркалироваться могут следующие сетевые пакеты:

  • Пакеты, входящие или выходящие из порта
  • Пакеты, входящие в VLAN с коммутаторами EX2200, EX3200, EX3300, EX4200, EX4500, или EX6200.
  • Пакеты, выходящие из VLAN с коммутатором EX8200

Для зеркалирования трафика с интерфейса или с VLAN нужно:

1. Выбрать имя для анализатора (в примере ниже - employee-monitor) и определить входящую информацию (в примере ниже - пакеты, входящие в ge-0/0/0 и ge-0/0/1):

#edit ethernet-switching-options
user@switch# set analyzer employee-monitor input ingress interface ge–0/0/0.0
#edit ethernet-switching-options
user@switch# set analyzer employee-monitor input ingress interface ge–0/0/1.0

2. При желании можно определить статистическую выборку зеркалируемых пакетов:

#edit ethernet-switching-options
user@switch# set analyzer employee-monitor ratio 200 

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

3. Настроить интерфейс назначения (в примере ниже - ge-0/0/10.0):

#[edit ethernet-switching-options]
user@switch# set analyzer employee-monitor output interface ge-0/0/10.0

Примечания

  1. Cisco [Электронный ресурс] : Cisco Catalyst 2960 Series Switches / Дата обращения: 22.05.2017. Режим доступа: http://www.cisco.com/c/en/us/products/switches/catalyst-2960-series-switches/index.html
  2. RouterBoard.com [Электронный ресурс] : Products / Дата обращения: 25.05.2017. Режим доступа: https://routerboard.com/
  3. RouterBoard.com [Электронный ресурс] : hAP lite classic / Дата обращения: 26.05.2017. Режим доступа: https://routerboard.com/RB941-2nD
  4. RouterBoard.com [Электронный ресурс] : CCR1009-8G-1S-PC / Дата обращения: 26.05.2017. Режим доступа: https://routerboard.com/RB941-2nD
  5. RouterBoard.com [Электронный ресурс] : CCR1009-8G-1S-1S+PC / Дата обращения: 26.05.2017. Режим доступа: https://routerboard.com/RB941-2nD
  6. Juniper Networks - Network Security & Performance [Электронный ресурс] : EX Series Ethernet Switches - High Performance / Дата обращения: 26.05.2017. Режим доступа: http://www.juniper.net/us/en/products-services/switching/ex-series/

Источники

  1. Catalyst Switched Port Analyzer (SPAN) Configuration Example // Cisco Web Site. [1992-2017]. URL: http://www.cisco.com/c/en/us/support/docs/switches/catalyst-6500-series-switches/10570-41.html (дата обращения: 18.05.2017).
  2. Configuring SPAN and RSPAN // Cisco Web Site. [1992-2017]. URL: http://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst2960/software/release/12-2_40_se/configuration/guide/scg/swspan.pdf (дата обращения: 20.05.2017).
  3. Manual:Switch Chip Features // MikroTik Wiki Web Site. [2008-2017]. URL: https://wiki.mikrotik.com/wiki/Manual:Switch_Chip_Features (дата обращения: 21.05.2017).
  4. Manual:CRS examples // MikroTik Wiki Web Site. [2008-2017]. URL: https://wiki.mikrotik.com/wiki/Manual:CRS_examples#Mirroring (дата обращения: 22.05.2017).
  5. Manual:CRS features // MikroTik Wiki Web Site. [2008-2017]. URL: https://wiki.mikrotik.com/wiki/Manual:CRS_features (дата обращения: 22.05.2017).
  6. Configuring Port Mirroring to Analyze Traffic (CLI Procedure) // Juniper Networks Web Site. [1999-2017]. URL: https://www.juniper.net/documentation/en_US/junos12.3/topics/task/configuration/port-mirroring-cli.html (дата обращения: 24.05.2017).