VPN o relé TURN: quin transporta realment una trucada WebRTC?
El túnel canvia el camí que veu ICE; no assigna mai un relé ni proporciona senyalització. Compareu què ofereix una sortida VPN i un servidor TURN.
La pàgina es carrega per la VPN, però la trucada no connecta mai: dues fallades diferents amb la mateixa barra d'adreces. El túnel va canviar el camí que fa servir el navegador; no s'ha convertit en un servei de senyalització, un servidor STUN ni un relé, i no decideix quina parella de candidats triarà ICE. Separar la feina de cada component és el que converteix un vague “WebRTC està bloquejat” en una fallada concreta.
Quatre feines, i el túnel només en toca una
L'aplicació intercanvia informació de sessió mitjançant algun mecanisme de senyalització, i aquesta és la primera feina. ICE recull adreces candidates i prova parelles fins que una funciona, que és la segona. STUN permet a un igual saber com es veu el seu trànsit des de fora, i TURN assigna un relé per als casos en què no existeix cap camí directe. Aquests quatre papers són diferents, i una VPN afecta les adreces i el filtratge que troben en lloc de proporcionar-ne cap.
Per això un inici de sessió correcte no diu res sobre el camí dels mitjans. La senyalització sol viatjar pel mateix HTTPS que la pàgina ja utilitza, al port 443, mentre que els mitjans poden anar per UDP fins a una destinació completament diferent.
L'adreçament privat empitjora la confusió. Una adreça de túnel només és útil per a un igual quan aquest igual té un camí previst de tornada cap a ella; ser privada no és prova d'abastabilitat mútua, i els navegadors no ho tracten així quan descarten candidats que no es poden comprovar. Un candidat que a vós us sembla local pot ser no comprovable des de l'altre costat. Val la pena descartar aquesta escletxa abans de concloure que el túnel deixa caure els mitjans.
Compareu una sortida VPN amb un relé TURN
Tots dos reenvien paquets, i per això es confonen, i la taula de comparació de dalt val la pena llegir-la columna a columna i no com una llista de funcions. L'assignació d'un relé és un objecte per sessió creat per una petició autenticada; un túnel és una ruta. Un té credencials que caduquen, l'altre té una adreça d'igual que o és abastable o no ho és.
| 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 |
Els números de port fan la diferència concreta. TURN escolta per defecte al 3478 per a UDP i TCP i al 5349 per a TLS, i una xarxa que permet el 443 però descarta aquests ports farà fallar les trucades relayades mentre la navegació continua amb normalitat. Canviar el port de la VPN no configura res d'això, perquè els ports que importen pertanyen al servei de relé, no al túnel.
Llegiu el diagnòstic i després proveu la trucada
Els navegadors exposen la informació que necessiteu sense capturar paquets. Obriu la pàgina de diagnòstic de WebRTC del vostre navegador, feu la trucada i llegiu la parella de candidats seleccionada en lloc de la llista recollida: quins tipus de candidat local i remot s'han triat, per quin transport i família d'adreces, i si el camí és directe o relayat.
Dues lectures val la pena conèixer per endavant. Si la parella seleccionada és amfitrió a amfitrió en adreces privades, els mitjans es queden en un camí sobre el qual podeu raonar; si és relé a relé, la trucada consumeix capacitat de relé i depèn de la disponibilitat d'aquest servei. Una fallada que s'atura a “comprovant” sense cap parella seleccionada vol dir que s'han recollit candidats, però cap no ha passat les comprovacions de connectivitat.
Després compareu els mateixos dos extrems en la mateixa trucada canviant només una condició aprovada, i accepteu el resultat per mitjans o dades bidireccionals i no per un indicador de connectat. La recollida de candidats té èxit en molts casos que no porten ni un sol fotograma d'àudio. Repetiu la trucada a l'altre costat del canvi i conserveu les dues captures de diagnòstic, perquè comparar dues execucions informa més que llegir-ne qualsevol sola. Mateixos extrems, mateix còdec, una variable alterada.
Una aplicació que posa deliberadament la seva política de transport ICE en relay només demana candidats de relé. Aquest paràmetre no crea cap relé ni repara credencials que falten; fa explícit el requisit, cosa útil quan algú culpa la VPN d'una política que ha triat el lloc.
Mantingueu l'afirmació de privadesa tan estreta com les proves
L'exposició de candidats depèn de la política del navegador i de l'aplicació, no només de l'estat del túnel, i l'especificació W3C de connexió entre iguals tracta el maneig d'IP com un afer propi. Una VPN connectada és, per tant, una base pobra per prometre que una trucada només revela una adreça escollida. Dues persones darrere del mateix túnel fins i tot poden triar un camí que no surt mai de l'amfitrió, cosa que és alhora una millora de privadesa i una restricció de connectivitat.
El que podeu afirmar amb precisió és més estret i més útil: quina parella de candidats s'ha seleccionat, quin transport l'ha portat i si aquell camí s'ha quedat dins del túnel. Anoteu aquests tres fets per a una trucada que funciona i per a una que falla, i la diferència sol anomenar el component que cal arreglar.
Un cop la connectivitat funciona, separeu el rendiment de l'abastabilitat. Pèrdua, retard, cues i MTU seuen tots aigües avall d'una parella de candidats correcta, i tractar una trucada entretallada com una fallada de connectivitat us torna a la llista de candidats sense cap motiu.