Opened 6 years ago

Last modified 6 years ago

#358 new улучшение

Новая функция: дистанционный анализ трафика ethernet

Reported by: alx Owned by: alx
Priority: средний Milestone: 2 очередь
Component: sw Keywords:
Cc: san, andrei, artem, vlad

Description (last modified by alx)

Иногда при исследовании прохождения (или непрохождения) трафика по сети требуется узнать, что за пакеты ходят через наш коммутатор. Когда блок находится в физической доступности, можно подключить анализатор (компьютер) к свободному порту и миррорить туда интересующий трафик. Но если блок находится далеко и доступен только по сети, это сделать затруднительно.

Отчасти задача решается направлением (миррорингом) кадров в порт CPU и наблюдением за трафиком TCPDUMP'ом, но здесь есть ряд недостатков.

Во-первых, tcpdump не покажет, каким образом тегированы кадры, так как сразу после приема кадра его тэг отбрасывается.

Во-вторых, трафик может быть довольно большой, и CPU в нем может "захлебнуться".

В-третьих, возможна нежелательная "интерференция", например, из-за случайного пересечения адресов (скажем, CPU отвечает на запрос, посчитав, что запрос адресован ему, хотя это был запрос из независимой изолированной сети)...

Насколько я помню, в коммутаторе есть такая функция - проба трафика. Суть ее в том, что из потока кадров выбираются отдельные с некоторой вероятностью (например 1 из 100) и отправляются в CPU. Предлагается задействовать ее для наблюдения за трафиком. Кадры, направленные в CPU этой функцией, могут быть опознаны по соответствующему коду (код указывается в тэге). Предлагается такие пакеты направлять в специальный VLAN (снабжать их тэгом с ID, например, 2222). Это исключит "интерференцию" с настоящим пользовательским трафиком (мониторинг/управление). В SW-01 для наблюдения за кадрами создать новый интерфейс с VLAN ID 2222. Наблюдать трафик можно будет как tcpdump'ом, так и самим демоном swd, который мог бы принятые кадры отображать (с минимальным анализом) в веб-интерфейсе.

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

Change History (6)

comment:1 by alx, 6 years ago

Description: modified (diff)

comment:2 by alx, 6 years ago

Description: modified (diff)

comment:3 by alx, 6 years ago

Здесь буду собирать пожелания/хотелки и дополнительную информацию

Как предлагается конфигурировать пробу кадров:

  • на каждый из портов коммутатора:
    • N для пробы каждого N-го кадра ingress трафика порта (включая 0 - отключено);
    • M для пробы каждого M-го кадра egress трафика порта (включая 0 - отключено);
  • обрезать или нет кадр до 128 байт;

Что отображать для каждого "попробованного" кадра:

  • порт;
  • ingress / egress;
  • размер кадра;
  • VLAN ID;
  • MAC отправителя;
  • MAC получателя;
  • код протокола L3;
  • если протокол - IP:
    • адрес отправителя;
    • адрес получателя;
    • протокол L4.
  • HEX-дамп начала кадра (например первые 128 байт).

comment:4 by san, 6 years ago

Наблюдать трафик можно будет ... демоном swd, который мог бы принятые кадры отображать (с минимальным анализом) в веб-интерфейсе.

Это было бы удобно

с некоторой вероятностью (например 1 из 100) и отправляются в CPU

Правильно я понял, что хоть каждый кадр можно ловить?

А эти кадры зеркалятся? (всмысле они продолжают форвардится куда надо но ещё и копия отправляется в цпу)

Как предлагается конфигурировать пробу кадров:

А можно тут сразу фильтров приделать типа как в условиях PCL правил ?

in reply to:  4 comment:5 by alx, 6 years ago

Replying to san:

Правильно я понял, что хоть каждый кадр можно ловить?

Да.

А эти кадры зеркалятся? (всмысле они продолжают форвардится куда надо но ещё и копия отправляется в цпу)

Да.

А можно тут сразу фильтров приделать типа как в условиях PCL правил ?

Насколько я понял, нет. Это несколько другая задача - "посмотреть, что же там за трафик присутствует". Возможность выборочно миррорить кадры с помощью политик, естественно, останется.

comment:6 by san, 6 years ago

Насколько я понял, нет. Это несколько другая задача - "посмотреть, что же там за трафик присутствует". Возможность выборочно миррорить кадры с помощью политик, естественно, останется.

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

Note: See TracTickets for help on using tickets.