Pull to refresh

Краткий обзор технологии DPI — Deep Packet Inspection

Reading time 11 min
Views 175K
Я уже несколько лет активно занимаюсь темой DPI, осуществляя пресейл и непосредственно внедрение этих решений. Побудило меня на написание этого топика то, что тема DPI на хабре раскрыта достаточно слабо, поэтому хотелось бы немного рассказать об устройствах, которые применяют ведущие сервис-провайдеры и крупные корпоративные пользователи для интеллектуального управления трафиком в своих сетях, а также пояснить зачем им это всё надо.

Основы


Система DPI, как видно из названия, выполняет глубокий анализ всех проходящих через неё пакетов. Термин «глубокий» подразумевает анализ пакета на верхних уровнях модели OSI, а не только по стандартным номерам портов. Помимо изучения пакетов по неким стандартным паттернам, по которым можно однозначно определить принадлежность пакета определённому приложению, скажем, по формату заголовков, номерам портов и т.п., система DPI осуществляет и так называемый поведенческий анализ трафика, который позволяет распознать приложения, не использующие для обмена данными заранее известные заголовки и структуры данных. Яркий пример тому – Bittorrent. Для их идентификации осуществляется анализ последовательности пакетов, обладающими одинаковыми признаками, таким как Source_IP:port – Destination_IP:port, размер пакета, частота открытия новых сессий в единицу времени и т.д., по поведенческим (эвристическим) моделям, соответствующим таким приложениям. Естественно, сколько производителей такого железа – столько и интерпретаций поведенческих моделей соответствующих протоколов, а значит и точность детектирования также разнится. Раз речь зашла о производителях, стоит отметить, что наиболее крупными игроками и их продуктами на рынке standalone DPI являются Allot Communications, Procera Networks, Cisco, Sandvine. Всё более и более популярными становятся интегрированные в маршрутизаторы решения DPI. Так поступают многие — Cisco, Juniper, Ericsson и т.д. по списку. Такие решения, как правило, достаточно компромиссные, и не могут предоставить весь спектр сервисов, доступных standalone решениям. Однако, для большинства задач этого вполне достаточно. Софтварные продукты, крутящиеся на серверах (такие как OpenDPI) я умышленно не указываю, их рынок весьма узок и, как правило, ограничивается корпоративными/кампусными сетями, а это немного не мой профиль. Важной отличительной особенностью настоящего DPI является возможность аналитики трафика за счёт сбора различного рода статистики с разбивкой по приложениям, по тарифным планам, по регионам, по типам абонентских устройств и т.д. По этой причине замечательный NBAR имени Cisco хоть и позволяет детектировать и осуществлять контроль трафика по приложениям, полноценным решением DPI не является, т.к. в нём отсутствует ряд важных компонентов.

Система DPI, как правило, устанавливается на границе сети оператора в разрыв существующих аплинков, уходящих от пограничных маршрутизаторов. Тем самым, весь трафик, который покидает или входит в сеть оператора, проходит через DPI, что даёт возможность его мониторинга и контроля. Для решения специфических задач можно устанавливать эту систему не на границе сети, а спускать её ниже, ближе к конечным пользователям, на уровень BRAS/CMTS/GGSN/… Это может быть полезно тем операторам, которые по ряду причин помимо утилизации внешних каналов также хотят решать задачу контроля внутренних. Естественно, здесь речь идёт о достаточно крупных сервис-провайдерах с большой распределённой сетью масштабов страны и с достаточно дорогими канальными ёмкостями.

На рынке DPI есть модели на самый разный кошелёк. Производительность представленных на рынке устройств плавает в пределах от сотен Мбит/с до 160 Гбит/с FDX в рамках одной отдельно взятой коробки, которые, как правило, можно объединять в кластеры. Соответственно, и стоимость плавает весьма серьёзно — от нескольких тысяч до миллионов долларов США. В случае с корпоративным сегментам решения предполагают низкоскоростные подключения по медным интерфейсам типов 10/100/1000. Операторские решения рассчитаны на подключение множества линков 1GE и 10GE. Что касается совсем взрослых решений, то пока что рынок 100GE интерфейсов на сетевом оборудовании достаточно скуден и дорог, но как только появится первый реальный бизнес-кейс, вендоры DPI предложат соответствующие решения, ибо у некоторых из них заготовки уже имеются.

Основная проблема всех существующих решений DPI заключается в том, что для того, чтобы однозначно определить принадлежность того или иного потока данных к одному из сетевых приложений, устройство, осуществляющее анализ трафика, должно увидеть оба направления сессии. Иными словами, входящий и исходящий трафик в пределах одного flow должны пройти через одно и то же устройство. Если оборудование понимает, что видит только одно направление в рамках сессии, оно не имеет возможности соотнести данный flow с какой-либо известной категорией трафика со всеми вытекающими последствиями. В связи с этим, когда речь заходит о контроле аплинков, встаёт очень логичный вопрос об асимметричном трафике, который для более-менее крупных операторов является не экзотикой, а обыденностью. Разные вендоры решают эту задачу по-разному:
  • Cisco довольствуется половинкой сессии и пытаются определить тип сетевого приложения, используя лишь эти данные. Очевидно, что при данной методике страдает точность детектирования приложений, особенно тех, для которых требуются поведенческие модели анализа. Также в такой реализации есть ряд ограничений, накладываемых на возможности управления таким трафиком, у каждого вендора они свои.
  • Sandvine для решения проблемы асимметричного трафика использует следующую идею — весь трафик, являющийся асимметричным, при помощи инкапсуляции в broadcast-фреймы пересылается на все устройства DPI, находящиеся в едином домене. В итоге данной пересылки устройства, видевшие до этого лишь одно направление в рамках сессии, увидят и второе, на основании чего можно будет осуществить полный комплекс мер по анализу и управлению трафиком. Недостаток данной схемы очевиден — при больших объёмах асимметричного трафика на сети предъявляются серьёзные требования к каналам связи, соединяющим устройства DPI на разных сайтах. В некоторых случаях, когда речь идёт об асимметрии порядков нескольких гигабит (или десятков гигабит) в секунду, данная методика неприменима в связи с высокими накладными расходами на организацию канала между сайтами.
  • Умнее всех поступают Procera и Allot. Идея похожа на реализацию Sandvine с тем отличием, что между сайтами пересылается не асимметричный трафик, а метаданные, явно характеризующие его. В общем случае можно считать, что это протокольные заголовки, хотя на самом деле всё чуть сложнее. За счёт подобной оптимизации требования к межсайтовым каналам связи намного более гуманны, относительно реализации Sandvine выигрыш может быть до 95%. Предвосхищая некоторые комментарии, отвечу сразу — да, это работает, подтверждено на практике на production сетях, внедрял лично своими руками.

Ещё один важный момент, который является критичным для некоторых заказчиков — это периодичность обновления файлов сигнатур, на основании которых осуществляется анализ трафика. Некоторые вендоры делают обновление раз в квартал, некоторые — раз в неделю. В случае необходимости критическое обновление (содержащее методики обнаружения новой версии скайпа, к примеру) может выйти раньше календарного срока. Как правило, все вендоры адекватно относятся к желаниям заказчиков добавить какой-то новый протокол в список поддерживаемых и всячески помогают в этом. Не секрет, что на каждом локальном рынке существуют специфические приложения, практически отсутствующие в иных странах. В России и странах СНГ самым ярким примером является Mail.ru агент. Или, например, подобный запрос может возникнуть после выхода очередной сетевой игры, которую необходимо выделять из общего потока данных.

Что дальше?


Теперь возникает логичный вопрос – ну и что теперь со всем этим делать? У оператора появляется достаточно мощный инструмент, при умелом использовании которого можно решать различные задачи по эксплуатации сети и её развитию.

Реализация QoS

С точки зрения эксплуатации, оператор может контролировать утилизацию подключенных через DPI каналов на уровне приложений. Раньше он решать задачи реализации QoS (Quality of Service) исключительно средствами построения очередей на основании маркировки трафика служебными битами в заголовках IP, 802.1q и MPLS, выделяя наиболее приоритетный трафик (разного рода VPN’ы, IPTV, SIP и т.д.), и гарантируя ему определённую пропускную способность в любой момент времени. Трафик типа Best Effort, к которому относится весь интернет трафик домашних абонентов (HSI — High Speed Internet), оставался фактически без контроля, что давало возможность тому же Bittorrent забрать себе всю свободную полосу, что, в свою очередь, вело к деградации любых других веб-приложений. С использованием DPI у оператора появляется возможность распределить канал между различными приложениями. К примеру, в ночные часы разрешить трафику Bittorrent забирать себе больше полосы, чем днём, в часы-пик, когда в сети ходит большое количество другого веб-трафика. Другая популярная мера у многих мобильных операторов – блокировка Skype-трафика, а также любых видов SIP-телефонии. Вместо полной блокировки оператор может разрешать работу данных протоколов, но на очень низкой скорости с соответствующей деградацией качества предоставления сервиса у конкретного приложения, чтобы вынудить пользователя платить за услуги традиционной телефонии, либо за специальный пакет услуг, разрешающий доступ к VoIP-сервисам.

Subscriber Management

Важным моментом является то, что правила, на основании которых выполняется шейпинг/блокировка, могут быть заданы посредством двух основных базисов – per-service или per-subscriber. В первом случае простейшим образом оговаривается, что конкретному приложению позволяется утилизировать определённую полосу. Во втором привязка приложения к полосе осуществляется для каждого подписчика или группы подписчиков независимо от других, что производится через интеграцию DPI с существующими OSS/BSS системами оператора. Т.е. можно настроить систему таким образом, что подписчик Вася, который за неделю накачал торрентов на 100 гигабайт, до конца месяца будет ограничен по скорости скачивания этих же торрентов на уровне 70% от купленного им тарифа. А у подписчика Пети, который купил дополнительную услугу под названием «Skype без проблем», трафик приложения Skype не будет блокироваться ни при каких условиях, но любой другой – легко. Можно сделать привязку к User-Agent и разрешить браузинг только при помощи рекомендуемых браузеров, можно делать хитрые редиректы в зависимости от типа браузера или ОС. Иными словами, гибкость тарифных планов и опций ограничена лишь здравым смыслом. Если же речь идёт о трафике мобильных операторов, то DPI позволяет контролировать загрузку каждой базовой станции в отдельности, справедливо распределяя ресурсы БС таким образом, чтобы все пользователи остались довольны качеством сервиса. Разумеется, данную задачу можно решать силами мобильного ядра, но это не всегда бюджетно. Раз уж я упомянул мобильных операторов, то хотелось бы отметить, что каждый уважающий себя производитель пакетного ядра EPC (Evolved Packet Core) для LTE интегрирует в свой PDN-GW функционал DPI, заточенный под решение задач мобильных операторов.

Зачем это всё надо?

Звучит это всё, конечно, не очень оптимистично, но для многих операторов по экономическим причинам значительно дешевле поставить систему DPI для контроля утилизации каналов, чем расширять аплинки. Причём, сделать это без особых потерь абонентской базы, т.к. давно известно, что большая часть трафика генерируется примерно 5% наиболее активных абонентов. И в этом случае оператору экономически целесообразней снизить абонентскую базу, но платить меньше денег за аплинки, т.к. уйдут самые активные качальщики, из-за которых оператор вынужден каждый месяц платить немаленькую сумму за аплинки. Это ночной кошмар любого маркетолога, но в некоторых случаях потерять клиентов – выгодно. Деликатность ситуации заключается в том, что рано или поздно наступит такой момент, когда все операторы так или иначе будут что-либо шейпить при помощи DPI. Т.е. если сегодня один оператор начнёт рубить торренты, самые активные качальщики разом уйдут к другому. После этого у того сильно скакнёт загрузка его каналов и клиенты начнут жаловаться на то, что плохо работает веб-браузинг. Оператор подумает, подсчитает, и в итоге купит DPI. И так до тех пор, пока все игроки на рынке не обзаведутся подобной системой. Разумеется, установка DPI не снимает с оператора задачу по периодическому расширению аплинков и увеличению скорости доступа для подписчиков. Просто теперь эти расширения не будут бесконтрольными. Т.е. оператор всегда будет знать трафик какого типа и в каком количестве пойдёт через его каналы, это будет прогнозируемо. Разумеется, когда речь идёт о коробках стоимостью $1M, дело не только в аплинках, необходимо это понимать. Моё личное мнение в первом приближении, как пользователя услуги широкополосного доступа в интернет, заключается в том, что что-либо резать и блокировать, конечно же, плохо и совершенно неправильно. Но, глядя глазами инженера на то, какими темпами растут объёмы трафика, использование DPI становится спасением для многих операторов, т.к. торренты сегодня способны забить намертво практически любой аплинк.

Новая модель услуг

Мы плавно перешли к задаче развития сети и её услуг. Глядя на то, как подписчики пользуются купленной ими полосой, какие приложения используют, оператор может изучать потребности каждой категории подписчиков и предлагать им более гибкие и совершенные тарифные планы. К примеру, основываясь на том, что подписчики тарифа Silver активно пользуются услугами сторонней SIP-телефонии, можно предложить им дополнительный пакет, позволяющий использовать аналогичный сервис, предоставляемый оператором, но со скидкой. Остальные подписчики при желании воспользоваться более дешёвой телефонией будут мотивированы переходить на более дорогой тариф, приобретая дополнительные бонусы в виде повышения скорости. Можно придумать много кейсов, это лишь один из них. Своё видение персонализированных сервисов представила компания Allot в своей презентации, выдержки из которой упоминаются в материале, когда-то опубликованном на хабре. Подход очень интересный, и выгодный как для пользователя, так и для оператора. Тенденции развития телекоммуникационного рынка таковы, что для операторов продавать трубу, как они делают сейчас, скоро будет просто невыгодно, есть масса исследований, подтверждающих это. ARPU не увеличивается, конкуренция высока, оборудование необходимо апгрейдить всё чаще и чаще, расходы операторов растут, а желание получать прибыль никуда не девается. Задача DPI в данном разрезе — реализовать новые модели предоставления услуг конечному пользователю. Некоторые мировые операторы маленькими шагами уже двигаются к данной идее. В России, очевидно, процесс этот будет долгим и мучительным, т.к. для достижения задачи необходимо перестраивать мозги абонентов на другую частоту, что очень непросто, т.к. отучить человека не качать торренты, а покупать легальный контент — непросто. Я бы не хотел сейчас запускать дискуссию на тему «А где мне брать легальный контент?», это отдельная песня, и я очень рад, что это сдвинулось с мёртвой точки (на примере ivi, omlet, zabava и т.п. совместно с возрастающими продажами Smart TV). Надеюсь, данные проекты не заглохнут. О Netflix я пока не мечтаю, но было бы здорово.

DPI отлично умеет работать в связке с различными VAS (Value Added Services) системами, такими как антиспам, антивирус, видеооптимизаторы и т.п. Суть функционала заключается в отводе части трафика по заданным администратором критериям, на сторонние устройства, для осуществления более глубокого анализа и обработки.

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

Спецслужбы

В конце хотелось бы сказать пару слов о том, для чего также закупается DPI, кроме как для издевательств над абонентами. Оборудование DPI, в связи со своим умением видеть всё и вся, что происходит на сети, является весьма интересным устройством для товарищей в погонах, без которых сейчас никуда. При помощи DPI спецслужбы могут вести наблюдение за сетевой активностью того или иного пользователя. Можно перекрыть ему VPN, HTTPS и прочие прелести, делающие невозможным анализ контента. Разумеется, можно закрывать доступ пользователей к неугодным властям сайтам, что очень актуально в связи с последними событиями в законотворческой деятельности в России.

Сетевой нейтралитет

И, наконец, хотелось бы сказать пару слов о многострадальном сетевом нейтралитете, который существует в некоторых странах. Если коротко, то операторам в отсутствие перегрузок на аплинках нынче запрещено блокировать трафик законных/легальных приложений. Т.е. начать выборочную блокировку любого трафика теперь разрешается только в случае возникновения перегрузки. Но, в то же время, ещё нет чётких формулировок на тему того, какие именно приложения являются законными, а какие – нет. По логике, незаконным может быть только контент, а не приложения. К примеру, детская порнография явно относится к незаконному контенту, но протоколы HTTP и Bittorrent, посредством которых можно осуществлять его передачу – вполне себе легальны. Так что тут имеется ещё достаточно большой простор для споров, а тема, на мой взгляд, весьма интересна. Пока что у нас сетевым нейтралитетом не пахнет, посему у операторов на руках — все карты для управления трафиком при помощи DPI.

Вместо заключения


Надеюсь, данная заметка помогла кому-то немного структурировать свои знания относительно DPI. Я подумаю над тем, чтобы остановиться на каких-то моментах более детально в следующих опусах, ежели на них будет спрос, тема достаточно обширна. Чтобы избежать лишней полемики — лично я, как пользователь услуг ШПД, против того, чтобы что-либо резалось и блокировалось, что ни в коем случае не мешает мне делать свою работу. С радостью отвечу на вопросы.
Tags:
Hubs:
+37
Comments 99
Comments Comments 99

Articles