VPN или TURN реле: шта заправо преноси WebRTC позив?
Тунел мења путању коју ICE види; никада не додељује реле и не обезбеђује сигнализацију. Упоредите шта пружају VPN излаз и TURN сервер.
Страница се учитава преко VPN-а, али позив се никада не повезује: две различите грешке у истој адресној траци. Тунел је променио путању коју прегледач користи; није постао услуга сигнализације, STUN сервер или реле и не одлучује који ће пар кандидата ICE изабрати. Управо раздвајање посла који свака компонента обавља претвара нејасно „WebRTC је блокиран“ у конкретну грешку.
Четири посла, а тунел дотиче само један
Апликација размењује податке о сесији кроз некакав распоред сигнализације, и то је први посао. ICE прикупља адресе кандидата и тестира парове док један не проради, што је други. STUN омогућава партнеру да сазна како његов саобраћај изгледа споља, а TURN додељује реле за случајеве када не постоји директна путања. Те четири улоге су различите, а VPN утиче на адресе и филтрирање на које наилазе, уместо да било коју од њих пружа.
Зато успешна пријава не говори ништа о путањи медија. Сигнализација обично иде истим HTTPS-ом који страница већ користи, на порту 443, док медији могу путовати преко UDP-а до потпуно друге дестинације.
Приватно адресирање погоршава забуну. Адреса тунела је партнеру корисна само када он има предвиђену путању назад до ње; то што је приватна није доказ узајамне доступности и прегледачи то не третирају тако када одбацују кандидате који се не могу проверити. Кандидат који вама изгледа локално може бити непроверљив са друге стране. Ту празнину вреди искључити пре него што закључите да тунел испушта медије.
Упоредите VPN излаз са TURN релеом
Оба прослеђују пакете, због чега се мешају, а табелу поређења изнад вреди читати колону по колону, а не као списак функција. Додела релеа је објекат по сесији створен аутентификованим захтевом; тунел је рута. Једно има акредитиве које истичу, друго има адресу партнера која је или доступна или није.
| 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 |
Бројеви портова чине разлику конкретном. TURN подразумевано слуша на 3478 за UDP и TCP и на 5349 за TLS, а мрежа која дозвољава 443 али одбацује те портове неће успети у релеисаним позивима док прегледање наставља нормално. Промена порта VPN-а не конфигурише ништа од тога, јер важни портови припадају реле услузи, а не тунелу.
Прочитајте дијагностику, па тестирајте позив
Прегледачи излажу потребне информације без хватања пакета. Отворите дијагностичку страницу WebRTC за свој прегледач, обавите позив и читајте изабрани пар кандидата, а не прикупљену листу: који су типови локалних и удаљених кандидата изабрани, преко ког транспорта и породице адреса, и да ли је путања директна или релеисана.
Два читања вреди знати унапред. Ако је изабрани пар хост-до-хост на приватним адресама, медији остају на путањи о којој можете закључивати; ако је реле-до-реле, позив троши капацитет релеа и зависи од доступности те услуге. Грешка која се заустави на „проверава“ без изабраног пара значи да су кандидати прикупљени, али ниједан није прошао провере повезаности.
Затим упоредите иста два краја у истом позиву мењајући само један одобрени услов, и прихватите резултат на основу двосмерних медија или података, а не индикатора „повезано“. Прикупљање кандидата успева у многим случајевима који никада не пренесу ниједан кадар звука. Поновите позив на другој страни промене и сачувајте оба дијагностичка снимка, јер поређење два извршавања даје више информација од читања било ког појединачно. Исти крајеви, исти кодек, једна измењена променљива.
Апликација која намерно поставља своју ICE транспортну политику на relay тражи само реле кандидате. То подешавање не ствара реле и не поправља акредитиве који недостају; оно чини захтев експлицитним, што је корисно када неко окривљује VPN за политику коју је сајт изабрао.
Држите тврдњу о приватности уско колико и докази
Изложеност кандидата зависи од политике прегледача и апликације, не само од стања тунела, а спецификација W3C за везу између партнера третира руковање IP-ом као сопствену ствар. Због тога повезан VPN је слаба основа за обећање да позив открива само једну изабрану адресу. Два партнера иза истог тунела могу чак изабрати путању која никада не напушта хост, што је истовремено побољшање приватности и ограничење повезаности.
Оно што можете прецизно рећи је уже и корисније: који пар кандидата је изабран, који транспорт га је носио и да ли је та путања остала унутар тунела. Запишите те три чињенице за позив који ради и за онај који не успева, а разлика обично именује компоненту коју треба поправити.
Када повезаност проради, раздвојите перформансе од достижности. Губитак, кашњење, редови и MTU сви се налазе низводно од исправног пара кандидата, а третирање испрекиданог позива као грешке повезаности враћа вас на листу кандидата без разлога.