INTEGRITY Dokumentace

Nasaďte self-hosted VoIP služby pro hybridní uživatele

Úvod

Tradiční řešení VPN způsobují při nasazení VoIP řadu problémů, především kvůli neefektivnímu zpracování protokolů provozu v reálném čase, jako je SIP ↗ a RTP ↗. Starší nasazení VPN přinášejí vysokou latenci a jitter, což negativně ovlivňuje kvalitu hlasových hovorů. Kromě toho si často neporadí s NAT ↗ traversal, což vede k problémům s připojením u VoIP hovorů.

Cloudflare zlepšuje tradiční řešení VPN tím, že využívá globální síť ↗ datových center ve více než 330 městech, což výrazně snižuje latenci pro vzdálené uživatele. Při použití našeho agenta zařízení jsou vzdálení uživatelé automaticky připojeni k nejbližšímu datovému centru Cloudflare, čímž se latence snižuje.

Tento dokument vysvětluje, jak navrhnout přístup k vlastní hostované službě VoIP pomocí Cloudflare. Uvedené řešení využívá Cloudflare Mesh (dříve WARP Connector), malý software nasazený na serveru ve stejné podsíti jako servery VoIP, který vytváří obousměrný tok provozu přes Cloudflare k uživatelům.

Obousměrný tok provozu VoIP

Obrázek 1: Cloudflare zajišťuje bezpečné připojení uživatelských zařízení k síti, ve které běží SIP server.
Obrázek 1: Cloudflare zajišťuje bezpečné připojení uživatelských zařízení k síti, ve které běží SIP server.

Diagram výše ukazuje Cloudflare Mesh a nasazeného agenta zařízení, které společně zajišťují vysoce výkonné a spolehlivé připojení pro soukromé služby VoIP. Cloudflare vzdáleným uživatelům přiřadí adresu z Rozsah CGNAT, která se používá pro soukromou síť vytvořenou mezi agenty zařízení. Cloudflare Mesh zajišťuje zabezpečenou obousměrnou komunikaci mezi vzdálenými uživateli a lokálním serverem SIP, aniž by byl tento server vystaven veřejnému internetu. Infrastrukturu VoIP to chrání před případnými útoky a zároveň zachovává plynulé a šifrované spojení pro komunikaci v reálném čase.

  1. Server VoIP se nachází v privátní síti bez veřejné IP adresy.
  2. Cloudflare Mesh vytváří zabezpečený tunel do Cloudflare a je v privátní síti nakonfigurován jako virtuální router.
  3. Povolit provoz z Cloudflare k serveru VoIP, ale zároveň povolit provoz vyvolaný z privátní sítě, například odchozí hovor VoIP ze serveru, tak, aby byl směrován přes Cloudflare tunel. Na výše uvedeném diagramu přidáváme statickou trasu na výchozí bráně 100.96.0.0/12 (rozsah CGNAT pro WARP) přes 10.0.50.10 (virtuální směrovač Cloudflare Mesh).
  4. Provoz prochází přes naši Secure Web Gateway (SWG), který na příchozí i odchozí provoz uplatňuje pravidla firewallu na síťové úrovni.
  5. Na vzdálených uživatelských zařízeních je nainstalován agent zařízení. Agent vytváří zabezpečený tunel do Cloudflare, díky kterému může software VoIP přijímat i uskutečňovat hovory.

Příklady průběhu hovoru

Software VoIP běžící na zařízení vzdáleného uživatele se registruje u serveru VoIP pomocí SIP. Agentovi zařízení Cloudflare bude přidělena adresa z rozsahu IP adres CGNAT, 100.96.0.0/12. Jakmile je zavedeno směrování ke Cloudflare pro 100.96.0.0/12 a k on-premise síti 10.0.50.0/24, hovory budou probíhat běžným způsobem, podporována jsou jak přímá, tak nepřímá média.

Vzdálený uživatel volající jinému vzdálenému uživateli

Při hovorech mezi uživateli navzájem část provozu putuje ze zařízení uživatele přes Cloudflare na lokální server, zatímco další provoz jde přes Cloudflare přímo k druhému uživateli. Agent zařízení přitom vytváří zabezpečený tunel, kterým jsou směrovány adresy CGNAT. Oba uživatelé v tomto toku mají své klienty SIP zaregistrované u serveru.

Obrázek 2: Při komunikaci mezi vzdálenými uživateli neprochází veškerý provoz přes Cloudflare Mesh na server SIP.
Obrázek 2: Při komunikaci mezi vzdálenými uživateli neprochází veškerý provoz přes Cloudflare Mesh na server SIP.

Výše uvedený diagram znázorňuje signalizační a mediální cesty na vysoké úrovni.

  1. Alice se registruje přímo u serveru SIP (10.0.50.60) s CGNAT IP adresou přidělenou Cloudflare 100.96.0.12.
  2. Bob se také registruje přímo u serveru SIP (10.0.50.60) s jejich CGNAT IP adresou 100.96.0.13.
  3. Když Alice volá Bobovi, server SIP odešle Bobovi zprávu SIP INVITE na adresu 100.96.0.13.
  4. Výchozí brána pro server SIP je 10.50.0.1, ale definovali jsme statickou trasu tak, že pro cíl 100.96.0.0/12, dalším přechodem je rozhraní Cloudflare Mesh (10.0.50.10).
  5. Zpráva SIP INVITE bude směrována přes Cloudflare Mesh do sítě Cloudflare a poté ji přijme Bob.
  6. Bob hovor přijme a server SIP následně odešle zprávy SIP/SDP jak Alici, tak Bobovi, ve kterých určí parametry pro přenos dat RTP (audio).
  7. Pro cesty Direct Media, kdy server SIP není součástí audio cesty a datové toky RTP probíhají přímo mezi Alicí a Bobem, se ujistěte, že Povolit veškerý provoz Cloudflare One k registrovaným zařízením je v Cloudflare aktivováno. Zvukové streamy ve scénáři Direct Media pak nemusí být směrovány přes Cloudflare Mesh.

Vzdálený uživatel k on-premise uživateli

Hovory mezi vzdálenými uživateli a uživateli on-premise probíhají velmi podobně, ale zvuk RTP se kromě signalizace SIP přenáší i přes Cloudflare Mesh.

Obrázek 3: Provoz mezi vzdáleným uživatelem a uživatelem on-premise je směrován přes Cloudflare k serveru SIP a klientovi.
Obrázek 3: Provoz mezi vzdáleným uživatelem a uživatelem on-premise je směrován přes Cloudflare k serveru SIP a klientovi.

Signalizační a mediové cesty na vysoké úrovni jsou znázorněny níže:

Obrázek 4: Signalizace i média (audio, video atd.) putují zabezpečenými tunely ze vzdálených zařízení až ke klientům on-premise.
Obrázek 4: Signalizace i média (audio, video atd.) putují zabezpečenými tunely ze vzdálených zařízení až ke klientům on-premise.
  1. Alice se registruje přímo u serveru SIP (10.0.50.60) s její CGNAT IP adresou 100.96.0.12.
  2. Bob se také registruje přímo u serveru SIP (10.0.50.60) s jejich LAN IP adresou 10.0.50.101.
  3. Když Alice volá Bobovi, server SIP odešle Bobovi zprávu SIP INVITE na adresu 10.0.50.101.
  4. Výchozí brána pro server SIP je 10.50.0.1, ale definovali jsme statickou trasu tak, že pro cíl 100.96.0.0/12, dalším přechodem je rozhraní Cloudflare Mesh (10.0.50.10).
  5. Zpráva SIP INVITE bude odeslána v lokální síti Bobovi.
  6. Bob hovor přijme a server SIP následně odešle zprávy SIP/SDP jak Alici, tak Bobovi, ve kterých určí parametry pro přenos dat RTP (audio).
  7. Bob bude odesílat audio Alici na adresu 100.96.0.12, který se přes Cloudflare Mesh nasměruje ke Cloudflare, přičemž Alice bude posílat zvuk Bobovi na 10.0.50.101, který se z Cloudflare přes Cloudflare Mesh odešle do lokální on-premise sítě.

Souhrn

Díky Cloudflare Mesh mají vzdálení uživatelé komunikující s dalšími vzdálenými uživateli nebo s lokálními uživateli přes lokální servery SIP na obou stranách plynulý a zabezpečený zážitek. Mezi klíčové výhody patří:

  1. Obousměrná konektivita: Cloudflare Mesh podporuje obousměrný provoz, což je klíčové pro komunikaci vzdálených uživatelů s uživateli v místní síti. Signalizační i mediální provoz (SIP/RTP) mezi nimi probíhá bezpečně bez ohledu na to, kde se uživatel fyzicky nachází. Zajišťuje to globální síť Cloudflare prostřednictvím šifrovaného tunelu, který zaručuje integritu a šifrování dat.

  2. Privátní komunikace přes CGNAT: Cloudflare Mesh přiděluje zařízením IP adresy Carrier-Grade NAT (CGNAT), díky nimž mohou vzdálení uživatelé bezpečně komunikovat s uživateli v místní síti přes privátní sítě. Komunikace tak zůstává oddělená od veřejného internetu, což zvyšuje zabezpečení. Funkce CGNAT zároveň znamená, že vzdálení a místní uživatelé mohou komunikovat, jako by byli ve stejné síti.

  3. Žádné problémy s NAT traversal: NAT traversal bývá ve scénářích VoIP problematický, ale díky tomu, že Cloudflare Mesh zachovává zdrojové IP adresy a zpracovává obousměrný provoz bez dalších NAT hranic, mohou vzdálení a místní uživatelé komunikovat bez potíží, které jinak obvykle způsobují firewally nebo NAT zařízení, což zlepšuje sestavení i kvalitu hovoru.