Улучшение работы VPN

На этой странице приведены рекомендации для операторов сетей, которые помогут обеспечить удобство работы конечных пользователей с приложениями виртуальных частных сетей (VPN) для потребителей и предприятий. В Android есть класс VpnManager, с помощью которого разработчики могут создавать VPN-решения, используемые потребителями и компаниями для шифрования связи или перенаправления трафика в другие сети.

Операторам сетей рекомендуется следовать следующим правилам:

  • Поддерживайте в сети пакеты протокола ESP IPv6 (Next Header 50), обеспечивая для этого трафика производительность, сравнимую с подключениями по протоколу пользовательских датаграмм (UDP) или протоколу управления передачей (TCP). Сеансы ESP должны быть разрешены для входящего трафика на устройствах или настроены на очень высокие тайм-ауты и перенаправлены на линейной скорости.
  • Задайте для преобразования сетевых адресов (NAT) и межсетевого экрана с отслеживанием состояния тайм-ауты не менее 600 секунд для UDP-подключений к порту 4500, чтобы решения VPN могли поддерживать надежное подключение без чрезмерного расхода энергии.

Поддержка пакетов протокола ESP IPv6 (следующий заголовок 50)

Encapsulating Security Payload (ESP) – это формат пакетов, определенный как часть набора протоколов безопасности интернет-протокола (IPSec) для шифрования и аутентификации пакетов в VPN-решении. ОС Android реализует этот стандартный протокол безопасности во встроенном решении VPN.

В сетях с поддержкой IPv6 пакеты ESP передаются непосредственно в пакетах IPv6 с полем следующего заголовка, равным 50. Если сеть не поддерживает такие пакеты, это может привести к отсутствию подключения для VPN-решений, которые используют этот протокол без дальнейшей инкапсуляции пакетов. Сеть может отбрасывать эти пакеты из-за настроек брандмауэра. Или пакеты ESP могут передаваться по медленным каналам сети, что приводит к значительному снижению пропускной способности по сравнению с подключениями TCP или UDP.

Инженерный совет Интернета (IETF) рекомендует разрешить IPsec через брандмауэры, используемые потребительскими сервисами доступа к интернету. Например, ознакомьтесь с разделом 3.2.4 стандарта RFC 6092. Пакеты ESP можно безопасно пропускать через межсетевые экраны в обоих направлениях, поскольку, если устройство получает пакет ESP, не являющийся частью существующей ассоциации безопасности, оно отбрасывает этот пакет. В результате устройству не нужно отправлять пакеты keepalive для поддержания VPN-подключения, что экономит заряд батареи. Мы рекомендуем либо разрешить передачу пакетов ESP на устройства в любое время, либо настроить тайм-аут сеансов ESP на длительные периоды неактивности (например, 30 минут).

Мы рекомендуем операторам сетей поддерживать пакеты протокола ESP (пакеты IPv6 с заголовком Next Header 50) в своих сетях и пересылать эти пакеты на аппаратном уровне с линейной скоростью. Это гарантирует, что VPN-решения не столкнутся с проблемами подключения и обеспечат производительность, сравнимую с UDP- или TCP-подключениями.

Установите достаточные значения тайм-аутов NAT и брандмауэра с отслеживанием состояния

Чтобы поддерживать надежность подключения, VPN-решение должно поддерживать долгосрочное подключение к VPN-серверу, который обеспечивает исходящее и входящее подключение (например, для получения входящих push-уведомлений, сообщений чата, а также аудио- и видеовызовов). Большинство VPN-приложений IPsec используют ESP, инкапсулированный в пакеты UDP IPv4 с портом назначения 4500, как описано в RFC 3948.

Чтобы поддерживать подключение, устройство должно периодически отправлять пакеты на сервер. Эти пакеты должны отправляться с более высокой частотой, чем тайм-ауты NAT и брандмауэра, установленные оператором сети. Частые запросы keepalive требуют много энергии на стороне клиента и сильно влияют на время работы от батареи. Они также генерируют значительный сигнальный трафик в сети, даже если устройство находится в режиме ожидания.

Операторам рекомендуется увеличить тайм-ауты NAT и межсетевого экрана с сохранением состояния, чтобы избежать влияния на батарею. Рекомендуемое время ожидания для инкапсуляции UDP IPsec (порт 4500) – 600 секунд или больше.

В мобильных сетях время ожидания NAT для UDP часто устанавливается низким, поскольку нехватка адресов IPv4 приводит к высокому коэффициенту повторного использования портов. Однако при установке VPN сети устройства не требуется поддерживать долгоживущие TCP-соединения, например те, которые используются для доставки входящих уведомлений. Таким образом, количество долгоживущих подключений, которые должна поддерживать сеть, при использовании VPN не увеличивается.