Как стать автором
Обновить

Замолвите словечко за akvorado

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров2.4K

Добрый день! Меня зовут Михолап Константин. Работаю в небольшом операторе связи инженером, а вот в каком уже поймете по AS и страничке в PeeringDB.
В 2025-ом году никого уже не удивить наличием возможности визуализировать входящий трафик для разного рода ISP или ЦОД, поэтому возможно Вы уже слышали что-то про Akvorado.

В рамках этой статьи познакомимся с адаптацией такого программного комплекса инструмента Akvorado. И так, Akvorado - это Netflow-коллектор с функциями визуализации собираемого трафика. К публике он вышел в 2022 году, о нем много кто слышал, я уверен. Были разные материалы например в linkmeup. Очень прост для установки, развертывания и возможно даже обслуживания (если вы чуть-чуть знаете Сlickhouse).

Отображение суммарного трафика и визуализация по AS
Отображение суммарного трафика и визуализация по AS
Самый наглядный режим который позволяет отследить крупных поставщиков трафика по AS, отдельно классификацию по услугам, наименование поставщика и экспортера
Самый наглядный режим который позволяет отследить крупных поставщиков трафика по AS, отдельно классификацию по услугам, наименование поставщика и экспортера

Главные достоинства изображены на скриншоте, примеры использования, но мы углубимся немного в сложности, применения в суровом русском провайдере. О том, что такое полоса предоплаты и бёрст думаю говорить не стоит.

Нюансы развертывания

Необходимо было адаптировать представленный продукт в сеть оператора, для того чтобы собирать данные о трафике от поставщиков, поэтому в конфиг файле akvorado.yaml зададим заготовленный перечень своих автономных систем.

clickhouse:
  asns:
    31257: Orion Telecom Krk

Далее, чтобы наши данные влезли, пришлось поработать с докером, чтобы использовать свою директорию для контейнеров и данных. Для этого использовал настройку, которую задают в файле /etc/docker/daemon.json

{
    "data-root": "/mnt/disk/akvorado/data"
}

Переходим к файлу inlet.yaml, чтобы отредактировать настройки SNMP, Exporter Classifiers, Interface Classifiers. Можно использовать дефолтный конфиг и адаптировать его под свои нужды. Если у Вас несколько городов очень удобно классифицировать трафик по Exporter.Name и сразу метить его регионом принадлежности.

metadata:
  workers: 10
  provider:
    type: snmp
    communities:
      ::/0: public
core:
  default-sampling-rate: 1000
  workers: 6
  exporter-classifiers:
    - ClassifySiteRegex(Exporter.Name, "^([^-]+)-", "$1")
    - Exporter.Name endsWith ".KRK" && ClassifyRegion("krk")
    - ClassifyTenant("orion")
    - ClassifyRole("clients")
  interface-classifiers:
    - |
      ClassifyConnectivityRegex(Interface.Description, "^(<<|##) (?i)(upstream|transit|peering|pni|ppni|ix):? ", "$2") &&
      ClassifyProviderRegex(Interface.Description, "^(<<|##) (?i)(upstream|transit|peering|pni|ppni|ix):? (\\S+)", "$3") &&
      ClassifyExternal()
    - ClassifyInternal()

Пару слов про импорт сетей, бывает такая потребность если сетей очень много, а их хочется как-то классифицировать, то можно использовать YAML include. Создадим заранее файл network.yaml куда поместим одну сеть для классификации.

109.226.247.0/24:
  name: white-zlgk-clients
  role: clients
  site: white-zlgk
  region: zlgk
  tenant: orion

Чтобы импорт заработал из файла, нам необходимо вернуться в akvorado.yaml и отредактировать его.

clickhouse:
  networks:
    !include "network.yaml"

Суровые реалии российского мелкого провайдеринга будут отображены ниже.

Визуализация данных уже адаптированного akvorado под свои нужды
Визуализация данных уже адаптированного akvorado под свои нужды

Так вот, куча поставщиков, у многих лучшая или худшая связность. Хуже все то, что этим трафиком нужно управлять, потом чувствуешь себя героем мема с Заком Галифианакисом.

Когда планируешь в голове как к тебе придет трафик из этих "ваших" интернетов
Когда планируешь в голове как к тебе придет трафик из этих "ваших" интернетов

Конечно приходится отталкиваться от ширины канала и использовать в лучшем случае BGP Community от магистрального провайдера (например в ещё более лучшем случае использовать BGP Community на Local Preference от той AS откуда идет трафик), в худшем случае использовать самые топорные атрибуты например AS Path...

Или другой мем
Epic Games выпускает обновление Fortnite со Снуп Доггом и мы начинаем смотреть что трафик от Amazon на всех аплинках (P.S. слева Epic Games, справа обычные смертные ISP)
Epic Games выпускает обновление Fortnite со Снуп Доггом и мы начинаем смотреть что трафик от Amazon на всех аплинках (P.S. слева Epic Games, справа обычные смертные ISP)

Необходимость для отслеживания внутреннего трафика

В рамках сети провайдера большое количество трафика от абонентов с применением технологии NAT/CGNAT, отсюда нам необходимо жонглировать трафиком чтобы не перегрузить сервера. Помимо этого знать сколько трафика летит с той или иной агрегации.

Оценка трафика в сторону серых абонентов - сопоставление с NAT-серверами
Оценка трафика в сторону серых абонентов - сопоставление с NAT-серверами

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

Кейс трафика L3-агрегации за L3-агрегацией
Кейс трафика L3-агрегации за L3-агрегацией
Более детальный кейс L3-агрегации за L3-агрегацией

Выводы

Более чем уверен, что большинство из читающих использовали Akvorado по своим нуждам и адаптациям под свою сеть будь то операторы связи или же крупные ЦОД. В рамках статьи постарался показать обычные кейсы только для входящего трафика для тех кто ещё не знаком с этим инструментом. Если вы крупный магистральный оператор с кучей транзитного трафика, конечно Вам не помешает использование BMP благо у Akvorado есть поддержка.

Мое личное мнение, что Akvorado недооцененный продукт, абсолютно бесплатный на данный момент, что немало важно в наше время. Долго наблюдал когда же появится хоть какой-то материал здесь, но его не было.

Всем добра и спасибо за внимание!

Теги:
Хабы:
Всего голосов 6: ↑6 и ↓0+6
Комментарии7

Публикации

Ближайшие события