Руководство нашей страны решило защитить нравственность, чувства и мысли граждан, ограничив им доступ к разнообразной информации на просторах Интернета. Можно обсуждать, почему власть взяла на себя функции общества, но вряд ли ответ на этот вопрос изменит участь операторов связи — им надлежит претворять закон в жизнь. Как это водится, инициатива получила продолжение — возникли идеи новых ограничений: нецензурной лексики, нелицеприятных комментариев и т.п. До реализации пока дошло лишь ограничение доступа к нелицензионным видеофильмам.
От философии — к реальной практике
Для простоты предлагаю считать, что борьба с распространением нелицензионного контента — благо как для правообладателей, так и для потребителей, хотя и тут есть разные точки зрения. Удивляет механизм этой борьбы: заставить операторов связи блокировать доступ к сайтам с нелицензионными фильмами. Никто не собирается убеждать, наказывать и разъяснять что-либо непосредственным участникам преступления — конечным пользователям. Вместо этого создаются барьеры к распространению, то есть операторов обязывают инвестировать в защиту прав производителей фильмов. Выглядит это по меньшей мере несправедливо, потому как различные продавцы цифрового контента и так пользуются чужими вложениями или, говоря проще, паразитируют на сетях широкополосного доступа.
Помнится, был период, когда с улиц пропали урны. Если до этого мусор боялся людей, робко выглядывал из корзин или — на пределе разнузданности — раскидывал отдельные щупальца по соседству, то с исчезновением мест временного хранения он стал вездесущим и наглым. Защита правообладателей напоминает этот способ борьбы с мусором. Однако отношение к тому или иному закону не избавляет операторов от необходимости его выполнения.
Как же претворить в жизнь то, чего требуют партия и правительство? Есть по меньшей мере три способа:
- анализ копии исходящего HTTP-трафика и информирование абонента при обращении к заблокированным страницам;
- использование прокси-сервера;
- фильтрация посредством DPI.
По линии наименьшего сопротивления
Анализ исходящего трафика — самый простой способ, поскольку использующая его система может работать с копией трафика, что значительно снижает требования к ее надежности. В случае выхода решения из строя абоненты продолжат пользоваться услугами, но уже без фильтрации неблаговидных страниц и рассадников нелицензионных фильмов. Кроме того, достаточно анализировать исходящий трафик, которого в десятки раз меньше, чем входящего (по сути это только запросы HTTP Get), отслеживая запросы к URL’ам, содержащимся в базах Роскомнадзора. При обнаружении запроса к нелицеприятной странице системе надлежит разорвать TCP-соединение, направив пакет с соответствующим флагом в сторону сервера, чтобы он в спешке не отправил-таки абоненту что-либо. В сторону же браузера абонента можно ничего не отправлять.
Однако отсутствие ответа от сервера может взволновать так хорошо защищенную от горестей и невзгод психику абонента, возможно, даже спровоцирует его на звонок в службу поддержки, чего, конечно, хочется избежать. Поэтому правильно будет грамотно разъяснить абоненту причину такой несуразности, а значит, система должна одновременно с пакетом в сторону сервера переслать на браузер команду HTTP Redirect со ссылкой на страницу, где абонент увидит сообщение о том, кто заботится о его моральном облике и нравственности.
Следует отметить, что такой метод требует некоторой расторопности, ведь система должна успеть прислать HTTP Redirect до того, как придет ответ от сервера, к которому ломился абонент. Минимальное время ответа серверов, ссылки на которые внесены в реестр, составляет 150 мс. Ожидать, что это время будет сокращаться, пока не приходится, поскольку почти все эти серверы расположены на зарубежных площадках. Судя по сообщениям российских хостинговых компаний, «эмиграция» сайтов продолжается.
На среднем по производительности х86-ом железе на проверку совпадения URL и отправку пакетов требуется менее 50 мс, еще несколько миллисекунд тратится на копирование трафика на маршрутизаторе и его передачу на сервер. Иными словами, все должно работать — и работает. Но в том случае, если решите установить одну систему фильтрации на большую территориально распределенную сеть, придется маршрутизировать трафик, чтобы он проходил вблизи оборудования системы фильтрации, и копировать трафик где-то рядом с сервером.
Хитроумное решето
Есть еще один способ сократить объем трафика — фильтровать его по IP-адресам. Для этого система должна периодически обращаться к DNS, получая IP-адреса хостов, упомянутых в «нехороших» URL’ах, и настраивать сеть таким образом, чтобы копировался только исходящий трафик в направлении этих адресов. Не будем останавливаться на способах направления выделенного трафика к системе фильтрации и управлении копированием трафика, потому как они сильно варьируются в зависимости от архитектуры сети, используемого оборудования и предпочтений сетестроителей. Следует лишь отметить, что это технически решаемая задача.
Последней сложностью на пути защиты страны от всяческого зла может стать интенсивность обращений. При большом потоке запросов, требующих разрыва сессий и перенаправления абонентов на страницы с информационным сообщением о блокировке, система может отвечать с большей задержкой и, как следствие, перестать функционировать. Вероятность подобного мала в свете количества заблокированных страниц и интенсивности обращения к ним. Операторам, которые считают этот риск значимым, можно предложить решение, в котором анализ абонентских запросов и разрывы соединений реализуются на специализированных сетевых процессорах. Такие системы в силу их ориентации на интенсивные потоки пакетов позволяют обрабатывать десятки тысяч запросов в секунду без изменения времени реакции.
Внедряя такую систему, ваш покорный слуга выяснил, что помимо своей основной функции она может даже приносить некоторую пользу абонентам. В частности, помимо «забракованных» Роскомнадзором страниц она может также блокировать ссылки на вирусы, серверы управления бот-сетями и прочую пакость. Функционально ничего дорабатывать не требуется, необходим лишь интерфейс связи с системами антивирусной защиты.
Итак, мониторинг копии исходящего HTTP-трафика позволяет решить проблему достаточно экономично. Правда, система анализа требует интеграции с сетью — как минимум для управления копированием трафика, а возможно, и для реконфигурирования сети. Зато решение не стоит на пути предоставления услуг и в случае сбоя не создает дополнительных проблем абонентам.
Перенаправляй и властвуй
На первый взгляд использование HTTP-прокси может показаться более простым решением: установил сервер, повернул на него трафик и настроил фильтры. Но есть сложности и на этом пути. Прокси должен быть «прозрачным», то есть сохранять исходные IP-адреса, — в противном случае нарушаются механизмы обработки на многих сайтах. При этом прокси обрабатывает как исходящий, так и входящий трафик. Иными словами, оператору предстоит увлекательное упражнение по перенастройке сетевых маршрутизаторов, дабы они перестали работать в обычном режиме, направляя пакеты в соответствии с IP-адресом назначения, а отправляли часть трафика на прокси.
Блажен обладающий лишь несколькими граничными маршрутизаторами, да еще и расположенными недалече! В этом случае можно отправить и трафик от абонента к web-серверам, и их ответы на балансировщик нагрузки, а к нему уже подключить прокси. Поскольку последний стоит на пути абонентского трафика, нужно обеспечить его надежность. Как следствие, требуется не менее двух серверов. Конечно, можно организовать маршрутизацию так, чтобы трафик попадал на один прокси-сервер и переключался на резервный в случае сбоя первого, без использования балансировщика.
Однако задача это не самая тривиальная, существенно проще решать ее с помощью специального оборудования. Кроме того, с большой вероятностью производительность прокси не позволит обработать весь трафик (входящий и исходящий) на одном сервере.
Следовательно, придется разделять нагрузку между двумя (4, 8 и т.д.) серверами. Вот тут балансировщик и потребуется.
Если граничные маршрутизаторы распределены географически, подключить прокси на их уровне будет сложно. Единственным выходом станет установка сервера поблизости от маршрутизаторов, к которым подключены абоненты. Поскольку таковых, как правило, значительно больше, то и размерность задачи существенно возрастает. Есть надежда, что развитие программно управляемых сетей (Software Defined Networks, SDN) сильно упростит управление трафиком, обеспечив выборочное перенаправление его части на необходимое сервисное устройство. Однако пока технология только выбирается на свет, и как она будет работать, нам только предстоит узнать.
В свете перечисленных сложностей разумный читатель усомнится в том, что автор относится к одному с ним виду существ, ибо зачем же так мучиться-то?! Есть, есть причины. Наличие точки, где можно анализировать абонентский трафик, сулит многие блага. Например, можно понять, куда «ходят» пользователи (семантический анализ позволяет определять это на лету), и формировать профили пристрастий абонента (для контекстной рекламы). Или организовать услуги, связанные с контролем доступа к разным ресурсам (родительский контроль для частников, управляемый web-доступ для компаний). И еще много всякого. Вы можете ринуться в пучину сию самостоятельно или воспользоваться технологиями более опытных товарищей, например Ашманова, но только если преодолеете сетевые трудности и установите необходимое количество серверов: чем сложнее задача, тем более вычислительных ресурсов она требует.
Проницательный взгляд
Напоследок упомянем системы «глубокой» проверки сетевых пакетов (Deep Packet Inspection, DPI): они могут не только угадывать протоколы, которые используются в сети, но и заглядывать внутрь оных, дабы прояснить детали совершаемых абонентами действий. Такое решение изначально блокирует обращения к определенным URL’ам.
Главное — автоматизировать настройки и общение с реестрами, чтобы не мучить администраторов этим неблагодарным трудом. Системы DPI могут быть надежными и производительными… нужно только заплатить за это.
Резюме
Наверное, автор упустил еще несколько вариантов, но даже этот краткий список позволяет судить о том, что задача контроля над поведением пользователей не является столь уж простой и легко реализуемой. Тенденция вмешательства разного рода регулировщиков в интернетостроение заставляет операторов задумываться о том, что количество подобных задач будет расти, следовательно, при переделке сетей следует это учитывать.
Андрей Флейта,
директор дивизиона прикладных разработок «Энвижн Груп»