Как Cloudflare One Client победил "тихие разрывы" с помощью Dynamic Path MTU Discovery

Вы, вероятно, бесчисленное количество раз видели такой тикет в поддержку: интернет-соединение пользователя, которое только что отлично работало для Slack и DNS-запросов, внезапно зависает в момент попытки загрузки большого файла, присоединения к видеозвонку или начала SSH-сессии. Виновник обычно не в нехватке пропускной способности или сбое сервиса, а в «Чёрной дыре PMTUD» — досадной ситуации, когда пакеты слишком велики для определённого сетевого пути, но сеть не сообщает об этом ограничении отправителю. Это часто происходит, когда вы вынуждены использовать сети, которыми не управляете, или сети провайдеров с ограничениями на максимальный размер передаваемого блока (MTU), и у вас нет возможности решить эту проблему.

Сегодня мы оставляем позади эти устаревшие сетевые ограничения. Реализовав обнаружение MTU пути (PMTUD), клиент Cloudflare One превратился из пассивного наблюдателя в активного участника исследования пути.

Динамическое обнаружение MTU пути позволяет клиенту интеллектуально и динамически адаптироваться к оптимальному размеру пакета для большинства сетевых путей, использующих MTU более 1281 байта. Это гарантирует стабильность соединения пользователя, независимо от того, находится ли он на высокоскоростной корпоративной магистрали или на ограничивающей сотовой сети.

Задача «современная безопасность встречает унаследованную инфраструктуру» 

Чтобы понять решение, нужно посмотреть, как современные протоколы безопасности взаимодействуют с разнообразием глобальной интернет-инфраструктуры. MTU представляет собой максимальный размер пакета данных, который устройство может отправить по сети без фрагментации: обычно это 1500 байт для стандартного Ethernet.

По мере того как клиент Cloudflare One развивался для поддержки современных корпоративных требований (таких как соответствие FIPS 140-2), объём метаданных и накладных расходов на шифрование в каждом пакете естественным образом увеличился. Это сознательный выбор, чтобы обеспечить наших пользователей высшим уровнем защиты, доступным сегодня.

Однако большая часть мировой интернет-инфраструктуры была построена десятилетия назад с жёстким ожиданием пакетов размером 1500 байт. В специализированных сетях, таких как LTE/5G, спутниковые каналы или сети общественной безопасности, такие как FirstNet, фактически доступное пространство для данных часто меньше стандартного. Когда защищённый, зашифрованный пакет попадает на старый маршрутизатор с более низким лимитом (например, 1300 байт), в идеале этот маршрутизатор должен отправить сообщение протокола ICMP с указанием «Адресат недостижим» обратно отправителю, чтобы запросить меньший размер.

Но так происходит не всегда. «Чёрная дыра» возникает, когда брандмауэры или промежуточные устройства (middleboxes) молча отбрасывают эти ICMP-сообщения с обратной связью. Без этой обратной связи отправитель продолжает пытаться отправлять большие пакеты, которые никогда не доходят, а приложение просто ждёт в «зомби»-состоянии, пока соединение в конечном итоге не разорвётся по таймауту.

Ending the "silent drop": how Dynamic Path MTU Discovery makes the Cloudflare One Client more resilient

Решение Cloudflare: активное зондирование с PMTUD

Реализация Cloudflare RFC 8899 Datagram Packetization Layer Path MTU Discovery (PMTUD) устраняет зависимость от этих хрупких, устаревших циклов обратной связи. Поскольку наш современный клиент использует протокол MASQUE — построенный поверх открытой библиотеки Cloudflare QUIC — клиент может выполнять активный, сквозной опрос сетевого пути.

Вместо ожидания сообщения об ошибке, которое может никогда не прийти, клиент проактивно отправляет зашифрованные пакеты разного размера на граничный сервер Cloudflare. Это зондирование проверяет MTU от верхней границы поддерживаемого диапазона до середины, пока клиент не определит точный подходящий MTU. Это сложное, ненавязчивое рукопожатие, происходящее в фоновом режиме. Если граничный сервер Cloudflare получает зонд определённого размера, он подтверждает его; если зонд теряется, клиент мгновенно узнаёт точную пропускную способность этого конкретного сетевого сегмента.

Затем клиент динамически изменяет MTU своего виртуального интерфейса на лету, периодически проверяя пропускную способность пути, который мы установили при начале соединения. Это гарантирует, что если, например, пользователь переходит с Wi-Fi сети с MTU 1500 на станции на сотовую сеть с MTU 1300 в полевых условиях, переход будет плавным. Сессия приложения остаётся непрерывной, потому что клиент уже договорился о наилучшем возможном пути для этих защищённых пакетов.

Ending the "silent drop": how Dynamic Path MTU Discovery makes the Cloudflare One Client more resilient

Влияние в реальном мире: от экстренных служб до гибридных работников

Это техническое изменение имеет глубокие последствия для критически важной связи. Представьте потребность в надёжности у сотрудника экстренной службы, использующего маршрутизатор, установленный в транспортном средстве. Эти системы часто работают со сложными слоями обхода NAT и приоритетной маршрутизации, которые агрессивно сокращают доступный MTU. Без PMTUD критически важное программное обеспечение, такое как системы компьютерной поддержки диспетчерских служб (CAD), может испытывать частые разрывы соединения во время переключения между вышками или при колебаниях сигнала. Используя активное обнаружение, клиент Cloudflare One поддерживает стабильное соединение, которое защищает приложение от лежащей в основе нестабильности сети.

Та же логика применима к глобальной гибридной рабочей силе. Работник, часто перемещающийся и работающий из отеля в другой стране, часто сталкивается с устаревшими промежуточными устройствами и сложными окружениями с двойным NAT. Вместо прерывистых видеозвонков и зависших передач файлов клиент за секунды определяет узкое место и оптимизирует поток пакетов — ещё до того, как пользователь заметит изменения.

Получите PMTUD для своих устройств

Любой, кто использует клиент Cloudflare One с протоколом MASQUE, может бесплатно опробовать обнаружение MTU пути прямо сейчас. Используйте нашу подробную документацию, чтобы начать маршрутизировать трафик через граничные серверы Cloudflare со скоростью и стабильностью PMTUD на ваших устройствах Windows, macOS и Linux.