В прошлой статье, я рассказывал о теоретических основах таких технологий Cisco как SPAN и RSPAN.
Сегодня же мы будем знакомиться с этими технологиями на практике.
Что нам понадобится?
Коммутатор Cisco, хост с каким-нибудь сниффером, например wireshark, чтоб мы могли посмотреть трафик, который присылается на destination port.
Настройку буду осуществлять на Cisco Catalyst 2960.
Вся настройка проходит в режиме глобальной конфигурации (conf t).
Начнем с малого, а именно с простой настройки SPAN.
Допустим, нужно получать траифк с порта f0/34 (source) на порт f0/33 (destination). Попробуем настроить 🙂
ASW(config)#monitor session 1 source interface f0/34
ASW(config)#monitor session 1 destination interface f0/33
Вот собственно и все. Самый просто вариант настройки, когда нам необходимо с какого-то порта снять и прослушать трафик.
Помните, когда вы примените настройку для destination port у вас пропадет доступ к коммутатору (так как порт будет работать только для приема зеркалированного трафика), поэтому делать это лучше непосредственно возле коммутатора, на отдельном хосте. Например, ноутбук.
Давайте попробуем запустить wireshark и посмотреть, есть ли что-то с порта source. В моем случае, на f0/34 порте «висит» ПК, с IP адресом 10.0.5.12.
Wireshark видит данные с этим IP, значит все работает как надо.
Помним, что по умолчанию, зеркалируется трафик как входящий так и исходящий на source port.
Для того, чтобы ограничить трафик, например только входящим, нужно сделать следующее:
ASW(config)#monitor session 1 source interface f0/34 rx
RX как раз и отвечает за то, что зеркалироваться будет трафик только входящий на данный интерфейс.
Если нам нужен только исходящий трафик, нужно сделать так:
ASW(config)#monitor session 1 source interface f0/34 tx
В нашем примере, зеркалируется трафик только с одного порта, но нам ничего не мешает сделать зеркалирование с двух и более, для этого просто добавляем команды с соответствующими интерфейсами:
ASW(config)#monitor session 1 source interface f0/34
ASW(config)#monitor session 1 source interface f0/35
ASW(config)#monitor session 1 destination interface f0/33
Теперь трафик с двух интерфейсов f0/34 и f0/35 будет копироваться на destination port.
Теперь давайте представим, что нужно зеркалировать транковый порт (в теоретической части мы с вами определились, что это делать можно). И хотим чтоб Layer 2 протоколы ходили, такие как CDP,DTP и другие.
Допустим транковый порт у нас g0/1. Настройка будет выглядеть следующим образом:
ASW(config)#monitor session 1 source interface g0/1 encapsulation replicate
ASW(config)#monitor session 1 destination interface f0/33
Если взглянуть на настройку, то можно увидеть только одно отличие, это присутствие нового параметра encapsulation replicate, который определяет как раз то, что мы будем видеть в трафике фреймы такие как CDP, DTP, и так далее.
Помним о том, что если настроно так как выше, и g0/1 является транком, то данные будут зеркалироваться со всех VLAN этого транка.
Для того, чтобы «вычеркнуть» не нужные нам VLAN воспользуем фильтрацией.
ASW(config)#monitor session 1 source interface g0/1 encapsulation replicate
ASW(config)#monitor session 1 filter vlan 1-5, 111
ASW(config)#monitor session 1 destination interface f0/33
Здесь мы видим дополнительную команду monitor session с параметром filter vlan. Что же он значит?
Filter vlan означает то, что указанные далее номера vlan, не будут включаться в зеркалирование трафика. Можно задавать диапазон vlan (1-5 означает 1,2,3,4,5), а можно просто через запятую перечислять номера VLAN.
Если нам необходимо использовать источник не порт а VLAN, например 5, необходимо сделать так:
ASW(config)#monitor session 1 source vlan 5
так же, через запятую можно перечислить список vlan.
С SPAN пожалуй все. Теперь разберемся с RSPAN.
Поставим себе задачу.
Есть коммутаторы, ASW1 и ASW2 и ASW. Нам необходимо на порт коммутатора f0/1 ASW, передать трафик с ASW1 Vlan 10 только входящий трафик, 20 — только исходящий и 30 оба типа трафика. И с коммутатора ASW2 необходимо зазеркалировать трафик VLAN 15, оба типа трафика.
Напомню, что для RSPAN, существует такое понятие как VLAN RSPAN (это было описано в теоретических основах SPAN/RSPAN).
Перейдем к настройке.
1. Разбираемся с ASW1.
Создаем VLAN для RSPAN
ASW1(config)#vlan 100
ASW1(config-vlan)#remote-span (указываем что vlan используется для RSPAN)
ASW1(config)#exit
Создаем сессию для мониторинга:
ASW1(config)#monitor session 1 source vlan 10 rx
ASW1(config)#monitor session 1 source vlan 20 tx
ASW1(config)#monitor session 1 source 30
ASW1(config)#monitor session 1 destination remote vlan 100
2. Разбираемся с ASW2.
Так же для начала создаем RSPAN VLAN.
ASW2(config)#vlan 100
ASW2(config-vlan)#remote-span
ASW2(config)#exit
Создаем сессию мониторинга (необязательно номер сессий должен совпадать с другими коммутаторами)
ASW2(config)#monitor session 1 source vlan 15
ASW2(config)#monitor session 1 destination remote vlan 100
3. Теперь собственно нужно настроить ASW, порт f0/1, на котором находится наш хост с wireshark (ну или для каких-то других целей, voip record, etc).
Так же необходимо создать RSPAN VLAN.
ASW(config)#vlan 100
ASW(config-vlan)#remote-span
ASW(config)#exit
Укажем source vlan (наш rspan vlan)
ASW(config)#monitor session 1 source remote vlan 100
И укажем, порт, куда «сливать» весь трафик.
ASW(config)#monitor session 1 destination interface f0/1
Вот собственно и все, наша задача выполнена.
Хочу напомнить, что нужно опасаться перегрузки интерфейса, как в нашем случае, на 100 мегабитный интерфейс может придти трафика больше чем он сможет обработать, нужно это иметь ввиду и не забывать об этом.
Последняя команда на последок, которая облегчит жизнь администратору
ASW#sh monitor session ?
<1-66> SPAN session number
all Show all SPAN sessions
local Show only Local SPAN sessions
range Show a range of SPAN sessions in the box
remote Show only Remote SPAN sessions
ASW#
С помощью нее, можно быстро найти ошибку, которую допустили при конфигурировании, в общем рекомендую 🙂
На этом с SPAN/RSPAN пока все!
See you Later!