На этой странице представлены рекомендации для сетевых операторов, которые помогут гарантировать, что приложения виртуальных частных сетей (VPN) для частных и корпоративных пользователей обеспечат комфортную работу в их сетях. Android предоставляет разработчикам класс VpnManager для создания VPN-решений, которые используются частными лицами и организациями для шифрования своих данных или маршрутизации их в различные сети.
Мы рекомендуем сетевым операторам следовать следующим рекомендациям:
- Поддерживайте пакеты протокола IPv6 Encapsulating Security Payload (ESP) (следующий заголовок 50) в вашей сети , обеспечивая производительность этого трафика, сопоставимую с соединениями по протоколу пользовательских датаграмм (UDP) или протоколу управления передачей (TCP). Сеансы ESP должны быть разрешены для входящих соединений с устройствами или установлены на очень большие тайм-ауты и пересылаться со скоростью линии.
- Установите тайм-ауты преобразования сетевых адресов (NAT) и брандмауэра с отслеживанием состояния соединений на уровне не менее 600 секунд для подключений UDP на порту 4500, чтобы решения VPN могли поддерживать надежное соединение без чрезмерных затрат на электроэнергию.
Поддержка пакетов протокола IPv6 ESP (следующий заголовок 50)
Инкапсуляция полезной нагрузки безопасности (ESP) — это формат пакета, определённый как часть набора протоколов IPSec для шифрования и аутентификации пакетов в VPN-решении. Операционная система Android реализует этот стандартный протокол безопасности во встроенном VPN-решении.
В сетях с поддержкой IPv6 пакеты ESP передаются непосредственно в пакетах IPv6 с полем «Следующий заголовок» (Next Header), равным 50. Если сеть не поддерживает эти типы пакетов должным образом, это может привести к потере соединения для VPN-решений, использующих этот протокол без дальнейшей инкапсуляции пакетов. Сеть может отбрасывать эти пакеты из-за настроек межсетевого экрана. Кроме того, пакеты ESP могут попадать на медленные маршруты в сети, что приводит к значительному снижению пропускной способности по сравнению с соединениями TCP или UDP.
Группа инженеров Интернета (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 и межсетевого экрана, установленные оператором сети. Частые пакеты keepalive потребляют много энергии на стороне клиента и существенно влияют на время работы аккумулятора. Они также генерируют значительный сигнальный трафик в сети, даже если устройство в остальном не используется.
Мы рекомендуем операторам увеличить тайм-ауты NAT и межсетевого экрана с отслеживанием состояния, чтобы избежать влияния на заряд батареи. Рекомендуемый тайм-аут для инкапсуляции IPsec UDP (порт 4500) составляет 600 секунд или более.
В мобильных сетях тайм-ауты UDP NAT часто поддерживаются небольшими, поскольку дефицит IPv4-адресов приводит к высокому коэффициенту повторного использования портов. Однако при установлении VPN сеть устройства не обязана поддерживать долгосрочные TCP-соединения, например, используемые для доставки входящих уведомлений. Таким образом, количество долгосрочных соединений, которые сеть должна поддерживать, при работающем VPN равно или меньше, чем при выключенном VPN.