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 сите се наоѓаат низводно од точен пар кандидати, и третирањето на прекинат повик како дефект на поврзаноста ве враќа на списокот кандидати без причина.