VPN vai TURN relejs: kas patiešām pārvadā WebRTC zvanu?
Tunelis maina ceļu, ko redz ICE; tas nekad nepiešķir releju un nesniedz signalizāciju. Salīdziniet, ko piedāvā VPN izeja un TURN serveris.
Lapa ielādējas caur VPN, bet zvans nekad nesavienojas: divas dažādas kļūdas vienā adreses joslā. Tunelis mainīja ceļu, ko izmanto pārlūks; tas nekļuva par signalizācijas pakalpojumu, STUN serveri vai releju, un tas neizlemj, kuru kandidātu pāri izvēlēsies ICE. Tieši katra komponenta veiktā darba atdalīšana neskaidro „WebRTC ir bloķēts“ pārvērš konkrētā kļūmē.
Četri uzdevumi, no kuriem tunelis skar tikai vienu
Lietojumprogramma apmainās ar sesijas informāciju kaut kādā signalizācijas kārtībā, un tas ir pirmais uzdevums. ICE vāc kandidātu adreses un pārbauda pārus, līdz viens darbojas, un tas ir otrais. STUN ļauj partnerim uzzināt, kā izskatās viņa trafiks no ārpuses, un TURN piešķir releju gadījumiem, kad nav tieša ceļa. Šīs četras lomas atšķiras, un VPN ietekmē adreses un filtrēšanu, ar ko tās saskaras, nevis nodrošina kādu no tām.
Tāpēc veiksmīga pieteikšanās neko neizsaka par mediju ceļu. Signalizācija parasti iet pa to pašu HTTPS, ko lapa jau izmanto, uz portu 443, bet mediji var ceļot pa UDP uz pavisam citu galamērķi.
Privāta adresācija padara jucekli lielāku. Tunela adrese partnerim ir noderīga tikai tad, ja tam ir paredzēts ceļš atpakaļ uz to; tas, ka adrese ir privāta, nav savstarpējas sasniedzamības pierādījums, un pārlūki to tā neuztver, kad atmet kandidātus, kurus nevar pārbaudīt. Kandidāts, kas jums šķiet lokāls, var būt nepārbaudāms no otras puses. Šo plaisu ir vērts izslēgt, pirms secināt, ka tunelis met medijus.
Salīdziniet VPN izeju ar TURN releju
Abi pārsūta paketes, tāpēc tos jauc, un salīdzinājuma tabula augstāk ir jālasa kolonnu pa kolonnai, nevis kā funkciju saraksts. Releja piešķiršana ir objekts katrai sesijai, ko izveido autentificēts pieprasījums; tunelis ir maršruts. Vienam ir akreditācijas dati, kas beidzas, otram ir partnera adrese, kas vai nu ir sasniedzama, vai nav.
| 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 |
Portu numuri padara atšķirību konkrētu. TURN pēc noklusējuma klausās portā 3478 UDP un TCP vajadzībām un portā 5349 TLS vajadzībām, un tīkls, kas atļauj 443, bet atmet šos portus, liks neizdoties relejotiem zvaniem, kamēr pārlūkošana turpinās normāli. VPN porta maiņa neko no tā nekonfigurē, jo svarīgie porti pieder releja pakalpojumam, nevis tunelim.
Izlasi diagnostiku, tad pārbaudi zvanu
Pārlūki parāda nepieciešamo informāciju bez pakešu tveršanas. Atveriet sava pārlūka WebRTC diagnostikas lapu, veiciet zvanu un lasiet izvēlēto kandidātu pāri, nevis savākto sarakstu: kuri vietējie un attālie kandidātu tipi tika izvēlēti, pa kādu transportu un adrešu saimi, un vai ceļš ir tiešs vai relejots.
Divi lasījumi jāzina iepriekš. Ja izvēlētais pāris ir host-host privātās adresēs, mediji paliek ceļā, par ko var spriest; ja tas ir relejs-relejs, zvans patērē releja jaudu un ir atkarīgs no šī pakalpojuma pieejamības. Kļūme, kas apstājas pie „pārbauda“ bez izvēlēta pāra, nozīmē, ka kandidāti tika savākti, bet neviens neizturēja savienojamības pārbaudes.
Pēc tam salīdziniet tos pašus divus galapunktus tajā pašā zvanā, mainot tikai vienu apstiprinātu nosacījumu, un pieņemiet rezultātu pēc divvirzienu medijiem vai datiem, nevis pēc „savienots“ indikatora. Kandidātu vākšana izdodas daudzos gadījumos, kas nepārraida nevienu audio kadru. Atkārtojiet zvanu mainījuma otrā pusē un saglabājiet abus diagnostikas ierakstus, jo divu palaišanu salīdzināšana sniedz vairāk informācijas nekā jebkuras vienas lasīšana. Tie paši galapunkti, tas pats kodeks, viens mainīts mainīgais.
Lietojumprogramma, kas apzināti iestata savu ICE transporta politiku uz relay, pieprasa tikai releja kandidātus. Šis iestatījums neveido releju un nelabo trūkstošos akreditācijas datus; tas padara prasību skaidru, kas ir noderīgi, kad kāds vaino VPN politikā, kuru izvēlējās vietne.
Turiet privātuma apgalvojumu tik šauru, cik pierādījumi
Kandidātu atklāšana ir atkarīga no pārlūka un lietojumprogrammas politikas, ne tikai no tuneļa stāvokļa, un W3C partneru savienojuma specifikācija IP apstrādi uzskata par atsevišķu jautājumu. Tāpēc pieslēgts VPN ir vājš pamats solīt, ka zvans atklās tikai vienu izvēlētu adresi. Divi partneri aiz tā paša tuneļa var pat izvēlēties ceļu, kas nekad neatstāj hostu, un tas vienlaikus ir privātuma uzlabojums un savienojamības ierobežojums.
To, ko varat precīzi pateikt, ir šaurāk un noderīgāk: kurš kandidātu pāris tika izvēlēts, kurš transports to nesa un vai šis ceļš palika tuneļa iekšpusē. Pierakstiet šos trīs faktus strādājošam un neizdevušam zvanam, un atšķirība parasti nosauc komponentu, kas jālabo.
Kad savienojamība darbojas, atdaliet veiktspēju no sasniedzamības. Zudumi, aizture, rindas un MTU visi atrodas lejpus pareiza kandidātu pāra, un raustīga zvana uzskatīšana par savienojamības kļūmi aizsūta jūs atpakaļ uz kandidātu sarakstu bez iemesla.