This media is not supported in your browser
VIEW IN TELEGRAM
Есть два способа закрыть интернет. И второй сильно страшнее.
Чёрный список — «вот что запрещено, остальное можно». Белый список — «вот что разрешено, остального не существует».
В ролике — как выглядят оба режима и почему шифрованному туннелю всё равно, по какому списку работает фильтр.
Чёрный список — «вот что запрещено, остальное можно». Белый список — «вот что разрешено, остального не существует».
Разница не в количестве сайтов, а в принципе: во втором режиме интернет закрыт по умолчанию.
В ролике — как выглядят оба режима и почему шифрованному туннелю всё равно, по какому списку работает фильтр.
This media is not supported in your browser
VIEW IN TELEGRAM
Угадай, сколько стоит блокировать интернет.
Только на оборудование фильтрации заложили около 60 миллиардов рублей. Плюс фильтры у каждого провайдера, тысячи сотрудников, реестры и проверки — каждый год.
В ролике — почему в этой гонке защита всегда дешевле нападения.
Только на оборудование фильтрации заложили около 60 миллиардов рублей. Плюс фильтры у каждого провайдера, тысячи сотрудников, реестры и проверки — каждый год.
Весь этот забор обходится шифрованным туннелем за пару сотен рублей в месяц.
В ролике — почему в этой гонке защита всегда дешевле нападения.
Путь одного запроса: куда уходят эти двести миллисекунд
Нажал на ссылку — и через мгновение видишь страницу. Кажется, будто это происходит мгновенно. На деле за это время устройство успевает провернуть цепочку из полудюжины разных операций, и каждая может стать узким местом.
Разберу на примере: ты открыл ссылку на сайт, которого раньше не было в кэше.
— DNS. Прежде чем куда-то обратиться, устройство должно узнать IP-адрес по имени домена. Это отдельный запрос — на DNS-сервер, обычно провайдера или публичный. Если адрес уже запрашивался недавно, он лежит в кэше — и этот шаг вообще пропускается.
— TCP-соединение. Дальше устройство и сервер обмениваются тремя пакетами — «здравствуй», «здравствуй, слышу тебя», «отлично, начинаем». Это называется рукопожатием: без него ни один байт данных ещё не передан, стороны только договорились, что канал открыт.
— TLS-рукопожатие. Если соединение защищённое, сверху добавляется ещё один обмен: стороны договариваются, каким шифром пользоваться, и обмениваются ключами. Именно на этом шаге проверяется сертификат сайта — отсюда предупреждение «соединение не защищено», если что-то не так.
— Запрос и ответ. Только теперь отправляется сам HTTP-запрос — и начинается ожидание первого байта ответа. Сервер должен успеть обработать запрос: сходить в базу, собрать страницу, отдать данные.
— Рендер. Данные пришли — но их ещё нужно превратить в картинку на экране: разобрать разметку, подгрузить стили и скрипты, посчитать раскладку.
Практический вывод: половину этой цепочки можно сократить заранее, а не тогда, когда пользователь уже ждёт ответа перед экраном.
Что можно проверить самому, если сайт или бот кажется медленным: не в первый ли раз ты сюда заходишь — первый визит всегда дороже из-за DNS и рукопожатий; какая сеть у тебя сейчас — задержка на мобильной обычно выше, чем на Wi-Fi, и на каждом круге обмена это чувствуется сильнее; а если разрабатываешь сам — вкладка с сетевыми запросами в инструментах браузера прямо показывает, сколько времени ушло на каждый из этих шагов по отдельности.
Так что двести миллисекунд — это не просто пауза перед загрузкой. Это маленькая история о том, как две незнакомые машины успевают договориться, убедиться, что друг другу можно доверять, и обменяться данными — быстрее, чем ты моргнёшь.
Нажал на ссылку — и через мгновение видишь страницу. Кажется, будто это происходит мгновенно. На деле за это время устройство успевает провернуть цепочку из полудюжины разных операций, и каждая может стать узким местом.
Разберу на примере: ты открыл ссылку на сайт, которого раньше не было в кэше.
— DNS. Прежде чем куда-то обратиться, устройство должно узнать IP-адрес по имени домена. Это отдельный запрос — на DNS-сервер, обычно провайдера или публичный. Если адрес уже запрашивался недавно, он лежит в кэше — и этот шаг вообще пропускается.
— TCP-соединение. Дальше устройство и сервер обмениваются тремя пакетами — «здравствуй», «здравствуй, слышу тебя», «отлично, начинаем». Это называется рукопожатием: без него ни один байт данных ещё не передан, стороны только договорились, что канал открыт.
— TLS-рукопожатие. Если соединение защищённое, сверху добавляется ещё один обмен: стороны договариваются, каким шифром пользоваться, и обмениваются ключами. Именно на этом шаге проверяется сертификат сайта — отсюда предупреждение «соединение не защищено», если что-то не так.
— Запрос и ответ. Только теперь отправляется сам HTTP-запрос — и начинается ожидание первого байта ответа. Сервер должен успеть обработать запрос: сходить в базу, собрать страницу, отдать данные.
— Рендер. Данные пришли — но их ещё нужно превратить в картинку на экране: разобрать разметку, подгрузить стили и скрипты, посчитать раскладку.
Каждый из этих шагов — отдельный круг обмена данными между тобой и сервером. Если сервер физически далеко, каждый круг — это лишние миллисекунды на одну только дорогу туда и обратно.
Практический вывод: половину этой цепочки можно сократить заранее, а не тогда, когда пользователь уже ждёт ответа перед экраном.
Как это ускоряют на практике: DNS кэшируют или резолвят заранее, для повторных заходов держат соединение открытым вместо того чтобы каждый раз здороваться заново (keep-alive), вместо одного далёкого сервера отдают контент с ближайшей точки — так падает та самая дорога туда и обратно. Ещё один приём — новые версии протоколаHTTP/2иHTTP/3: они тащат сразу несколько запросов через одно и то же соединение, не открывая рукопожатие заново для каждой картинки на странице.
Что можно проверить самому, если сайт или бот кажется медленным: не в первый ли раз ты сюда заходишь — первый визит всегда дороже из-за DNS и рукопожатий; какая сеть у тебя сейчас — задержка на мобильной обычно выше, чем на Wi-Fi, и на каждом круге обмена это чувствуется сильнее; а если разрабатываешь сам — вкладка с сетевыми запросами в инструментах браузера прямо показывает, сколько времени ушло на каждый из этих шагов по отдельности.
Так что двести миллисекунд — это не просто пауза перед загрузкой. Это маленькая история о том, как две незнакомые машины успевают договориться, убедиться, что друг другу можно доверять, и обменяться данными — быстрее, чем ты моргнёшь.
This media is not supported in your browser
VIEW IN TELEGRAM
Твой интернет не тормозит. Его тормозят.
Тариф честный — сто мегабит на месте. Но провайдер видит, какой трафик ты гонишь, и может резать скорость выборочно: видео — в час пик, остальное — как повезёт. Это называется шейпинг.
В ролике — как это устроено и почему в шифрованном туннеле резать нечего.
Тариф честный — сто мегабит на месте. Но провайдер видит, какой трафик ты гонишь, и может резать скорость выборочно: видео — в час пик, остальное — как повезёт. Это называется шейпинг.
Замедление — та же блокировка, только трусливая: ничего не запрещено, просто невозможно пользоваться.
В ролике — как это устроено и почему в шифрованном туннеле резать нечего.
Предел, который нельзя обойти никаким кодом
Все трюки из дневного поста — кэшируем DNS, держим соединение открытым, ставим сервер ближе — борются с одним и тем же врагом: скоростью света. Данные физически не могут двигаться быстрее неё, даже по самому лучшему оптоволокну.
Из Москвы до сервера в Сан-Франциско и обратно — это порядка пятнадцати тысяч километров по прямой, и даже если бы кабель шёл идеально по кратчайшей дуге, чистое время в пути всё равно набегало бы на десятки миллисекунд. Просто потому что так устроена физика, а не потому что кто-то плохо написал код.
Так что когда сайт тормозит — не всегда виноват программист. Иногда виноват просто глобус.
А у вас какой самый долгий пинг был до сервера? Делитесь — интересно, у кого дальше всех.
Все трюки из дневного поста — кэшируем DNS, держим соединение открытым, ставим сервер ближе — борются с одним и тем же врагом: скоростью света. Данные физически не могут двигаться быстрее неё, даже по самому лучшему оптоволокну.
Из Москвы до сервера в Сан-Франциско и обратно — это порядка пятнадцати тысяч километров по прямой, и даже если бы кабель шёл идеально по кратчайшей дуге, чистое время в пути всё равно набегало бы на десятки миллисекунд. Просто потому что так устроена физика, а не потому что кто-то плохо написал код.
Так что когда сайт тормозит — не всегда виноват программист. Иногда виноват просто глобус.
Инженеры десятилетиями пытаются обмануть эту физику через кэши и CDN — но саму скорость света обойти пока не вышло ни у кого.
А у вас какой самый долгий пинг был до сервера? Делитесь — интересно, у кого дальше всех.
2018 год. Пытаются заблокировать Telegram — и заодно кладут половину рунета.
Чтобы достать один мессенджер, заблокировали больше 15 миллионов IP-адресов Amazon Web Services и Google Cloud. Логика простая: Telegram прячет серверы за облачными провайдерами — значит, блокируем весь диапазон. Только на этих же адресах жили десятки других сервисов, вообще не связанных с мессенджером: магазины, банковские API, игры. Легли они. Telegram — нет.
Это и есть эффект гидры: срубаешь голову — вырастают две. Дело не в мистике, а в том, как устроена сама блокировка.
По шагам, что происходит технически:
— Блокировка — это список: IP-адреса или домены, которые нельзя открыть.
—
— Сервис меняет IP или домен — список моментально устаревает.
— На освободившееся место встают зеркала и прокси — их больше, чем было исходных адресов.
— Если трафик завёрнут в шифрованный туннель, DPI вообще не видит, куда ты идёшь — только то, что это туннель.
Практический вывод: блокировка по IP или домену — временная мера, она убивает не сервис, а только его текущий адрес. Дальше это вопрос скорости, с которой сервис успевает переехать.
VPN, которым пользуюсь сам, — в закрепе.
Чтобы достать один мессенджер, заблокировали больше 15 миллионов IP-адресов Amazon Web Services и Google Cloud. Логика простая: Telegram прячет серверы за облачными провайдерами — значит, блокируем весь диапазон. Только на этих же адресах жили десятки других сервисов, вообще не связанных с мессенджером: магазины, банковские API, игры. Легли они. Telegram — нет.
Это и есть эффект гидры: срубаешь голову — вырастают две. Дело не в мистике, а в том, как устроена сама блокировка.
По шагам, что происходит технически:
— Блокировка — это список: IP-адреса или домены, которые нельзя открыть.
—
DPI сверяет твой запрос с этим списком по метаданным трафика.— Сервис меняет IP или домен — список моментально устаревает.
— На освободившееся место встают зеркала и прокси — их больше, чем было исходных адресов.
— Если трафик завёрнут в шифрованный туннель, DPI вообще не видит, куда ты идёшь — только то, что это туннель.
Интернет проектировали как сеть, которая переживёт повреждение любого узла. Точечная блокировка для такой архитектуры — рядовая неисправность, а не стена.
Практический вывод: блокировка по IP или домену — временная мера, она убивает не сервис, а только его текущий адрес. Дальше это вопрос скорости, с которой сервис успевает переехать.
VPN, которым пользуюсь сам, — в закрепе.
А если заблокировать не список, а вообще всё?
Гидра работает, потому что блокировка обычно устроена как чёрный список: запрещено вот это, всё остальное — можно. У сервиса всегда есть свободное место, куда переехать.
Но есть и другая модель — белый список: разрешено только явно одобренное, всё остальное закрыто по умолчанию. Тут гидре расти некуда — новый адрес просто не попадёт в список разрешённых. Это архитектурно другая система, которую тяжело развернуть поверх уже открытой сети — проще строить с нуля.
Разница не в жёсткости блокировки, а в том, кто по умолчанию имеет право говорить: все или только избранные.
Как думаете, реально ли перевести уже открытую сеть на белый список — или для этого просто поздно?
Гидра работает, потому что блокировка обычно устроена как чёрный список: запрещено вот это, всё остальное — можно. У сервиса всегда есть свободное место, куда переехать.
Но есть и другая модель — белый список: разрешено только явно одобренное, всё остальное закрыто по умолчанию. Тут гидре расти некуда — новый адрес просто не попадёт в список разрешённых. Это архитектурно другая система, которую тяжело развернуть поверх уже открытой сети — проще строить с нуля.
Разница не в жёсткости блокировки, а в том, кто по умолчанию имеет право говорить: все или только избранные.
Как думаете, реально ли перевести уже открытую сеть на белый список — или для этого просто поздно?
This media is not supported in your browser
VIEW IN TELEGRAM
Заблокировать интернет — нельзя.
Любая блокировка для сети — просто повреждение, а интернет придумали так, чтобы данные обходили повреждения. Закрывают один сервис — на его месте появляются два новых.
С этого ролика всё началось — держите первый выпуск, если пропустили.
Любая блокировка для сети — просто повреждение, а интернет придумали так, чтобы данные обходили повреждения. Закрывают один сервис — на его месте появляются два новых.
Каждая громкая блокировка — лучшая реклама инструментов обхода.
С этого ролика всё началось — держите первый выпуск, если пропустили.
Словарь Груба: DPI
Обычная блокировка работает по списку: есть запрещённый IP или домен — пакет к нему не пропускаем.
Пример из разговора: «У провайдера стоит
Как это работает по шагам:
— пакет проходит через оборудование провайдера ещё до выхода в интернет;
—
— при совпадении применяется правило — блокировка, замедление или пропуск;
— если трафик зашифрован и лишён узнаваемых признаков,
Отсюда и практический вывод: «просто шифрование» прячет содержимое, а маскировка под привычный протокол прячет сам факт обхода. Именно второе спасает от
DPI (Deep Packet Inspection) — это когда оборудование провайдера заглядывает не в адрес трафика, а внутрь самих пакетов, чтобы понять, что именно ты передаёшь.Обычная блокировка работает по списку: есть запрещённый IP или домен — пакет к нему не пропускаем.
DPI устроен иначе. Он анализирует метаданные соединения — длину пакетов, порядок обмена, характерные байты в начале TLS-рукопожатия — и по этим признакам угадывает протокол, даже если сам адрес ему незнаком.Пример из разговора: «У провайдера стоит
DPI, он видит, что это VPN, ещё не зная, к какому серверу ты подключился» — то есть распознавание идёт по «отпечатку» протокола, а не по конечной точке.Как это работает по шагам:
— пакет проходит через оборудование провайдера ещё до выхода в интернет;
—
DPI сверяет паттерны заголовков и тайминги с базой известных протоколов;— при совпадении применяется правило — блокировка, замедление или пропуск;
— если трафик зашифрован и лишён узнаваемых признаков,
DPI его просто не классифицирует.Важна не только зашифрованность трафика, но и его неотличимость от обычного HTTPS — это два разных уровня защиты.Отсюда и практический вывод: «просто шифрование» прячет содержимое, а маскировка под привычный протокол прячет сам факт обхода. Именно второе спасает от
DPI, а не только от блокировки по списку.This media is not supported in your browser
VIEW IN TELEGRAM
Что происходит между кликом и открытием сайта
В ролике — путь запроса: ты → провайдер → фильтр → сайт. Деталь, которая туда не поместилась: фильтр смотрит на разное на разных этапах.
VPN, которым пользуюсь сам, — в закрепе.
В ролике — путь запроса: ты → провайдер → фильтр → сайт. Деталь, которая туда не поместилась: фильтр смотрит на разное на разных этапах.
DNS-запрос выдаёт домен в открытом виде. Дальше, уже в самом соединении, смотрят на метаданные пакетов. Поэтому один и тот же сайт иногда блокируют дважды — по адресу и отдельно по «отпечатку» трафика.Туннелю всё равно, потому что он меняет оба этапа разом: и то, что ты запрашиваешь, и то, как выглядит сам трафик для фильтра.
VPN, которым пользуюсь сам, — в закрепе.
Забавный побочный эффект блокировки по IP
Если блокировка работает по IP-адресу, а не по домену, у неё есть интересный эффект. Многие сайты сегодня живут не на своём сервере, а на общей инфраструктуре — один IP может обслуживать сотни разных доменов одновременно. Заблокировать по такому адресу один «нужный» сайт — значит заодно уронить ещё сотню случайных, которые просто оказались соседями по адресу.
Так время от времени переставали открываться сервисы, вообще не имевшие отношения к цели блокировки — у них просто был неудачный сосед по IP.
Получается забавно: чем точнее хочешь бить, тем менее точный инструмент приходится включать — точность по домену требует заглядывать внутрь трафика, а точность по IP бьёт по площадям.
А у тебя было такое — сайт вдруг переставал открываться без видимой причины, а потом выяснялось, что дело вообще не в нём?
Если блокировка работает по IP-адресу, а не по домену, у неё есть интересный эффект. Многие сайты сегодня живут не на своём сервере, а на общей инфраструктуре — один IP может обслуживать сотни разных доменов одновременно. Заблокировать по такому адресу один «нужный» сайт — значит заодно уронить ещё сотню случайных, которые просто оказались соседями по адресу.
Так время от времени переставали открываться сервисы, вообще не имевшие отношения к цели блокировки — у них просто был неудачный сосед по IP.
Получается забавно: чем точнее хочешь бить, тем менее точный инструмент приходится включать — точность по домену требует заглядывать внутрь трафика, а точность по IP бьёт по площадям.
А у тебя было такое — сайт вдруг переставал открываться без видимой причины, а потом выяснялось, что дело вообще не в нём?