VPN ali posrednik TURN: kaj v resnici prenaša klic WebRTC?
Predor spremeni pot, ki jo vidi ICE; nikoli ne dodeli posrednika in ne zagotavlja signalizacije. Primerjajte, kaj ponujata izhod VPN in strežnik TURN.
Stran se naloži prek VPN, klic pa se nikoli ne poveže: dve različni napaki v isti naslovni vrstici. Predor je spremenil pot, ki jo uporablja brskalnik; ni postal storitev signalizacije, strežnik STUN ali posrednik in ne odloča, kateri par kandidatov bo izbral ICE. Prav ločevanje naloge vsake komponente spremeni nejasno „WebRTC je blokiran“ v konkretno napako.
Štiri naloge, od katerih se predor dotakne le ene
Aplikacija izmenjuje podatke o seji prek neke ureditve signalizacije in to je prva naloga. ICE zbira naslove kandidatov in preizkuša pare, dokler eden ne deluje, kar je druga. STUN omogoči partnerju, da izve, kako je videti njegov promet od zunaj, TURN pa dodeli posrednika za primere, ko ni neposredne poti. Te štiri vloge so različne in VPN vpliva na naslove in filtriranje, na katere naletijo, namesto da bi katero od njih zagotavljal.
Zato uspešna prijava ne pove ničesar o poti medijev. Signalizacija običajno poteka po istem HTTPS, ki ga stran že uporablja, na vratih 443, medtem ko lahko mediji potujejo po UDP do povsem drugega cilja.
Zasebno naslavljanje zmedo še poveča. Naslov predora je za partnerja uporaben le, ko ima ta nameravano pot nazaj do njega; da je zaseben, ni dokaz vzajemne dosegljivosti in brskalniki tega ne obravnavajo tako, ko zavržejo kandidate, ki jih ni mogoče preveriti. Kandidat, ki se vam zdi lokalen, je lahko z druge strani nepreverljiv. To vrzel je vredno izključiti, preden sklenete, da predor izgublja medije.
Primerjajte izhod VPN s posrednikom TURN
Oba posredujeta pakete, zato ju zamenjujejo, in primerjalno tabelo zgoraj je vredno brati stolpec za stolpcem, ne kot seznam funkcij. Dodelitev posrednika je predmet za vsako sejo, ustvarjen z overjenim zahtevkom; predor je pot. Eden ima poverilnice, ki potečejo, drugi ima naslov partnerja, ki je bodisi dosegljiv bodisi ne.
| 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 |
Številke vrat naredijo razliko konkretno. TURN privzeto posluša na 3478 za UDP in TCP ter na 5349 za TLS, in omrežje, ki dovoli 443, a zavrže ta vrata, bo imelo neuspešne klice prek posrednika, medtem ko brskanje poteka normalno. Spreminjanje vrat VPN ne nastavi ničesar od tega, ker pomembna vrata pripadajo storitvi posrednika, ne predoru.
Preberite diagnostiko in nato preizkusite klic
Brskalniki prikažejo potrebne informacije brez zajemanja paketov. Odprite diagnostično stran WebRTC za svoj brskalnik, opravite klic in berite izbrani par kandidatov, ne zbranega seznama: kateri tipi lokalnih in oddaljenih kandidatov so bili izbrani, po katerem transportu in družini naslovov ter ali je pot neposredna ali prek posrednika.
Dve branji je vredno poznati vnaprej. Če je izbrani par gostitelj-gostitelj na zasebnih naslovih, mediji ostanejo na poti, o kateri je mogoče sklepati; če je posrednik-posrednik, klic porablja zmogljivost posrednika in je odvisen od razpoložljivosti te storitve. Napaka, ki se ustavi pri „preverjanje“ brez izbranega para, pomeni, da so bili kandidati zbrani, a noben ni prestal preverjanj povezljivosti.
Nato primerjajte ista dva konca v istem klicu tako, da spremenite le en odobren pogoj, in rezultat sprejmite na podlagi dvosmernih medijev ali podatkov, ne na podlagi indikatorja „povezano“. Zbiranje kandidatov uspe v mnogih primerih, ki ne prenesejo niti enega zvočnega okvira. Ponovite klic na drugi strani spremembe in shranite oba diagnostična posnetka, ker primerjava dveh izvajanj pove več kot branje katerega koli samega. Ista konca, isti kodek, ena spremenjena spremenljivka.
Aplikacija, ki namerno nastavi svojo transportno politiko ICE na relay, zahteva le kandidate posrednika. Ta nastavitev ne ustvari posrednika in ne popravi manjkajočih poverilnic; zahtevo naredi izrecno, kar je koristno, ko nekdo krivi VPN za politiko, ki jo je izbralo spletišče.
Držite trditev o zasebnosti tako ozko, kot dopuščajo dokazi
Izpostavljenost kandidatov je odvisna od politike brskalnika in aplikacije, ne le od stanja predora, in specifikacija W3C za povezavo med partnerji obravnava ravnanje z IP kot svojo zadevo. Povezan VPN je zato šibka podlaga za obljubo, da klic razkrije le en izbrani naslov. Dva partnerja za istim predorom lahko celo izbereta pot, ki nikoli ne zapusti gostitelja, kar je hkrati izboljšanje zasebnosti in omejitev povezljivosti.
Kar lahko poveste natančno, je ožje in bolj uporabno: kateri par kandidatov je bil izbran, kateri transport ga je nosil in ali je ta pot ostala znotraj predora. Zapišite ta tri dejstva za delujoč in neuspešen klic, in razlika običajno poimenuje komponento, ki jo je treba popraviti.
Ko povezljivost deluje, ločite zmogljivost od dosegljivosti. Izguba, zakasnitev, čakalne vrste in MTU so vsi nižje od pravilnega para kandidatov, in obravnavanje zatikanega klica kot napake povezljivosti vas brez razloga pošlje nazaj na seznam kandidatov.