На этой странице приведены рекомендации для сетевых операторов, которые помогут гарантировать, что потребительские и корпоративные приложения виртуальной частной сети (VPN) обеспечивают хороший опыт для конечного пользователя в их сетях. Android предоставляет разработчикам класс VpnManager
для создания решений VPN, которые используются потребителями и предприятиями для шифрования своих коммуникаций или маршрутизации их в разные сети.
Мы рекомендуем сетевым операторам следовать следующим рекомендациям:
- Поддерживайте пакеты протокола IPv6 Encapsulating Security Payload (ESP) (следующий заголовок 50) в вашей сети , гарантируя, что этот трафик будет иметь производительность, сопоставимую с соединениями протокола пользовательских датаграмм (UDP) или протокола управления передачей (TCP). Сеансы ESP должны быть разрешены для входящих на устройства или установлены на очень высокие тайм-ауты и пересылаться со скоростью линии.
- Установите тайм-ауты трансляции сетевых адресов (NAT) и межсетевого экрана с отслеживанием состояния , которые составляют не менее 600 секунд для подключений UDP на порту 4500, чтобы решения VPN могли поддерживать надежное подключение без чрезмерных затрат на электроэнергию.
Поддержка пакетов протокола IPv6 ESP (следующий заголовок 50)
Encapsulating Security Payload (ESP) — это формат пакета, определенный как часть набора протоколов Internet Protocol Security (IPSec) для шифрования и аутентификации пакетов в решении VPN. ОС Android реализует этот стандартный протокол безопасности в своем встроенном решении VPN.
В сетях с поддержкой IPv6 пакеты ESP передаются непосредственно в пакетах IPv6 с полем Next Header, равным 50. Если сеть не поддерживает эти типы пакетов должным образом, это может привести к отсутствию подключения для решений VPN, которые стремятся использовать этот протокол без дальнейшей инкапсуляции пакетов. Сеть может отбрасывать эти пакеты из-за конфигурации брандмауэра. Или пакеты ESP могут попадать на медленные пути в сети с существенно сниженной производительностью пропускной способности по сравнению с соединениями TCP или UDP.
Internet Engineering Task Force (IETF) рекомендует разрешить IPsec через брандмауэры, используемые потребительскими службами доступа в Интернет. Например, см. раздел 3.2.4 RFC 6092. Пакеты ESP можно безопасно пропускать через брандмауэры в обоих направлениях, поскольку если устройство получает пакет ESP, который не является частью существующей ассоциации безопасности, устройство отбрасывает пакет. В результате устройству не нужно отправлять пакеты keepalive для поддержания VPN-подключения, что экономит заряд батареи. Мы рекомендуем, чтобы сети либо разрешали пакеты ESP устройствам в любое время, либо прерывали сеансы ESP только после длительных периодов бездействия (например, 30 минут).
Мы рекомендуем сетевым операторам поддерживать пакеты протокола ESP (пакеты IPv6 со следующим заголовком 50) в своих сетях и пересылать эти пакеты на аппаратном уровне с линейной скоростью. Это гарантирует, что решения VPN не столкнутся с проблемами подключения и обеспечат производительность, сопоставимую с соединениями UDP или TCP.
Установите достаточные тайм-ауты NAT и брандмауэра с отслеживанием состояния
Для поддержания надежности соединения решение VPN должно поддерживать долговременное соединение с сервером VPN, который обеспечивает исходящую и входящую связь (например, для получения входящих push-уведомлений, сообщений чата, аудио- или видеозвонков). Большинство приложений IPsec VPN используют ESP, инкапсулированный в пакеты IPv4 UDP с портом назначения 4500, как описано в RFC 3948 .
Для поддержания этого соединения устройство должно периодически отправлять пакеты на сервер. Эти пакеты должны отправляться с большей частотой, чем тайм-ауты NAT и брандмауэра, установленные оператором сети. Частые keepalives потребляют много энергии на стороне клиента и оказывают значительное влияние на срок службы батареи. Они также генерируют значительный трафик сигнализации в сети, даже если устройство в остальном простаивает.
Мы рекомендуем операторам поднять тайм-ауты NAT и брандмауэра с отслеживанием состояния достаточно высоко, чтобы избежать воздействия на батарею. Рекомендуемый тайм-аут для инкапсуляции IPsec UDP (порт 4500) составляет 600 секунд или больше.
В мобильных сетях тайм-ауты UDP NAT часто поддерживаются на низком уровне, поскольку дефицит адресов IPv4 приводит к высоким коэффициентам повторного использования портов. Однако при установке VPN сетевому устройству не требуется поддержка долгоживущих TCP-соединений, например, используемых для доставки входящих уведомлений. Таким образом, количество долгоживущих соединений, которые должна поддерживать сеть, одинаково или ниже при работающем VPN по сравнению с тем, когда VPN не работает.