VPN protiv TURN releja: što zapravo prenosi WebRTC poziv?
Tunel mijenja putanju koju ICE vidi; nikada ne dodjeljuje relej niti daje signalizaciju. Uporedite šta pružaju VPN izlaz i TURN server.
Stranica se učitava preko VPN-a, poziv se nikad ne povezuje: dva različita kvara u istoj adresnoj traci. Tunel je promijenio putanju koju pregledač koristi; nije postao servis za signalizaciju, STUN server ni relej i ne odlučuje koji će par kandidata ICE izabrati. Upravo razdvajanje posla koji svaka komponenta obavlja pretvara nejasno “WebRTC je blokiran” u konkretan kvar.
Četiri posla, od kojih tunel dotiče samo jedan
Aplikacija razmjenjuje podatke o sesiji kroz nekakav aranžman za signalizaciju i to je prvi posao. ICE prikuplja adrese kandidata i testira parove dok jedan ne proradi, što je drugi. STUN omogućava partneru da nauči kako njegov saobraćaj izgleda spolja, a TURN dodjeljuje relej za slučajeve kada direktna putanja ne postoji. Te četiri uloge su različite i VPN utiče na adrese i filtriranje s kojima se susreću, umjesto da bilo koju od njih pruža.
Zato uspješna prijava ne govori ništa o putanji medija. Signalizacija obično ide istim HTTPS-om koji stranica već koristi, na portu 443, dok mediji mogu putovati preko UDP-a do potpuno druge destinacije.
Privatno adresiranje pogoršava zabunu. Adresa tunela je partneru korisna samo kada on ima predviđenu putanju natrag do nje; to što je privatna nije dokaz uzajamne dostupnosti i pregledači to ne tretiraju tako kada odbacuju kandidate koji se ne mogu provjeriti. Kandidat koji vama izgleda lokalno može biti neprovjerljiv s druge strane. Tu prazninu vrijedi isključiti prije nego zaključite da tunel ispušta medije.
Uporedite VPN izlaz sa TURN relejem
Oba prosljeđuju pakete, zbog čega se brkaju, a tabelu poređenja iznad vrijedi čitati kolonu po kolonu, a ne kao spisak funkcija. Dodjela releja je objekat po sesiji stvoren autentifikovanim zahtjevom; tunel je ruta. Jedno ima akreditive koje ističu, drugo ima adresu partnera koja je ili dostupna ili nije.
| Component | What it contributes | What it needs to work | What it cannot do |
|---|---|---|---|
| VPN exit | Changes the observed mapping and the route packets take | A working tunnel and a policy that permits the media transport | Allocate a relay or supply signaling |
| STUN server | Reports the mapped address a peer appears to use | Reachability from the client, on its configured transport | Carry media when a direct path fails |
| TURN server | Relays media through an authenticated allocation | Valid credentials, an allowed transport and sufficient capacity | Fix a missing ICE policy or an unauthorized client |
| Signaling channel | Carries offers, answers and candidate lists | Both peers reaching the same application endpoint | Establish connectivity by itself |
Brojevi portova čine razliku konkretnom. TURN prema zadanim postavkama sluša na 3478 za UDP i TCP i na 5349 za TLS, a mreža koja dopušta 443 ali odbacuje te portove neće uspjeti u relejisanim pozivima dok pregledanje nastavlja normalno. Promjena porta VPN-a ne konfiguriše ništa od toga, jer važni portovi pripadaju relej servisu, a ne tunelu.
Pročitajte dijagnostiku, pa testirajte poziv
Pregledači izlažu potrebne informacije bez hvatanja paketa. Otvorite WebRTC dijagnostičku stranicu za svoj pregledač, obavite poziv i čitajte izabrani par kandidata, a ne prikupljenu listu: koje su lokalne i udaljene vrste kandidata izabrane, preko kojeg transporta i porodice adresa, i da li je putanja direktna ili relejisana.
Dva čitanja vrijedi znati unaprijed. Ako je izabrani par host-do-host na privatnim adresama, mediji ostaju na putanji o kojoj možete zaključivati; ako je relej-do-relej, poziv troši kapacitet releja i zavisi od dostupnosti tog servisa. Kvar koji se zaustavi na “provjeravanju” bez izabranog para znači da su kandidati prikupljeni, ali nijedan nije prošao provjere povezanosti.
Zatim uporedite ista dva kraja u istom pozivu mijenjajući samo jedan odobreni uslov, i prihvatite rezultat na dvosmjernim medijima ili podacima, a ne na indikatoru “povezano”. Prikupljanje kandidata uspijeva u mnogim slučajevima koji nikad ne prenesu ni jedan kadar zvuka. Ponovite poziv na drugoj strani promjene i sačuvajte oba dijagnostička snimka, jer poređenje dva prolaza daje više informacija od čitanja bilo kojeg pojedinačno. Isti krajevi, isti kodek, jedna promijenjena varijabla.
Aplikacija koja namjerno postavi svoju ICE transport politiku na relay traži samo relej kandidate. Ta postavka ne stvara relej i ne popravlja akreditive koje nedostaju; ona zahtjev čini eksplicitnim, što je korisno kada neko okrivi VPN za politiku koju je sajt izabrao.
Držite tvrdnju o privatnosti uskom koliko i dokazi
Izloženost kandidata zavisi od politike pregledača i aplikacije, ne samo od statusa tunela, a W3C specifikacija za vezu između partnera tretira rukovanje IP-om kao sopstvenu stvar. Povezan VPN je zato slab osnov za obećanje da poziv otkriva samo jednu izabranu adresu. Dva partnera iza istog tunela mogu čak izabrati putanju koja nikad ne napušta host, što je istovremeno poboljšanje privatnosti i ograničenje povezanosti.
Ono što možete precizno reći uže je i korisnije: koji par kandidata je izabran, koji transport ga je nosio i da li je ta putanja ostala unutar tunela. Zapišite te tri činjenice za poziv koji radi i za onaj koji ne radi, a razlika obično imenuje komponentu koju treba popraviti.
Kad povezanost proradi, razdvojite performanse od dostupnosti. Gubitak, kašnjenje, redovi čekanja i MTU sve se nalaze nizvodno od ispravnog para kandidata, a tretiranje isprekidanog poziva kao kvara povezanosti vraća vas na listu kandidata bez razloga.