BRAS DPI-based для «Доступного интернета»

17.03.2020 | Артем Терещенко

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

По мнению главы Ростелекома Михаила Осеевского: «Это не является сложной технической задачей, но, конечно, для нас важен выход каких-то нормативных документов.»

Определим типовую сеть оператора. Недавно на Habr был разбор ТСПУ, в котором приведена самая распространенная архитектура. Краткое пояснение: абонент терминируется на BRAS/BPE/GGSN/PGW, проходит AAA (Authentication, Authorization, Accounting) через Radius/Diameter и выходит в сеть.

Архитектура ТСПУ

Конечно, есть сети, где BRAS/NAT/Border это одно устройство, но в нашем случае этот нюанс не меняет дела.

Отметим, что задача ТСПУ — это черный список, то есть блокировка. Получается, что создание белого списка ложится на плечи оператора.

По факту оператор уже реализует услугу по предоставлению бесплатного доступа абоненту при нулевом/отрицательном балансе (Captive Portal), которая реализуется на сервисном шлюзе — BRAS.
Цель Captive Portal — перевести абонента на web-страницу для информирования о задолженности и предложить варианты оплаты услуги через платежные системы, которые должны быть доступны пользователю.

Большая часть оборудования BRAS предлагает функциональность ACL по IP адресам и подсетям, что накладывает рутинную работу по составлению этого списка и его дальнейшей актуализации на администратора сети.

Белый список на примере vk.com

Как оператор решает это сейчас без DPI системы:

  1. Определить диапазон IP для vk.com: AS47541
  2. Добавить эту подсеть в ACL для Captive Portal

Казалось бы, что этих действий достаточно для доступности всех ресурсов социальной сети. Однако при более глубоком анализе работы, например, если включить трассировку на DPI устройстве для тестового IP, мы увидим, что ВКонтакте использует CDN сети:

gems-vk.akamaized.net -> 188.234.145.146 AS64512  JSC "ER-Telecom" Holding"
gems-vk.g.tapclap.com -> 88.99.64.199 AS24940 Hetzner Online GmbH,

а это означает, что конкретные IP и ASN сети будут «плавать» в зависимости от региона. На что еще надо обратить внимание: значительная часть видео располагается на внешних ресурсах (на том же youtube, rutube и т. д.).

Допустим, что нам не нужно предоставлять доступ к внешним видео ВКонтакте, с учетом того что задача оператора — выполнить закон, но не снизить ценность услуги.
Чтобы обеспечить доступ к бесплатным ресурсам, не снижая ценность доступа в сеть, нам нужно определить доступ не по автономным системам, а с помощью URL/SNI.

С помощью трассировки определяем перечень ресурсов, к которым обращается VK:

vk.com
*.vk.com
userapi.com
*.userapi.com
vkuservideo.net
*.vkuservideo.net
*-vk.akamaized.net
*.vk-portal.net
vk-cdn.net
*.vk-cdn.net
*-vk.g.tapclap.com

С этим перечнем будем работать далее.

Следует отметить, что задача по ограничению доступа к аудио- и видеоматериалам по IP не реализуема, т.к. один и тот же поддомен может располагаться на одном IP.
Если мы говорим о ресурсах меньших, к примеру https://www.gosuslugi.ru, то определять через подсеть AS196747, в которой 4096 адресов, не лучший вариант (в данном диапазоне могут находиться и другие ресурсы, которые не предполагают доступ), а конкретный IP, по которому на момент проверки был доступен ресурс может измениться со временем.

Итого для определения белого списка будем использовать наименования ресурсов с маской, для исключения необходимости отслеживания IP адресов CDN сетей, систем защиты от DDoS и т. п.

Настройка списка на текущем оборудовании

Если брать самые распространенные модели BRAS: Juniper MX, Cisco ASR, Ericsson SE/SSR, нужно отметить, что формирование белого списка возможно только по IP, что будет создавать значительные трудности для администратора системы с учетом примера на vk.com.

Наши клиенты, кто использует BRAS DPI-based реализуют эту задачу элегантнее. DPI технология позволяет строить белый список на основе доменного имени без привязки к конкретному IP адресу или автономной системе. Также доступна гибкая настройка по доступности поддоменов ресурса.

Платформа СКАТ

Пример через GUI

Добавляем к текущему белому списку платежных систем (приведен пример для online.sberbank.ru) два значения: vk.com и *.vk.com (в примере укзаны 2 записи, чтобы показать механику, в реальном кейсе нужно добавить весь перечень из примера).

Эта запись означает, что мы предоставим доступ на основной домен и все поддомены.

Настройка белого списка через GUI

Пример через CLI

  1. Создаем список сайтов, доступных в режиме Captive Portal.

    Создаем файл my_white_list.txt с URL сайтов платежных систем и ресурсов.
    Добавляем информацию по ресурсам соцсети ВКонтакте, определенную выше.

    online.sberbank.ru
    *.online.sberbank.ru
    vk.com
    *.vk.com
    userapi.com
    *.userapi.com
    vkuservideo.net
    *.vkuservideo.net
    *-vk.akamaized.net
    *.vk-portal.net
    vk-cdn.net
    *.vk-cdn.net
    *-vk.g.tapclap.com
  2. Конвертируем во внутренний формат. Список будет одинаковый для http и https (SNI):
    cat my_white_list.txt|url2dic my_url_sni_list.bin
  3. Создаем именованный профиль для белого списка
    fdpi_ctrl load profile —service 5 —profile.name White_list_bank+gos —profile.json ‘{ «url_list» : «/path/to/my_url_sni_list.bin» , «sni_list» : «/path/to/my_url_sni_list.bin», «redirect» : «mysite.ru/block» }’
    где

    • redirect — страница переадресации
    • url_list: белый список URL
    • sni_list: белый список SNI

    Примечание: список по COMMON NAME SSL сертификата использовать не будем, т. к. достаточно идентификатора SNI.

BRAS поддерживает два основных варианта интеграции: метод PUSH и Radius.

После создания профиля White_list_bank+gos можем использовать в атрибутах Radius:

Session-Timeout = 600
User-Name = "subscriber01"
Framed-IP-Address = 10.1.1.2
Framed-IP-Netmask = 255.255.255.255
VasExperts-Policing-Profile = "rate_CaptivePortal_1mbits"
VasExperts-Service-Profile = "11:CG-NAT_pool_001"
VasExperts-Enable-Service = "11:on"
VasExperts-Service-Profile = "5:White_list_bank+gos"
VasExperts-Enable-Service = "5:on" 

В итоге услуга с данным профилем будет назначена абоненту, с привязкой к IP или Login. Login обычно совпадает с идентификатором user-name в Radius, MSISDN или IMSI в мобильный сетях, или с идентификатором абонента в биллинговой системе.

Ресурсы из списка будут доступны для абонента, остальные будут переадресованы на mysite.ru/block или заблокированы при не возможности переадресации, в случае HTTPS.

А что по поводу IPv6?

СКАТ DPI поддерживает Dual Stack IPv4/IPv6, что дает возможность пользователю воспользоваться всеми преимуществами IPv6.
Абоненту выдается IPv4 + IPv6 + IPv6 PD. Для этого обязательно используется постоянный идентификатор Login, к которой в дальнейшем привязываются услуги и полисинг.
Для IPv6 трафика обработка белого списка проводится аналогично IPv4.

Итог

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

Поделиться в социальных сетях