← К библиотеке
Бизнес Теория

Как работают белые списки и почему CDN спасает

При веерных отключениях мобильный интернет в РФ оставляют работать только к «белому списку» ресурсов. Это не DPI-блок, а allow-list — и обычный VPS-IP в это время недоступен в принципе. Разбираю, как это устроено и как построить вход, который выживает под белыми списками. Теория.

Белый список — это не блокировка

Первое, что надо понять: белый список принципиально отличается от привычной блокировки. Обычно блокировка работает «от противного» — запрещено то, что попало в чёрный список, всё остальное можно. Белый список наоборот: разрешено только то, что в списке, всё остальное запрещено.

При веерных отключениях операторы РФ оставляют мобильный интернет работать только к разрешённым ресурсам — госуслуги, банки, маркетплейсы, отдельные облака. Всё, чего в списке нет, просто недоступно. Твой обычный VPS-IP в это время мёртв не потому, что его заблокировали конкретно, а потому что его нет в списке разрешённого.

Отсюда важное следств: против белого списка не помогает маскировка. Как бы хорошо ни выглядел твой трафик — если IP не в разрешённых, до него не достучаться. Reality, обфускация, смена протокола — всё это про обход чёрных списков и DPI. Против allow-list нужен принципиально другой подход.

Два типа белых списков

Разрешают обычно по двум признакам:

  • По доменам — пропускают трафик к конкретным доменам (госуслуги, банки, крупные российские сайты).
  • По CIDR-диапазонам — пропускают подсети облаков и госорганов (например, сети крупных российских облачных провайдеров).

Списки поддерживаются сообществом, меняются по регионам, и их надо брать свежими — то, что было «белым» вчера, сегодня может выпасть.

Как построить вход, который выживает

Раз маскировка не спасает, задача другая — оказаться внутри разрешённого. Три составляющие:

1. Сервер в «белой» подсети. Берёшь VM там, где IP попадает в разрешённый CIDR. На практике выше всего шанс у крупных российских облаков, чьи подсети чаще попадают в белые списки. Но не каждый IP в такой подсети реально «белый» — приходится перебирать.

2. Правильный SNI. В Reality-инбаунде и хосте ставишь донор SNI из белого списка — например, домен разрешённого ресурса. Тогда рукопожатие выглядит как обращение к разрешённому сайту, и фильтр его пропускает.

3. Каскад. «Белый» РФ-вход (в разрешённой подсети) делает мост на заграничный выход. Провайдер видит только разрешённый российский IP, а реальный трафик уходит за рубеж. Клиент подключается к «белому» входу — и работает даже при отключениях.

Почему CDN — тот же приём, но проще

Вот где смыкаются белые списки и CDN-фронтинг. Крупный CDN (например, российского облака) — это готовая большая сеть, чьи подсети часто попадают в разряд «своих» для фильтрации. Трафик к ней не режут даже под белыми списками.

Поэтому CDN-фронт решает ту же задачу, что и «белый» вход, но без ручного перебора IP: ты прячешь ноду за CDN, клиент коннектится к домену CDN (который в разрешённых), а тот тянет с твоего origin. Снаружи всё выглядит как обращение к легальному крупному сервису.

Разница в подходе:

  • «Белый» вход руками — ты сам находишь IP в разрешённой подсети, перебирая адреса. Больше контроля, больше возни.
  • CDN-фронт — используешь чужую большую «белую» сеть как посредника. Меньше возни, но зависишь от того, что CDN остаётся «своим».

Оба приёма про одно: оказаться внутри разрешённого периметра, а не пытаться его пробить.

Перебор «белого» IP

Раз не каждый IP в подсети реально «белый», приходится перебирать. Логика:

  1. Держишь готовый образ настроенной ноды (снапшот).
  2. Разворачиваешь новые VM или меняешь публичный IP (отцепить/прицепить — быстрее пересоздания).
  3. Проверяешь каждый адрес на «белизну» под мобильными операторами.
  4. В строй берёшь только те, что реально работают под отключениями.

Это ручная рутина, которую автоматизируют инструменты подбора IP — они ролят по «белым» подсетям облаков и проверяют адреса на операторах. Отдельная тема про IP-rolling.

Что отдать клиенту

  • В подписке держи отдельный хост «WL» на «белом» входе (или CDN-фронт) — клиент переключается на него при отключениях.
  • В приложении пусть стоит режим «Авто» — оно само уйдёт на живой сервер.
  • Предупреди в боте: «при веерных отключениях выбирайте сервер с пометкой WL».

Итог

Белый список — это allow-list, а не блокировка, и против него бесполезна маскировка: нужно оказаться внутри разрешённого. Способа два — «белый» вход в разрешённой подсети (руками, с перебором IP) или CDN-фронт (чужая большая «белая» сеть как посредник). Оба ведут в один результат: клиент работает даже когда обычный VPS мёртв.

Как ставить CDN-фронт технически — в практике Yandex CDN; как автоматизировать перебор «белых» IP — в теории про IP-rolling.

Следующий гайд IP-rolling: ротация адресов под давлением → Не понравилась статья или что-то непонятно? Напишите мне — помогу или поправлю. @notrealvpn →
Материал носит образовательный характер и посвящён инженерии сетевой инфраструктуры. Вы отвечаете за соблюдение законов своей юрисдикции.