vk_logo twitter_logo facebook_logo googleplus_logo youtube_logo telegram_logo telegram_logo

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

Дата публикации: 11.12.2015
Количество просмотров: 7608

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

Познакомился с продукцией 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 мбит/с.

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


Скриншот сайта speedtest.net, на компьютере кроме браузера ничего не работает.


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

Одновременная закачка через 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. Пришлось подглядеть в скрипте-обработчике событий биллинга.

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

От редакции: если у вас есть чем поделиться с коллегами по отрасли, приглашаем к сотрудничеству
Ссылка на материал, для размещения на сторонних ресурсах
/articles/article/28488/integratsiya-dpi-skat-v-set-odnogo-malenkogo-no-ochen-gordogo-internet-provaydera.html

Комментарии:(23) комментировать

13 декабря 2015 - 12:33
Robot_NagNews:
#1

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

Полный текст


13 декабря 2015 - 12:33
OOPS33:
#2

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


13 декабря 2015 - 13:20
YuryD:
#3

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


14 декабря 2015 - 13:53
DimaM:
#4

Эффективность КЭШ на WEB сайтах сейчас около 4-5% (было почти 20% до "отключения" youtube и vk)
На торрентах во внешних линиях остается 12-14%, остальное удается переключить на внутренние ресурсы.
Эффективность кэширования зависит от размера оператора, рекомендуется абон. база от 10 тыс.
Оператор сам регулирует нагрузку на линию: в ЧНН КЭШ можно переключить исключительно на отдачу,
а наполнение КЭШа осуществлять когда линия простаивает.
В отличии от аналогов КЭШ также умеет работать на зеркале трафика.

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

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

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


14 декабря 2015 - 14:08
DimaM:
#5

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

Изображение

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

Изображение


15 декабря 2015 - 8:16
yman:
#6

Красиво написано, прям купить захотелось, но вот мои 5 копеек:
- ТП действительная классная: и подскажет и софт по запросу обновит; вот только ответ по почте иногда можно ждать 2-3 дня, а по телефону мне как-то сказали "я конечно передам, но вы лучше пишите";
- документация просто ужасна, навигация обескураживает, найти необходимую информацию либо не возможно (по некоторым вещам ее совсем нет), либо быстрее написать в ТП (и подождать, да-да);
- ну и самое главное: ребята конечно позиционируются как оптимизатор трафика (КЭШ, приоретизация, торренты и т.п.), но многие в первую очередь хотят блокировку по спискам.
И если с РКН вопросов нет, то Минюст добавляется в списки с серьезной задержкой (если добавляется вообще?), регулярно набиваю "ручной" список из свежих пунктов Минюста (а его парсить то еще удовольствие).


15 декабря 2015 - 10:20
bossegor:
#7

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


15 декабря 2015 - 11:50
snvoronkov:
#8

Просмотр сообщенияbossegor (15 декабря 2015 - 09:20) писал:

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


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


15 декабря 2015 - 14:20
Sunlounger:
#9

"Гарантировать 100% определения торрет-трафика не сможет ни один DPI в мире"
и это прекрасно!
А если в торрент-клиенте включить шифрование, насколько это эффективно против DPI?


15 декабря 2015 - 15:48
SergoINFOLAN:
#10

Цитата

это эффективно против DPI?

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


Обсудить на форуме

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

Зарегистрироваться