суббота, 1 сентября 2018 г.

Способ удаленного сбора копии трафика (SPAN) в случае, когда обычными методами это сделать сложно

   Имеется следующая задача. Собрана схема, показанная на рисунке ниже.
   Трафик передается между PC1 и PC2 через коммутатор SW1. Между коммутаторами SW2 и SW1 настроен транк. К коммутатору SW2 подключен сервер с софтом для сбора трафика (например, Wireshark). Мы хотим собрать копию трафика, идущего от PC1 к PC2 и обратно.
   Если на месте коммутаторов стоят довольно таки умные устройства с расширенным фунционалом (например, Cisco 2960x или что-то иное), то можно было бы просто настроить Remote SPAN (RSPAN). Но у нас здесь коммутаторы Natex 3424GW v1 или иные, которые: 1) не умеют работать с RSPAN, 2) могут снимать SPAN только с физических интерфейсов.
   Как решить такую задачу, если мы не можем протянуть дополнительные физические линии, не можем изменить коммутацию между коммутаторами, но при этом можем настраивать интерфейсы на коммутаторах так, как нам захочется? Правильно! "По-колхозному"!
   Немного детализируем схему, чтобы можно было работать предметно с конкретными интерфейсами.
   Итак, мы можем снимать копию трафика только с физического интерфейса, например, с G0/1 или G0/2. И отправлять его тоже можно только в физический интерфейс. В нашем случае, пункт назначения - G0/5. Однако, если мы отправим его в чистом виде, то коммутатор попытается его обработать, поэтому трафик в лучшем случае не дойдет, а в худшем вызовет большое количество избыточного трафика или вовсе сбой коммутации, петли и другие неприятности. Поэтому нужно каким-либо образом трафик изолировать. Изолировать его мы можем только с помощью VLAN, других способов нет.
   Идея заключается в том, что мы должны поместить копию трафика в какой-либо отдельный VLAN, довести этот VLAN до пункта приема копии трафика. Но как это сделать при условии, что копию трафика мы можем снимать и отправлять только в физический интерфейс? Создаем петлю, замыкая пару интерфейсов. Коллеги почему-то называют такую схему "чебурашьи уши". 
   Схема будет выглядеть следующим образом:
   В данном примере мы замыкаем между собой интерфейсы G0/3 и G0/4. При это создаем VLAN 20, который будет использоваться только для передачи копии трафика, т.е. в него будет помещен только один интерфейс.
   Настраиваем SPAN с параметрами: интерфейс источника - G0/1 (или G0/2, в нашем случае это не важно), интерфейс назначения - G0/3. Таким образом трафик попадает в интерфейс G0/3 в чистом виде, после чего переходит на интерфейс G0/4, где он весь тегируется 20м VLAN'ом. Теперь разрешаем этот VLAN  в транке, и передаем его на коммутатор SW2.
   Далее отправляем трафик на сниффер либо настроив доступ к VLAN 20 на порту сниффера, либо добавив его в транк сниффера, если он подключен транком ко коммутатору.
    Минусы такого решения очевидны. Во-первых, как минимум 1 VLAN и 2 интерфейса задействуются просто так, во-вторых, при неверной настройке можно вызвать сбой в работе сервисов, дублирование пакетов, дьявола, кризис и Апокаллипсис. Тем не менее в отдельно взятых случаях такой метод может сэкономить время и деньги.
   Отдельный вопрос в том, как именно коммутаторы будут обрабатывать копию трафика, ведь в таблицу коммутации будут как минимум дважды записаны МАС-адреса РС1 и РС2 - сначала на интерфейсах, на которых они действительно находятся, а после - на интерфейсе G0/4. Тем не менее подобная схема была проверена на моделях коммутаторов Natex 3424GWv1 и на Cisco 2960.

1 комментарий:

  1. Не таким же, но схожим трюком меняют Vlan tag у кадров, в случае когда коммутатор не умеет делать этого сам.

    ОтветитьУдалить