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 для свайго браўзера, зрабіце выклік і чытайце выбранай пару кандыдатаў, а не сабраны спіс: якія тыпы лакальных і аддаленых кандыдатаў выбраныя, праз які транспарт і сямейства адрасоў, і ці шлях прамы, ці праз рэле.
Дзве ўмовы чытання варта ведаць загадзя. Калі выбрана пара host-to-host на прыватных адрасах, медыя застаецца на шляху, пра які можна разважаць; калі гэта relay-to-relay, выклік выдаткаў рэсурс рэле і залежыць ад даступнасці гэтай службы. Палом, які спыняецца на «checking» без выбранай пары, азначае, што кандыдаты сабраныя, але ніводзін не прайшоў праверкі злучнасці.
Затым параўнайце тыя ж два канцы ў тым жа выкліку, змяніўшы толькі адну дазволеную ўмову, і прымайце вынік па двухбаковым медыя або даных, а не па індыкатары «злучана». Збор кандыдатаў паспяхова праходзіць у мностве выпадкаў, якія не пераносяць ніводнага кадра гуку. Паўтарыце выклік па іншы бок змены і захавайце абодва дыягнастычныя запісы, бо параўнанне двух прагонаў інфарматыўнейшае за чытанне любога з іх паасобку. Тыя ж канцы, той жа кодэк, адна змененая пераменная.
Прыкладанне, якое наўмысна ставіць палітыку транспарту ICE на relay, просіць толькі кандыдатаў рэле. Гэтая налада не стварае рэле і не выпраўляе адсутныя ўліковыя дадзеныя; яна робіць патрабаванне відавочным, што карысна, калі хтосьці вінаваціць VPN у палітыцы, якую выбраў сайт.
Трымайце заяву пра прыватнасць настолькі вузкай, наколькі дазваляюць доказы
Уздзеянне кандыдатаў залежыць ад палітыкі браўзера і прыкладання, а не толькі ад стану тунэлю, і спецыфікацыя W3C для злучэння пару разглядае апрацоўку IP як асобную справу. Таму падключаны VPN — слабая аснова абяцаць, што выклік выявіць толькі адзін выбраны адрас. Два пару за адным тунэлем могуць нават выбраць шлях, які ніколі не пакідае хост, што адначасова і паляпшэнне прыватнасці, і абмежаванне злучнасці.
Што можна сказаць дакладна, тое вузейшае і карыснейшае: якая пара кандыдатаў выбрана, які транспарт яе нёс і ці застаўся гэты шлях унутры тунэлю. Запішыце гэтыя тры факты для працоўнага выкліку і для няўдалага, і розніца звычайна называе кампанент, які трэба выправіць.
Калі злучнасць працуе, аддзяліце прадукцыйнасць ад дасяжнасці. Страты, затрымка, чэргі і MTU знаходзяцца ніжэй за правільную пару кандыдатаў, і разгляд перарывістага выкліку як паломы злучнасці вяртае вас да спісу кандыдатаў без прычыны.