Старонка загружаецца праз VPN, а выклік не злучаецца ніколі: дзве розныя паломы з адным і тым жа адрасным радком. Тунэль змяніў шлях, які выкарыстоўвае браўзер; ён не стаў службай сігналізацыі, серверам STUN або рэле і не вырашае, якую пару кандыдатаў выбера ICE. Менавіта размежаванне задачы кожнага кампанента ператварае расплывістае «WebRTC заблакаваны» ў канкрэтную няспраўнасць.

Чатыры задачы, з якіх тунэль закранае толькі адну

Прыкладанне абменьваецца звесткамі пра сеанс праз нейкую схему сігналізацыі, і гэта першая задача. ICE збірае адрасы кандыдатаў і правярае пары, пакуль адна не спрацуе, і гэта другая. STUN дазваляе пару даведацца, як яго трафік выглядае звонку, а TURN выдзяляе рэле для выпадкаў, калі прамога шляху няма. Гэтыя чатыры ролі розныя, і VPN уплывае на адрасы і фільтрацыю, з якімі яны сутыкаюцца, а не пастаўляе якую-небудзь з іх.

Таму паспяховы ўваход нічога не кажа пра шлях медыя. Сігналізацыя звычайна ідзе праз той жа HTTPS, што ўжо выкарыстоўвае старонка, на порце 443, а медыя можа ісці праз UDP да цалкам іншага пункта прызначэння.

Прыватная адрасацыя робіць блытаніну яшчэ горшай. Адрас тунэлю карысны пару толькі тады, калі ў гэтага пару ёсць накіраваны шлях назад да яго; быць прыватным не ёсць доказам узаемнай дасяжнасці, і браўзеры не разглядаюць гэта так, калі адкідаюць кандыдатаў, якіх нельга праверыць. Кандыдат, які выглядае лакальным для вас, можа быць неправераным з іншага боку. Гэтую прорву варта выключыць, перш чым рабіць выснову, што тунэль скідвае медыя.

Параўнайце выхад VPN з рэле TURN

Абодва перасылаюць пакеты, таму іх блытаюць, і табліцу параўнання вышэй варта чытаць па слупках, а не як пералік функцый. Выдзяленне рэле — гэта аб’ект на кожны сеанс, створаны аўтэнтыфікаваным запытам; тунэль — гэта маршрут. У аднаго ёсць уліковыя дадзеныя, якія сканчаюцца, у другога — адрас пару, які альбо дасяжны, альбо не.

ComponentWhat it contributesWhat it needs to workWhat it cannot do
VPN exitChanges the observed mapping and the route packets takeA working tunnel and a policy that permits the media transportAllocate a relay or supply signaling
STUN serverReports the mapped address a peer appears to useReachability from the client, on its configured transportCarry media when a direct path fails
TURN serverRelays media through an authenticated allocationValid credentials, an allowed transport and sufficient capacityFix a missing ICE policy or an unauthorized client
Signaling channelCarries offers, answers and candidate listsBoth peers reaching the same application endpointEstablish 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 знаходзяцца ніжэй за правільную пару кандыдатаў, і разгляд перарывістага выкліку як паломы злучнасці вяртае вас да спісу кандыдатаў без прычыны.

Падобныя артыкулы