← Справочные архитектуры / reference-architecture / diagrams / sase
Развёртывание локально размещённых VoIP-сервисов для гибридных пользователей
Введение
Традиционные VPN-решения создают ряд проблем для развёртывания VoIP, в первую очередь из-за неэффективной обработки протоколов трафика в реальном времени, таких как SIP ↗ и RTP ↗. Устаревшие развертывания VPN вносят высокую задержку и джиттер, которые негативно сказываются на качестве голосовых вызовов. Кроме того, у них часто возникают проблемы с NAT ↗ traversal, что приводит к проблемам с подключением при VoIP-звонках.
Cloudflare превосходит традиционные VPN-решения благодаря глобальная сеть ↗ центров обработки данных в более чем 330 городах, что значительно снижает задержку для удалённых пользователей. При использовании нашего агента устройства удалённые пользователи автоматически подключаются к ближайшему центру обработки данных Cloudflare, тем самым снижая задержку.
В этом документе объясняется, как спроектировать доступ к самостоятельно размещенной службе VoIP с помощью Cloudflare. Обратите внимание, что решение ниже использует Cloudflare Mesh (ранее WARP Connector), небольшое программное обеспечение, разворачиваемое на сервере в той же подсети, что и серверы VoIP, и создающее двунаправленный поток трафика через Cloudflare к пользователям.
Двунаправленный поток VoIP трафика
На диаграмме выше показаны Cloudflare Mesh и наш агент устройства, развёрнутые для обеспечения высокопроизводительного и надёжного подключения приватных VoIP-сервисов. Обратите внимание, что Cloudflare назначит удалённым пользователям адрес из Диапазон CGNAT, которая используется для приватной сети, создаваемой между агентами устройств. Cloudflare Mesh обеспечивает защищенную двустороннюю связь между удаленными пользователями и локальным SIP-сервером, не открывая его для публичного интернета. Это защищает VoIP-инфраструктуру от потенциальных атак и одновременно сохраняет непрерывное зашифрованное соединение для связи в реальном времени.
- VoIP-сервер находится в приватной сети без публичного IP-адреса.
- Cloudflare Mesh создаёт защищённый туннель к Cloudflare и настраивается как виртуальный маршрутизатор в частной сети.
- Разрешить трафику от Cloudflare достигать VoIP-сервера, а также разрешить трафику, инициированному из частной сети, например исходящему VoIP-звонку с сервера, маршрутизироваться через туннель Cloudflare. На приведённой выше схеме мы добавляем статический маршрут на шлюзе по умолчанию для
100.96.0.0/12(диапазон WARP CGNAT) через10.0.50.10(виртуальный маршрутизатор Cloudflare Mesh). - Трафик проходит через наш Secure Web Gateway (SWG), который применяет правила межсетевого экрана на сетевом уровне как к входящему, так и к исходящему трафику.
- Агент устройства устанавливается на устройства удалённых пользователей. Агент создаёт защищённый туннель к Cloudflare, что позволяет программному обеспечению VoIP как принимать, так и совершать звонки.
Примеры потоков вызовов
VoIP-приложение на устройстве удаленного пользователя регистрируется на VoIP-сервере по протоколу SIP. Агенту устройства Cloudflare присваивается адрес из диапазона IP CGNAT, 100.96.0.0/12. Поскольку маршрутизация в Cloudflare уже настроена для 100.96.0.0/12 и к локальной сети 10.0.50.0/24, вызовы будут работать в обычном режиме: поддерживаются как прямая, так и косвенная передача медиапотока.
Удаленный пользователь звонит другому удаленному пользователю
При звонках между пользователями часть трафика идёт от устройства пользователя через Cloudflare к локальному серверу, а другая часть трафика идёт через Cloudflare напрямую к другому пользователю. Обратите внимание, что агент устройства создаёт защищённый туннель, через который маршрутизируются адреса CGNAT. Оба пользователя в этой схеме зарегистрировали свои SIP-клиенты на сервере.
На приведённой выше диаграмме показаны пути сигнального трафика и медиатрафика на верхнем уровне.
- Alice регистрируется непосредственно на SIP-сервере (
10.0.50.60) с назначенным Cloudflare CGNAT IP-адресом100.96.0.12. - Bob также регистрируется напрямую на сервере SIP (
10.0.50.60) с их CGNAT IP-адресом100.96.0.13. - Когда Алиса звонит Бобу, SIP-сервер отправляет Бобу сообщение SIP INVITE по адресу
100.96.0.13. - Шлюз по умолчанию для SIP-сервера:
10.50.0.1, но при этом мы задали статический маршрут таким образом, что для адреса назначения100.96.0.0/12, следующий переход - это интерфейс Cloudflare Mesh (10.0.50.10). - Сообщение SIP INVITE будет направлено через Cloudflare Mesh в сеть Cloudflare, а затем получено Бобом.
- Bob принимает вызов, и сервер SIP отправит Alice и Bob сообщения SIP/SDP с указанием параметров, которые нужно использовать для данных RTP (аудио).
- Для маршрутов Direct Media, где SIP-сервер не участвует в передаче аудио и RTP-потоки идут напрямую между Alice и Bob, убедитесь, что Разрешить весь трафик Cloudflare One к зарегистрированным устройствам была включена в Cloudflare. Аудиопотокам в сценарии Direct Media не потребуется маршрутизация через Cloudflare Mesh.
От удаленного пользователя к локальному пользователю
Вызовы между удалёнными и локальными (on-premise) пользователями во многом похожи, но аудиотрафик RTP передаётся через Cloudflare Mesh в дополнение к сигнализации SIP.
Ниже показаны пути сигнализации и передачи медиаданных на верхнем уровне:
- Alice регистрируется непосредственно на SIP-сервере (
10.0.50.60) с ее CGNAT IP-адресом100.96.0.12. - Bob также регистрируется напрямую на сервере SIP (
10.0.50.60) с их LAN IP-адресом10.0.50.101. - Когда Алиса звонит Бобу, SIP-сервер отправляет Бобу сообщение SIP INVITE по адресу
10.0.50.101. - Шлюз по умолчанию для SIP-сервера:
10.50.0.1, но при этом мы задали статический маршрут таким образом, что для адреса назначения100.96.0.0/12, следующий переход - это интерфейс Cloudflare Mesh (10.0.50.10). - Сообщение SIP INVITE будет отправлено Бобу по локальной сети.
- Bob принимает вызов, и сервер SIP отправит Alice и Bob сообщения SIP/SDP с указанием параметров, которые нужно использовать для данных RTP (аудио).
- Bob будет отправлять аудио Alice по адресу
100.96.0.12, который будет направлен через Cloudflare Mesh в Cloudflare, и Alice отправит аудио Bob по адресу10.0.50.101, который будет отправлен из Cloudflare через Cloudflare Mesh в локальную сеть заказчика.
Сводка
С Cloudflare Mesh удалённые пользователи, взаимодействующие с другими удалёнными пользователями или локальными пользователями через локальные SIP-серверы, получают удобный и защищённый обмен данными для обеих сторон. Ключевые преимущества:
-
Двунаправленное соединение: Cloudflare Mesh поддерживает двунаправленный трафик, что критически важно для взаимодействия удалённых пользователей с локальными. Сигнальный и медиатрафик (SIP/RTP) передаются безопасно между сторонами независимо от физического местоположения пользователя. Это происходит через глобальную сеть Cloudflare с использованием зашифрованного туннеля, что обеспечивает целостность и защиту данных.
-
Приватная связь через CGNAT: Cloudflare Mesh назначает устройствам IP-адреса Carrier-Grade NAT (CGNAT), что позволяет удалённым пользователям безопасно взаимодействовать с локальными пользователями через частные сети. Это обеспечивает изоляцию трафика от публичного Интернета и повышает уровень безопасности. Благодаря CGNAT удалённые и локальные пользователи могут общаться так, как будто находятся в одной сети.
-
Отсутствие проблем с NAT traversal: Прохождение NAT часто создаёт сложности в сценариях VoIP, но поскольку Cloudflare Mesh сохраняет исходные IP-адреса и обрабатывает двунаправленный трафик без дополнительных границ NAT, удалённые и локальные пользователи могут общаться без проблем, которые обычно вызывают межсетевые экраны или устройства NAT, что повышает качество установки вызова и связи в целом.