Предисловие
Основная польза для сетевого инженера от анализатора трафика, это пожалуй поиск флуда и DDoS-атак. Если к вам летит какая-то гадость из интернетов, канал к узлу агрегации стал в «полку», свитчи пингуются с потерями и вы не знаете как искать виновника «гирлянды» в пингере — загляните в NfSen
Хороший и понятный мануал к программе лежит на сайте проекта http://nfsen.sourceforge.net/ и если после прочтения написанного ниже у вас возникнет желание копнуть глубже, появятся вопросы, а возможно вам больше нравится сразу обращаться к первоисточнику за информацией… вы знаете что делать 😉
1. Интерфейс
Домашняя страница — графическая статистика по количеству потоков, пакетов и трафику на одной странице. В нашем случае из-за нагромождения источников flow на графиках, практически не несет смысловой нагрузки. При крепком DDoSe можно заметить всплеск, но информативности мало.
Графики — тоже самое что и на гланой странице, но с более крупными графиками. Удобно посматривать за графиками, при условии что создан хотябы один профайл отличный от live (обсудим чуть позже).
Детали — самая интересная страница, тут можно делать выборки за определенный период, искать топов, трафик по определенному айпи, флуд и прочая.
Статистика — страница с настройками профайла. Можно изменить параметры дефолтной выборки, покрасить график во все цвета радуги, увидеть объем занятого пространства данной статистикой и за какой период есть данные. Также можно увидеть список источников из которых идет выборка в данный профайл.
Что осталось «за кадром»:
Вкладка Alerts — т.к. досконально в том как настроить тригеры я так и не разобрался, если есть люди которые с прмерами смогут описать, как тут все настраивается — давайте дополним статью.
Вкладка Plugins — речь о дополнительных плагинах для вывода различной статистики. Выходит за рамки данной статьи, попробуем рассмотреть в будующих материалах, вместе с их установкой.
Выпадающий список с профилями рассмотрим чуть ниже.
2. Поговорим о деталях
Вкладка Details состоит из трех областей, связаных между собой
Графики
Область представления различных графических данных о трафике.
Справа вверху мы видим:
— текущий выбранный профайл;
— время за которое выбрана статистика ползунком на графике (да, его можно двигать). Период времени указан в интервалах Tstart — Tend. Если выбран сингл таймслот — это снимок трафика за 5мин до указаного в этом диапазоне времени. Время указывается как вы можете видеть в формате год-месяц-день-час-минута (2020-04-17-21-10)
— ниже в виде маленьких превьюшек переключатели основного графика для просмотра в трех единицах измерения — потоках (выбран по умолчанию, самый большой на картинке), пакетах, трафике
Сверху над основным графиком, также есть переключатели по типу протоколов — any (Весь трафик. Выбран по умолчанию), TCP, UDP, ICMP и other (все протоколы которые не относятся к выше перечисленным)
Снизу под графиком разместилась панель нафигации, тут можно выбрать:
— период для обработки, единичный тайм слот или более длительный период (в этом случае ползунков на карте станет два и можно увеличить тайм фрейм)
Помните что чем длительней период, тем дольше по нему будет пересчитываться статистика
— период отображаемый на графике
— навигацию по графику (сегодня, вчера когда-то)
— пик на графике (для дальннейшего его анализа в области ниже)
Статистика
Эта область показывает статистику по трафику за определенный период выбраный ползунком на графике.
Статистика может быть в двух вариантах (переключатель Sum|Rate внизу таблицы):
— средняя скорость на узле за единицу времени (по дефолту 5 мин)
— объем трафика переданный за единицу времени через узел
Справа установкой или снятием галочек мы определяем что мы увидим на графике выше. В нашем случае выбран 114 саммит.
Процессинг
Область подробного анализа трафика, анализируется таймслот указаный на графике выше.
Состоит из трех областей:
— Источник (Source) (узел по которому нам нужна информация)
— Фильтр — параметры для фильтрации советую смотреть здесь http://nfsen.sourceforge.net/#mozTocId652064 все хорошо описано, также часто используемые фильтры можно сохранить. Поверхностно варианты фильтрации рассмотрим чуть ниже при обзоре профайлов
— Опции — общие фильтры представленные наглядно в виде кнопочек и выпадающих списков.
Позволяют:
— вывести список флоу последовательно или сортировать по топам (верхний переключатель List Flows|Stat TopN )
— показать количество первых строк для топов (выпадающее меню Top)
— указать от чего будем отталкиваться при составлении топов (количество флоу, IP, DST IP — топ по закачке, SRC IP — топ по выгрузке, DST Port — к какому порту обращаются и т.д.) Для sFlow не весь выпадающий список актуален, т.к. некоторых полей просто нет в составе sflow пакета, напрмер вы не сможете выбрать топ по AS потому что этих данных во флов нет. В этойже строке можно задать по чем сортировать (количеству потоков, пакетов, переданных байт, пакетов в секунду и так далее)
— указать лимиты которые не стоит учитывать или наоборот стоит
— отображать полные IPv6 адреса
После нажатия кнопки process мы получим результат нашего запроса
Первая строка в выводе это аналог наших настроек, но в виде консольной команды.
# команда в терминале ** nfdump -M /opt/nfsen/profiles-data/live/114summit -T -r 2020/04/16/nfcapd.202004161800 -n 10 -s dstip/bytes # указывает что мы не применили никаких фильтров, any - значит, что обрабатываем весь трафик nfdump filter: any # Это то что мы задали в опциях Top 10 Dst IP Addr ordered by bytes:
В выводе получаем наших топов. Рассмотрим что обозначают столбцы в таблице:
Date first seen | Время, когда IP в первый раз появился в таймслоте |
Duration | Время активности IP за таймслот. Дефолтный таймслот 300 сек |
Proto | Протокол (TCP, UPD, STP, etc) |
Dst IP Addr | Параметр сортировки топов. У нас это Dst IP |
Flows(%) | Кол-во флоу и % от общего кол-ва |
Packets(%) | Кол-во пакетов и % от общего |
Bytes(%) | Кол-во байт и % от общего |
pps | packet per second пакетов в секунду |
bps | bits per second бит в секунду |
bpp | bits per packet кол-во бит в пакете |
И завершает это все статистика по количеству обработаных потоков, объему трафика, средней скорости, времени затраченого на обработку запроса и т.д.
3. Вкладка Stats и профили
Попробуем создать новый профайл (выпадающее меню справа на станице навигации)
Пример заполнения на картинке. Что здесь и для чего
Profile | Название профайла. Длина не более 31 символа, не должно содержать пробелы |
Group | Нужно для создания подменю в выпадающем списке. Например: |
Description | Делаете что-то замысловатое — оставьте описание для чего это, остальным будет легче |
Start | Время с которого начнет строиться график, если логи флоу в наличии можно начать в прошлом. Чем глубже в прошлое копнете, тем дольше будет генерироваться первоначальный график. Если оставите пустым, график начнет строиться с текущего момента |
Finish | Конечная дата. Должна быть позже чем дата старта, если оставите поле пустым будет строиться постоянно |
Max. Size | Максимальный размер профайла. Профайл может складывать флоу попадающие под параметры профиля в отдельную папку. Этот пункт ограничивает размер профиля. Если указать 0 — без ограничений по месту |
Expire | Время жизни данных в профиле. Данные старее указанного периода будут автоматически удаляться. 0 — без ограничений |
Channels | Может принять одно из двух значений 1:1 channels from profile live — дефолтный профиль по умолчанию и фильтр применяется сразу ко всем источникам. individual channels — можно настроить разные параметры выборки и строить более одного графика |
Type | Тип профиля. Предлагает два варианта: Real Profile — отдельный профиль с отдельными папками, куда будут писаться данные ограниченные вашими условиями Shadow Profile — фильтра накладываются на данные из live профиля, папки для складывания пофильтрованых потоков не создаются. Фактически строятся только графики |
Sources & Filter | Если в каналах выбрали 1:1 добавляется выбор источника и поле для создания фильтра |
Если что-то забыли — все поля оснащены знаком вопроса справа, при наведении на него курсора, открывается мини справка по полю
Жмем Create profile и видим что добавилась новая строка внизу Channels list и кнопочка + позволяющая создать правило фильтрации
— Указываем имя канала
— Выбираем цвет
— Указываем расположение относительно оси Х (сверху или снизу)
— Если каналов будет много указываем порядковый номер канала (кто над кем идет)
— Пишем условие фильтрации. У меня в примере это вход на все триолановские сети
— выбираем источники и нажимаем добавить канал
Создаю второй канал на исход для всех наших сетей
В итоге у нас получился список каналов, а в поле статус как видно на картинке ниже стоит галочка
Щелкаем по галочке и ждем пока создастся наш профайл
В результате получился график который показывает суммарный объем трафика на выбранных узлах, отдельно для данлоада и аплоада
Теперь на вкладке Stats для выбранного профайла мы можем изменить фильты если нас что-то не устраивает или необходимо что либо добавить. А также поменять иные параметры профиля. Единственное имейте в виду что профиль больше не будет пересчитываться заново, а начнет рисовать изменения с момента внесения правок.
На этом всё. Краткий обзор возможностей NfSen’a будем считать завершенным. Спасибо что дочитали)