2.13. Настройка зеркалирования (Mirror)

Назначение

Функция зеркалирования предназначена для отправки копий пакетов, проходящих через порты / VLAN или отправляемых и принимаемых процессором, на один или несколько указанных портов.

Также копии пакетов могут быть направлены в центральный процессор для их сохранения в памяти. Копии пакетов могут быть использованы для анализа сети.

Функция зеркалирования не влияет на исходный сетевой трафик.

Описание

Сессия зеркалирования

Сессия зеркалирования - это работа функции зеркалирования в соответствии с настроенной ассоциацией адресата и источника.

Коммутатор поддерживает до 3 сессий зеркалирования. Cессии зеркалирования не препятствуют нормальной работе коммутатора, однако, перегрузка адресата (например, порт 10 Гбит/с, на который зеркалируются пакеты с порта 100 Гбит/с), может привести к потере зеркалируемого трафика.

Направление зеркалирования

Коммутатор поддерживает настройку направления трафика источника - TX / RX / BOTH.

Зеркалирование входящего трафика (RX)

Цель зеркалирования входящего трафика - отслеживание пакетов, полученных портом или VLAN, до выполнения коммутатором каких-либо изменений или обработки входящего трафика. Копия каждого полученного источником пакета передается на порт, назначенный для этой сессии зеркалирования. [1]

Можно отслеживать серию или диапазон портов или VLAN в сеансе зеркалирования. Некоторые функции, которые могут привести к отбрасыванию пакета при приеме, не влияют на зеркалирование, назначенный порт получает копию пакета, даже если сам входящий пакет был отброшен (к таким функциям относятся: ACL, фильтр VLAN, MAC-фильтр, STP, контроль тегов VLAN, безопасность портов, отбрасывание неизвестных пакеты маршрутизации).

Зеркалирование исходящего трафика (TX):

Целью зеркалирования исходящего трафика является отслеживание пакетов, отправленных интерфейсом источника, после выполнения коммутатором обработки и изменения пакетов. Копия каждого пакета, отправленного источником, передается на порт-получатель.[2]

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

Зеркалирование входящего и исходящего трафика (Both):

Возможно на одном порту отслеживать как принимаемые, так и отправляемые источником пакеты.

Источник зеркалирования

Источник зеркалирования - это интерфейс, трафик которого можно зеркалировать. Источники разделяются на указанные ниже типы.

Порт-источник. Это порт L2 или L3, трафик которого зеркалируется. В качестве порта-источника может выступать физический порт или агрегированный канал (см. главу “Настройка агрегации каналов”). Отдельный порт из состава агрегированного канала не может быть использован в качестве источника зеркалирования.

VLAN-источник. Это VLAN, трафик которого зеркалируется. Пользователь должен создать интерфейс VLAN, прежде чем установить VLAN в качестве источника.

CPU. Можно установить CPU в качестве источника зеркалирования входящего или исходящего трафика. Трафик зеркалируется перед процессом “CPU-traffic-limit”. Поддерживается только одна сессия с использованием CPU в качестве источника.

Получатель зеркалирования

Получатель - это интерфейс, на который зеркалируется трафик. Получатели разделяются на указанные ниже типы.

Локальный порт

Порт-получатель должен быть физическим портом или агрегированным каналом (см. главу “Настройка агрегации каналов”). Отдельный порт из состава агрегированного канала не может быть использован в качестве получателя.

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

  • Порт-получатель должен находиться на том же коммутаторе, что и порт-источник.

  • Порт-получатель не должен находиться в состоянии shutdown.

  • Порт-получатель может одновременно участвовать только в одной сессии зеркалирования.

  • Порт-получатель не может быть портом-источником.

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

  • Порт-получатель не участвует в Spanning tree, пока активна зеркальная сессия.

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

  • На порту-получателе не происходит изучения адресов.

  • Реальные значения скорости/дуплекса могут не совпадать с отображаемыми.

Несколько портов-получателей

Коммутатор поддерживает использование группы портов-получателей. Характеристики каждого из группы портов-получателей аналогичны характеристикам одного порта-получателя.

Удаленный получатель

Трафик передается в указанный VLAN. В пакеты зеркалированного трафика вставляется VLAN-тег и направляется через назначенный исходящий порт на удаленное сетевое устройство.

Удаленный получатель должен иметь следующие характеристики VLAN и назначенного исходящего порта:

  • Диапазон номера VLAN от 2 до 4094.

  • Рекомендуется настраивать назначенный порт как switchport.

  • Номер VLAN должен быть добавлен к списку разрешенных на назначенном порте.

CPU

Копии пакетов передаются на CPU. При зеркалировании через порты или VLAN необходимо использовать внешнее оборудование мониторинга. При его отсутствии можно установить CPU в качестве получателя для сохранения пакетов и дальнейшего анализа. Поддерживается отображение сохраненных пакетов и запись пакетов в текстовый файл. Зеркалирование на CPU является эффективным и функциональным инструментом отладки.

Зеркалирование не влияет на коммутацию сетевого трафика на источниках зеркалирования.

С помощью команды cpu-traffic-limit можно настроить скорость. CPU может быть настроен в качестве получателя только в одной сессии.

Настройка

Настройка зеркалирования порта

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

image

Рис. 2.2 Конфигурация сети

Показано зеркалирование пакетов с порта “eth-0-1” на порт “eth-0-2”.

Шаг 1: Вход в режим “Global config”

Switch# configure terminal

Шаг 2: Установка порта-получателя

Switch(config)# interface eth-0-2
Switch(config-if)# no shutdown 
Switch(config-if)# exit
Switch(config)# monitor session 1 destination interface eth-0-2

Шаг 3: Установка источника

Switch(config)# monitor session 1 source interface eth-0-1 both

Шаг 4: Выход из режима “Global config”

Switch(config)# end

Шаг 5: Проверка

Switch# show monitor session 1
Session   1
----------
Status             : Valid
Type               : Local Session
Source Ports       :
  Receive Only     : 
  Transmit Only    : 
  Both             : eth-0-1 
Source VLANs       :
  Receive Only     : 
  Transmit Only    : 
  Both             : 
Destination Port   : eth-0-2

Настройка зеркалирования VLAN

Показано зеркалирование пакетов с VLAN 10 на порт “eth-0-2”.`

Шаг 1: Вход в режим “Global config”

Switch# configure terminal

Шаг 2: Установка порта-получателя

Switch(config)# interface eth-0-2
Switch(config-if)# no shutdown 
Switch(config-if)# exit
Switch(config)# monitor session 1 destination interface eth-0-2

Шаг 3: Вход в режим настройки VLAN и создание VLAN

Switch(config)# vlan database
Switch(config-vlan)# vlan 10
Switch(config-vlan)# exit

Шаг 4: Создание интерфейса VLAN

Switch(config)# interface vlan10
Switch(config-if)# exit 

Шаг 5: Установка источника

Switch(config)# monitor session 1 source vlan 10 rx

Шаг 6: Выход из режима “Global config”

Switch(config)# end

Шаг 7: Проверка

Switch# show monitor session 1
Session   1
----------
Status             : Valid
Type               : Local Session
Source Ports       :
  Receive Only     : 
  Transmit Only    : 
  Both             : 
Source VLANs       :
  Receive Only     : 10   
  Transmit Only    : 
  Both             : 
Destination Port   : eth-0-2

Настройка зеркалирования из CPU

Показано зеркалирование пакетов с CPU на порт “eth-0-2”.

Шаг 1: Вход в режим “Global config”

Switch# configure terminal

Шаг 2: Установка получателя

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown 
Switch(config-if)# exit
Switch(config)# monitor session 1 destination interface eth-0-2

Шаг 3: Установка источника

Switch(config)# monitor session 1 source cpu both

Шаг 4: Выход из режима “Global config”

Switch(config)# end

Шаг 5: Проверка

Switch# show monitor session 1
Session   1
----------
Status             : Valid
Type               : Cpu Session
Source Ports       :
  Receive Only     : 
  Transmit Only    : 
  Both             : cpu
Source VLANs       :
  Receive Only     : 
  Transmit Only    : 
  Both             : 
Destination Port   :eth-0-1

Настройка нескольких портов-получателей

Ниже показана пошаговая инструкция зеркалирования пакетов с порта “eth-0-1” на порты “eth-0-2” и “eth-0-3” в соответствии с представленной конфигурацией сети.

image

Рис. 2.3 Конфигурация сети

Шаг 1: Вход в режим “Global config”

Switch# configure terminal

Шаг 2: Установка портов-получателей

Switch(config)# interface eth-0-2
Switch(config-if)# no shutdown
Switch(config-if)# exit 
Switch(config)# interface eth-0-3
Switch(config-if)# no shutdown
Switch(config-if)# exit 
Switch(config)# monitor session 1 destination group 1
Switch(config-monitor-d-group)# member eth-0-2
Switch(config-monitor-d-group)# member eth-0-3
Switch(config-monitor-d-group)# exit

Шаг 3: Установка источник

Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# exit 
Switch(config)# monitor session 1 source interface eth-0-1

Шаг 4: Выход из режима “Global config”

Switch(config)# end

Шаг 5: Проверка

Switch# show monitor session 1
Session   1
----------
Status             :  Valid
Type               :  Local Session
Source Ports      :
  Receive Only     : 
  Transmit Only    : 
  Both             : eth-0-1
Source VLANs       :
  Receive Only     : 
  Transmit Only    : 
  Both             : 
Destination Port   : eth-0-2 eth-0-3

Настройка удаленного получателя

В примере ниже показана пошаговая инструкция зеркалирования с порта “eth-0-1” коммутатора “Switch1” через порт “eth-0-2” на порт “eth-0-1” коммутатора “Switch2” в соответствии с представленной конфигурацией сети . Коммутатор “Switch2” пересылает трафик через порт “eth-0-2” на анализатор.

image

Рис. 2.4 Конфигурация сети

Настройка коммутатора “Switch1”

Шаг 1: Вход в режим “Global config”
Switch# configure terminal
Шаг 2: Установка порта-получателя
Switch(config)# vlan database
Switch(config-vlan)# vlan 15
Switch(config-vlan)# exit
Switch(config-if)# exit
Switch(config)# interface eth-0-2
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 15
Switch(config-if)# exit
Switch(config)# monitor session 1 destination remote vlan 15 interface eth-0-2
Шаг 3: Установка источник
Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config)# monitor session 1 source interface eth-0-1 both
Шаг 4: Выход из режима “Global config”
Switch(config)# end
Шаг 5: Проверка
Switch# show monitor session 1
Session   1
----------
Status             : Valid
Type                :  Remote Session
Source Ports       :
  Receive Only     : 
  Transmit Only    : 
  Both               : eth-0-1
Source VLANs       :
  Receive Only     :   
  Transmit Only    : 
  Both               : 
Destination Port   : eth-0-2
Destination remote VLAN : 15

Настройка коммутатора “Switch2”

Ниже показаны методы настройки коммутатора “Switch2” в соответствии с представленной конфигурацией сети.

Метод 1: Использование VLAN 15 в качестве источника, порт “eth-0-2” в качестве получателя
Switch# configure terminal
Switch(config)# vlan database
Switch(config-vlan)# vlan 15
Switch(config-vlan)# exit
Switch(config)# interface vlan15
Switch(config-if)# exit
Switch(config)# interface eth-0-2
Switch(config-if)# no shutdown
Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 15
Switch(config-if)# exit
Switch(config)# monitor session 1 destination interface eth-0-2
Switch(config)# monitor session 1 source vlan 15 rx
Switch(config)# end
Метод 2: Интеграция двух портов в один VLAN и настройка пересылки пакетов в этот VLAN
Switch# configure terminal
Switch(config)# no spanning-tree enable
Switch(config)# vlan database
Switch(config-vlan)# vlan 15
Switch(config-vlan)# exit
Switch(config)# interface eth-0-2
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 15
Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 15
Switch(config-if)# exit

Примечание

В данной конфигурации тег VLAN удален, поскольку порт “eth-0-2” является портом доступа (access).

Метод 3: Передача данных в VLAN и сохранение тэга VLAN

Если пользователю нужно сохранить тэг VLAN, порт “eth-0-2” должен быть магистральным портом (trunk-портом). Остальные настройки аналогичны методу 2.

Switch(config)# interface eth-0-2
Switch(config-if)# no shutdown
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan add 15

Настройка зеркалирования в CPU

Шаг 1: Вход в режим “Global config”

Switch# configure terminal

Шаг 2: Установка получателя

Switch(config)# monitor session 1 destination cpu

Настройка размера буфера и производительности процессора:

Switch(config)# monitor cpu set packet buffer 100
Switch(config)# cpu-traffic-limit reason mirror-to-cpu rate 128

Шаг 3: Установка источника

Switch(config)# monitor session 1 source interface eth-0-1 both

Шаг 4: Выход из режима “Global config”

Switch(config)# end

Шаг 5: Дополнительная настройка (необязательно)

Включение или отключение записи пакетов во флэш-файлы:

Switch#  monitor cpu capture packet start
Switch#  monitor cpu capture packet stop

Изменение расширения файлов с *.txt на *.pcap:

Switch# pcap convert flash:/mirror/MirCpuPkt-2023-02-05-18-31-13.txt flash:/MirCpuPkt-2023-02-05.pcap

Установка действия после превышения размера буфера - drop означает отбрасывание последнего пакета, replace означает отбрасывание самого старого пакета:

Switch(config)# monitor cpu capture strategy drop
Switch(config)# monitor cpu capture strategy replace

Шаг 6: Проверка

Вывод информации о сессии зеркалирования:

Switch# show monitor session 1
Session   1
----------
Status             : Valid
Type               : Cpu Session
Source Ports       :
  Receive Only     : 
  Transmit Only    : 
  Both             : eth-0-1 
Source VLANs       :
  Receive Only     : 
  Transmit Only    : 
  Both             : 
Destination Port   : cpu

Вывод зеркалированных на CPU пакетов:

Switch# show monitor cpu packet all 
-----------------show all mirror to cpu packet info-----------------
packet: 1
Source port: eth-0-1
MACDA:264e.ad52.d800, MACSA:0000.0000.1111
vlan tag:100
IPv4 Packet, IP Protocol is 0
IPDA:3.3.3.3, IPSA: 10.0.0.2
Data length: 47
Data:    
 264e ad52 d800 0000 0000 1111 8100 0064    
 0800 4500 001d 0001 0000 4000 6ad9 0a00    
 0002 0303 0303 6365 6e74 6563 796f  75

Вывод размера буфера:

Switch# show monitor cpu packet buffer 
--------------------show packet buffer size ---------------------
The mirror-to-cpu packet buffer size of user set is: 100

Вывод ограничения скорости CPU:

Switch# show cpu traffic-limit | include mirror-to-cpu
mirror-to-cpu              128           0

Вывод файлов на флэш-памяти:

Switch# ls flash:/mirror
Directory of flash:/mirror
 
total 8
-rw-r-----  1 2287 Dec 23 01:16 MirCpuPkt-2023-12-23-01-15-54.txt
-rw-r-----  1 2568 Jan  3 11:41 MirCpuPkt-2023-01-03-11-41-33.txt
14.8T bytes total (7.9T bytes free)

Switch# more flash:/mirror/ MirCpuPkt-2023-01-03-11-41-33.txt
sequence  srcPort
1          eth-0-1                         
++++++++1483443444:648884
8c 1d cd 93 51 00 00 00 00 00 11 11 08 00 45 00 
00 26 00 01 00 00 40 00 72 d0 01 01 01 01 03 03 
03 03 63 65 6e 74 65 63 79 6f 75 63 65 6e 74 65 
63 79 6f 75 
--------
sequence  srcPort
2          eth-0-1                         
++++++++1483443445:546440
8c 1d cd 93 51 00 00 00 00 00 11 11 08 00 45 00 
00 26 00 01 00 00 40 00 72 d0 01 01 01 01 03 03 
03 03 63 65 6e 74 65 63 79 6f 75 63 65 6e 74 65 
63 79 6f 75 

Вывод действий, выполняемых после заполнения буфера:

Switch# show monitor cpu capture strategy 
The capture strategy of cpu mirror is: replace (add new packet and remove oldest packet when buffer is full)