Stránka se načte přes VPN, hovor se však nikdy nepřipojí: dvě různé závady se stejnou adresní lištou. Tunel změnil cestu, kterou prohlížeč používá; nestal se službou pro signalizaci, serverem STUN ani relay a nerozhoduje, který pár kandidátů ICE vybere. Právě oddělení úlohy jednotlivých komponent mění neurčité „WebRTC je blokováno“ v konkrétní závadu.

Čtyři úlohy, z nichž se tunel dotýká jediné

Aplikace si vyměňuje informace o relaci přes nějaké uspořádání signalizace, a to je první úloha. ICE shromažďuje adresy kandidátů a testuje páry, dokud jeden nefunguje, což je druhá. STUN umožňuje protějšku zjistit, jak jeho provoz vypadá zvenčí, a TURN přiděluje relay pro případy, kdy přímá cesta neexistuje. Tyto čtyři role jsou odlišné a VPN ovlivňuje adresy a filtrování, se kterými se setkávají, místo aby některou z nich poskytoval.

Proto úspěšné přihlášení nic neříká o cestě médií. Signalizace obvykle jede po stejném HTTPS, které stránka už používá, na portu 443, zatímco média mohou putovat přes UDP do zcela jiného cíle.

Soukromé adresování zmatení zhoršuje. Adresa tunelu je pro protějšek užitečná jen tehdy, když k ní má zamýšlenou cestu zpět; to, že je soukromá, není důkazem vzájemné dosažitelnosti a prohlížeče to tak neberou, když zahazují kandidáty, které nelze ověřit. Kandidát, který se vám zdá lokální, může být z druhé strany neověřitelný. Tuto mezeru stojí za to vyloučit dřív, než uzavřete, že tunel zahazuje média.

Porovnejte výstup VPN s relay TURN

Oba přeposílají pakety, a proto se zaměňují, a srovnávací tabulku výše stojí za to číst sloupec po sloupci, nikoli jako seznam funkcí. Přidělení relay je objekt pro každou relaci vytvořený autentizovaným požadavkem; tunel je trasa. Jedno má přihlašovací údaje, které vyprší, druhé má adresu protějšku, která buď dostupná je, nebo není.

ComponentWhat it contributesWhat it needs to workWhat it cannot do
VPN exitChanges the observed mapping and the route packets takeA working tunnel and a policy that permits the media transportAllocate a relay or supply signaling
STUN serverReports the mapped address a peer appears to useReachability from the client, on its configured transportCarry media when a direct path fails
TURN serverRelays media through an authenticated allocationValid credentials, an allowed transport and sufficient capacityFix a missing ICE policy or an unauthorized client
Signaling channelCarries offers, answers and candidate listsBoth peers reaching the same application endpointEstablish connectivity by itself

Čísla portů dělají rozdíl konkrétním. TURN ve výchozím nastavení naslouchá na 3478 pro UDP a TCP a na 5349 pro TLS, a síť, která povolí 443, ale tyto porty zahodí, selže u relayovaných hovorů, zatímco prohlížení pokračuje normálně. Změna portu VPN nic z toho nenastaví, protože důležité porty patří službě relay, ne tunelu.

Přečtěte si diagnostiku a pak hovor otestujte

Prohlížeče ukazují potřebné informace bez zachytávání paketů. Otevřete diagnostickou stránku WebRTC pro svůj prohlížeč, uskutečněte hovor a čtěte vybraný pár kandidátů, nikoli shromážděný seznam: které typy místních a vzdálených kandidátů byly zvoleny, přes jaký transport a rodinu adres a zda je cesta přímá, nebo přes relay.

Dvě čtení je dobré znát předem. Pokud je vybraný pár hostitel-hostitel na soukromých adresách, média zůstávají na cestě, o které lze uvažovat; pokud jde o relay-relay, hovor spotřebovává kapacitu relay a závisí na dostupnosti této služby. Závada, která se zastaví na „kontrola“ bez vybraného páru, znamená, že kandidáti byli shromážděni, ale žádný neprošel kontrolami konektivity.

Potom porovnejte stejné dva koncové body ve stejném hovoru se změnou jediné schválené podmínky a výsledek přijměte podle obousměrných médií nebo dat, nikoli podle indikátoru „připojeno“. Shromažďování kandidátů uspěje v mnoha případech, které nepřenášejí jediný snímek zvuku. Zopakujte hovor na druhé straně změny a uchovejte oba diagnostické záznamy, protože porovnání dvou běhů je informativnější než čtení kteréhokoli z nich samostatně. Stejné koncové body, stejný kodek, jedna změněná proměnná.

Aplikace, která záměrně nastaví svou transportní politiku ICE na relay, žádá jen kandidáty relay. Toto nastavení relay nevytváří a neopravuje chybějící přihlašovací údaje; činí požadavek explicitním, což je užitečné, když někdo viní VPN z politiky, kterou zvolil web.

Držte tvrzení o soukromí tak úzké, jak dovolují důkazy

Vystavení kandidátů závisí na politice prohlížeče a aplikace, nejen na stavu tunelu, a specifikace W3C pro propojení protějšků považuje zacházení s IP za vlastní záležitost. Připojená VPN je proto slabý základ pro slib, že hovor prozradí jen jednu zvolenou adresu. Dva protějšky za stejným tunelem mohou dokonce zvolit cestu, která nikdy neopustí hostitele, což je současně zlepšení soukromí i omezení konektivity.

Co můžete říct přesně, je užší a užitečnější: který pár kandidátů byl vybrán, který transport jej nesl a zda tato cesta zůstala uvnitř tunelu. Zapište tyto tři skutečnosti pro fungující i selhávající hovor a rozdíl obvykle pojmenuje komponentu, kterou je třeba opravit.

Když konektivita funguje, oddělte výkon od dosažitelnosti. Ztráty, zpoždění, fronty a MTU leží všechny po proudu správného páru kandidátů a léčba trhaného hovoru jako závady konektivity vás bez důvodu vrací k seznamu kandidátů.

Související články