1. Статьи
Заметки пользователей
11.12.2015 11:40
PDF
16576
24

Интеграция DPI СКАТ в сеть одного «маленького, но очень гордого» интернет-провайдера

Меня зовут Павел, я начальник отдела Информационных технологий интернет-провайдера. Все дальнейшее повествования я буду вести от своего лица, так как принимал в этом непосредственное, единоличное участие.

Познакомился с продукцией VAS Experts я достаточно давно, но для меня эта компания была "всего лишь" производителем СОРМ. Мое мнение о них кардинально изменилось с мероприятия, проводимого компанией НАГ под названием "Академия НАГ-2014" в ноябре 2014 г. Во второй день мероприятия проводилась игра, в которой 2 команды должны были представлять различные технические решения. Мне и моей команде достался "СКАТ". В процессе игры мы должны были представить судьям данное ПО, показать его достоинство и посчитать, сколько оно сможет сэкономить денег. В процессе игры я задумался: а почему бы моей компании не протестировать данное ПО в своей сети.

На тот момент (ноябрь 2014г.) в нашей сети было несколько проблем:

  1. Очень высокая цена на трафик от магистралов;
  2. Софтверные брасы на базе mpd5 были перегружены, что вызывало дискомфорт у пользователей в ЧНН.

Целью тестирования данного ПО было решить эти проблемы. Соответственно, задачи, которые должно выполнять данное ПО:

  1. Снизить загрузку каналов связи с магистралами;
  2. Разгрузить брасы путем перенося части функционала на сервер DPI;
  3. Улучшить сервис путем приоритезации трафика (необязательно, но желательно).

Вскоре после окончания Академии НАГ я написал письмо в VAS Experts с просьбой установить для тестирования "СКАТ" в нашу сеть. Первоначально тестирование я планировал произвести на виртуальном сервере, выделил для этого ресурсы, установил ОС Centos 6.5 x64, сделал запрос в ТП на установку ПО. Оказалось, это невозможно. Данное ПО привязано к определенным сетевым платам, и полноценно виртуализировать их невозможно. Пришлось выделять полноценный сервер, им оказался SuperMicro X8DTU c двумя 6-тиядерными CPU Intel XEON E5645, 16GB RAM. С сетевой платой 82576 Gigabit ET Quad Port Adapter. Этого было достаточно для пропуска 2 Gpbs full-duplex. Один из процессоров был удален из сервера по совету ТП, так как все равно не будет нагружен. ОС на сервер я установил ту же, обновил полностью, что сыграло со мной злую шутку, о которой я напишу позже.

Процесс установки ПО на сервер очень затянулся, так как на тот момент вся переписка была по почте, и на каждое сообщение уходило 2-3 дня (после приобретения лицензии на ПО ситуация нормализовалась, мне дали доступ в нормальный HelpDesk, после чего мое общение с ТП значительно ускорилось). Схему подключения я выбрал "в разрыв", пропускал и входящий и исходящий трафик через сервер. Сотрудник ТП предупредил меня о том, что на этой сетевой карте не будет работать bypass. Я смирился с этим, для тестирования мне было достаточно и такого урезанного функционала. Практически сразу после первого письма мне был дан доступ в wiki, где было достаточно подробно описано обо всем, что мне нужно было знать для установки "СКАТ" в сеть.

О настройках, которые я сделал, я напишу позднее, а пока опишу ту злую шутку, о которой я упоминал ранее. В первый же вечер после перевода трафика первого BRAS на "СКАТ", всплыла проблема: скорость у абонентов упала до 0.5 мбит/с, куча дропов, звонки в ТП. Я думаю, такая ситуация знакома каждому провайдеру. Пришлось экстренно возвращать старую схему, без СКАТ. ТП VAS Experts пыталась разобраться в этой проблеме, и выяснилось следующее: вся нагрузка легла на одно ядро, не работал NUMA. Различные настройки, которые мы пытались делать, не привели к успеху. Систему пришлось переустанавливать, и начинать все заново. Произошло это, скорее всего, из-за обновления ядра системы, которое привело к конфликту с ПО. После установки я не стал обновлять систему, и до сих пор (ноябрь 2015, почти год) система ни разу не обновлялась, ядро там 2.6.32-431.el6.x86_64.

После проведения всех тестов, я решил, что ПО достаточно хорошо справляется с  теми задачами, которые я поставил, и компания приобрела лицензию на ПО СКАТ-6 Complete. Наши пользователи не ощутили дискомфорта от снижения скорости загрузки через торрент, но очень хорошо отзывались о приоритезации трафика (перестал заикаться skype во время закачек, стало комфортнее работать в Web ресурсах). Так же я решил купить 6-ти портовый сетевой адаптер Silicom PE2G6BPi35-SD для того, чтобы в случае возникновения внештатных ситуаций включать bypass. C момента окончательной установки в сеть, я практически не имел проблем с ПО и не обращался в ТП, не производил обновлений ПО и т.п., за исключением одного раза, когда потребовалось изменение настроек NUMA из-за возросшей нагрузки. ТП была на высоте и оперативно произвела настройки.

Отдельно скажу о кэширующем сервере. На момент установки "СКАТ" в сеть он был бесплатен для пользователей DPI. Поскольку наша компания планировала купить лицензию на кеширующий сервер CacheMARA XL-4000, у нас был в наличии очень мощный сервер (24*2 ТБ HDD, 2*240 GB SSD, 192 GB RAM, 2 10-ти ядерных процессора). Мы решили попробовать также и кеширующий сервер от  VAS Experts. ТП была немало удивлена, устанавливая Кэшсервер, их требования к аппаратной части сервера были намного скромнее. Однако кэш-сервер так и не ввели в боевой режим из-за многочисленных проблем, которые приводили к дискомфорту наших пользователей.

Вот только немногие из них:

  1. Проблемы с flash роликами на сайтах, то они совсем не показывались, то показывались некорректно.
  2. Проблемы с очень динамически меняющимися картинками – они кэшировались, и показывались старыми.

Ну и конечно самой главной проблемой была низкая эффективность кэширования по сравнению с CacheMARA. Мне был не понятен принцип работы КЭШа, документации практически не было. Мы сочли Кэшсервер сырым и выключили его. Насколько мне известно, сейчас ситуация с кэшсервером значительно улучшилась.

Вернемся к DPI. Из чисто академического интереса, учитывая рекомендации коллег, я решил обновить ПО до последней версии. Залез в wiki, почитал о том, что ядро нельзя обновлять (это я уже знал ценой своей ошибки), проверил версию, которая у меня была установлена:

[root@dpi log]# yum info fastdpi
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: mirror.neolabs.kz
* extras: mirror.neolabs.kz
* updates: mirror.neolabs.kz
* vasexperts: vasexperts.ru
Installed Packages
Name        : fastdpi
Arch        : x86_64
Version     : 1.2
Release     : 2
Size        : 5.9 M
Repo        : installed
From repo   : vasexperts
Summary     : CKAT provides DPI platform and VAS for Broadband Internet providers
URL         : http://fastdpi.ru
License     : http://vasexperts.ru/vas/docs/lic.dpi.scat.v.1.01.pdf
Description : CKAT provides DPI platform and VAS for Broadband Internet providers
           : Please, visit http://www.fastdpi.ru for information

Ввел команду

[root@dpi log]# yum update fastdpi

Подождал несколько секунд, затем:

[root@dpi log]# service fastdpi restart

И все. Все отлично работает, как в прочем, и ранее работало. Конечно, в новой версии очень много все исправили, добавили, но, по сути, мне это все было надо, поскольку и так все хорошо работало.

Приступим к настройкам, которые я сделал.

[root@dpi dpi]# cat ./fastdpi.conf
# FastDPI configuration parameters
#
# Interface pairs for ethernet bridge
#
# For example this setup
#  in_dev=dna0:dna2:dna4
#  out_dev=dna1:dna3:dna5
# creates following bridges:
#  dna0 <--> dna1
#  dna2 <--> dna3
#  dna4 <--> dna5
#
in_dev=dna0:dna2:dna4
out_dev=dna1:dna3:dna5

# Enable automatic update of black list from the Cloud
federal_black_list=false

#Scale factor is about 1 for every 1 Gigabit of bandwidth
scale_factor=3
timeout_check_dev=0

#FDPI Control
ctrl_port=29000
ctrl_dev=lo

#Turn on UDP detection
only_tcp=0

#Set CPU affinity
services_bind_cores=0
ajb_bind_core=0
rx_bind_core=1
engine_bind_cores=2:3:4:5

#Turn on UDR
udr=1
#dbg_log_mask=0x80

Как видно, их совсем немного, но этого вполне достаточно. Блокировка по федеральному списку мне не нужна, поэтому она выключена.

[root@dpi dpi]# cat protocols.txt
skype   cs0
dns     cs0
mpeg    cs0
http    cs1
https   cs1
default cs2
bittorrent cs3

Наивысший приоритет я отдал Skype, DNS, и mpeg потокам, далее http и https, потом весь остальной трафик и, наконец, торрент. Приоритезация работает достаточно эффективно. К примеру, при одновременной закачке файла через торрент и попытке измерить скорость на сайте speedtest.net скорость на сайте показывалась практически максимально возможная, а скоростью закачки в торренте падала до минимума, назначенного в настройках шейпера. Такая настройка очень помогает бороться с теми, кто по знанию или незнанию ставит на закачку фильм в торренте, и пытается делать еще что-то в браузере. В случае обычного шейпера, без DPI, работать бы в браузере или разговаривать по Skype было бы некомфортно (правда это не снимает проблемы со слабыми CPE, на которых закачка файлов через торрент из-за высокого pps забирает все ресурсы, там DPI на высокоскоростных тарифах не поможет).

Пример настройки шейпера для одного из наших тарифных планов.

[root@dpi dpi]# cat Dom1.cfg
htb_inbound_root=rate 9mbit
htb_inbound_class0=rate 2mbit ceil 8mbit
htb_inbound_class1=rate 2mbit ceil 9mbit
htb_inbound_class2=rate 3mbit ceil 9mbit
htb_inbound_class3=rate 1mbit ceil 6mbit
htb_inbound_class4=rate 8bit ceil 8mbit
htb_inbound_class5=rate 8bit ceil 8mbit
htb_inbound_class6=rate 8bit ceil 8mbit
htb_inbound_class7=rate 8bit ceil 8mbit
htb_root=rate 9mbit
htb_class0=rate 2mbit ceil 8mbit
htb_class1=rate 2mbit ceil 9mbit
htb_class2=rate 3mbit ceil 9mbit
htb_class3=rate 1mbit ceil 6mbit
htb_class4=rate 8bit ceil 8mbit
htb_class5=rate 8bit ceil 8mbit
htb_class6=rate 8bit ceil 8mbit
htb_class7=rate 8bit ceil 8mbit

Условия тарифа – 8мбит/с.

Максимальная полоса, отданная клиенту, – 9 мбит/с (с небольшим запасом).

Для серфинга и Skype настройки таковы: минимально 2 мбит/с, максимально – 9 мбит/с.

Торрент – минимально 1 мбит/с, максимально 6 мбит/с.

Остальной трафик – минимально 3 мбит/с, максимально 9 мбит/с.

Как это работает:

Интеграция DPI СКАТ в сеть одного «маленького, но очень гордого» интернет-провайдера
Скриншот сайта speedtest.net, на компьютере кроме браузера ничего не работает.


Интеграция DPI СКАТ в сеть одного «маленького, но очень гордого» интернет-провайдера

Скриншот программы utorrent, на компьютере только торрент.  Скорость закачки получилась около 5,6-5,8 мбит/с.

Интеграция DPI СКАТ в сеть одного «маленького, но очень гордого» интернет-провайдера

Одновременная закачка через utorrent и проверка скорости на сайте speedtest.net.

Результат – около 2,5мбит/с торрент и 6,1мбит/с Speedtest.net. Очень и очень неплохо, я считаю. Гарантировать 100% определения торрет-трафика не сможет ни один DPI в мире.

На интеграцию с биллингом у меня ушло максимум 2 часа. Настроил на сервере с DPI авторизацию SSH по ключу, инструкция как это сделать есть в wiki СКАТ, далее на сервер биллинга установил ключ авторизации, и потом совсем все просто. В скрипте обработчика события запуска сессии добавил строку (скрипт написан на php5):

system("nohup ssh -2 -i /root/.ssh/dpi/id_dsa root@10.0.0.1 /root/connect_user.sh $ARGV_IP $TarTable" /root/jobs &");

где:

  • /root/.ssh/dpi/id_dsa – путь к ключу авторизации,
  • 10.0.0.1 – ИП адрес сервера DPI,
  • $ARGV_IP, переменная, в которой содержится ИП адрес клиента, передается в скрипт из ядра биллинга,
  • $TarTable – идентификатор тарифного плана, передается в скрипт из ядра биллинга.

Содержимое скрипта /root/connect_user.sh, хранящегося на сервере DPI:

[root@dpi ~]# cat ./connect_user.sh
#!/bin/bash

#Usage: ./connect_user.sh UserIP TarTable
cd /root
UserIP=$1
test "$UserIP" || exit 0;
TarTable=$2
test "$TarTable" || exit 0;
echo "${UserIP} ${TarTable}"
if [ ${TarTable} -eq 34 ]
   then
       fdpi_ctrl load --policing  /etc/dpi/Dom1.cfg --ip ${UserIP}
      echo "fdpi_ctrl load --policing  /etc/dpi/Dom1.cfg --ip " ${UserIP} " /root/connect_user.txt
   fi

Для простоты я оставил в скрипте только 1 тариф, на самом деле их гораздо больше. Число 34 в скрипте – это идентификатор тарифа в биллинге. В файл /root/connect_user.txt  пишутся команды реинициализации шейпера на случай, если испортится внутренняя база DPI, и собьются настройки шейпера. У меня за 8 месяцев не пришлось пользоваться этим файлом ни разу, но на всякий случай я его оставил.

Такая схема управления шейпером у меня в сети работала давно, поэтому заняла очень мало времени. Но в первый раз мне пришлось повозиться с авторизацией по ключу значительно больше времени.

Ну, вот в принципе и все, настройки на этом завершены.

Для построения графиков/сбора статистики можно включить режим генерирования netflow и собирать/обрабатывать netflow  одним из коллекторов, к примеру, nfsen. Инструкция по настройке также есть в Wiki. После установки СКАТ, я также установил себе и nfsen, настроил, статистика собиралась, графики рисовались. Но как оказалась, Нашей компании эта статистика не нужна, поэтому я убрал nfsen для экономии ресурсов.

После установки и конфигурирования ПО, я больше не заходил на сервер, и даже забыл ИП для входа по SSH. Пришлось подглядеть в скрипте-обработчике событий биллинга.

Впечатления от работы ПО только положительные, не омрачают их даже те мелкие неприятности, возникшие в начале. Рекомендую всем, по крайней мере, протестировать данное ПО, а принимать решение об интеграции или не принимать – решать Вам. Успехов в работе!

24 комментариев
Оставлять комментарии могут только авторизованные пользователи
Robot_NagNews
Robot_NagNews

Материал:

Меня зовут Павел, я начальник отдела Информационных технологий интернет-провайдера. Все дальнейшее повествования я буду вести от своего лица, так как принимал в этом непосредственное, единоличное участие.

 

Полный текст

OOPS33
OOPS33

Конечно про сам СКАТ актуально, и действительно очень полезная софтинка. И полная ей противоположность ей это кэш который к ней прикручивается, эфективность его около "0" если не отрицательная, в сети появилась железка которая не только экономит канал, но и сама его неплохо нагружает. Графики на сайте разработчика очень мягко говоря не соответствуют действительности. Это при отключенном YOTUBE, OK, VK по рекомендации разрабо-в. Действительно при включении данных направлений поступает масса жалоб от пользователей. И что самое печальное эта надстройка стоит далеко не 3 копейки. По самому СКАТу хотелось бы возможность работы не только с одним блэклистом, но дальше обещалок от разработчиков дело опять же не движется. А так действительно, на мой взгляд комплекс обладает колоссальным потенциалом, НО....

YuryD
YuryD

Кэш - мне не нужен. А скат6енти- очень помогает прикрыть попу от мизулинских законов. Это просто минимизация затрат на исполнение законов. И вообще - техсаппорт нормальный, если им дать ssh. Правда есть тёмные моменты, типа загрузок списков из облака, вроде не отплатишь саппорт - не работает. Но мы оплатили, и на этот сервер с байпас-картами я уже пару месяцев не заходил, а он - работает, сам, один, без ансамбля..

DimaM
DimaM

Эффективность КЭШ на WEB сайтах сейчас около 4-5% (было почти 20% до "отключения" youtube и vk)

На торрентах во внешних линиях остается 12-14%, остальное удается переключить на внутренние ресурсы.

Эффективность кэширования зависит от размера оператора, рекомендуется абон. база от 10 тыс.

Оператор сам регулирует нагрузку на линию: в ЧНН КЭШ можно переключить исключительно на отдачу,

а наполнение КЭШа осуществлять когда линия простаивает.

В отличии от аналогов КЭШ также умеет работать на зеркале трафика.

 

Рассчитан КЭШ на крупных операторов, может работать на сети в несколько сотен гигабит/c.

Сейчас ставим его в IX и где он обслуживает сразу нескольких операторов.

 

Цена на КЭШ сейчас очень низкая: примерно равна оплате 2 недель работы кэшмары.

 

В ближайших планах поддержка динамических ссылок, что приведет к

существенному увеличению эффективности. Но по мере роста эффективности и цена

вероятно подтянется ближе к конкурентам.

DimaM
DimaM

КЭШ хорошо помогает для сглаживания пиков при выходе обновлений программ

 

mailruagent.png

 

График отдачи из кэша по типам трафика

 

cacheout.jpg

yman
yman

Красиво написано, прям купить захотелось, но вот мои 5 копеек:

- ТП действительная классная: и подскажет и софт по запросу обновит; вот только ответ по почте иногда можно ждать 2-3 дня, а по телефону мне как-то сказали "я конечно передам, но вы лучше пишите";

- документация просто ужасна, навигация обескураживает, найти необходимую информацию либо не возможно (по некоторым вещам ее совсем нет), либо быстрее написать в ТП (и подождать, да-да);

- ну и самое главное: ребята конечно позиционируются как оптимизатор трафика (КЭШ, приоретизация, торренты и т.п.), но многие в первую очередь хотят блокировку по спискам.

И если с РКН вопросов нет, то Минюст добавляется в списки с серьезной задержкой (если добавляется вообще?), регулярно набиваю "ручной" список из свежих пунктов Минюста (а его парсить то еще удовольствие).

bossegor
bossegor

Примерная стоимость ската?

snvoronkov
snvoronkov

Примерная стоимость ската?

http://shop.nag.ru/catalog/14605.SKAT

Sunlounger
Sunlounger

"Гарантировать 100% определения торрет-трафика не сможет ни один DPI в мире"

и это прекрасно!

А если в торрент-клиенте включить шифрование, насколько это эффективно против DPI?

SergoINFOLAN
SergoINFOLAN
это эффективно против DPI?
вам просто линию подрежут по скорости и ищите другого прова, делов то. Против DPI не попрёшь!