VPN mü TURN aktarıcısı mı: WebRTC aramasını gerçekte hangisi taşır?
Tünel, ICE'nin gördüğü yolu değiştirir; hiçbir zaman aktarıcı ayırmaz ve sinyalleşme sağlamaz. VPN çıkışının ve TURN sunucusunun ne sunduğunu karşılaştırın.
Sayfa VPN üzerinden yükleniyor ama arama hiç bağlanmıyor: aynı adres çubuğunda iki farklı arıza. Tünel, tarayıcının kullandığı yolu değiştirdi; bir sinyalleşme hizmeti, STUN sunucusu ya da aktarıcı olmadı ve ICE'nin hangi aday çiftini seçeceğine de karar vermez. Her bileşenin yaptığı işi ayırmak, belirsiz “WebRTC engellendi” ifadesini somut bir arızaya dönüştüren şeydir.
Dört iş, tünel yalnızca birine dokunur
Uygulama oturum bilgisini bir sinyalleşme düzeni üzerinden değişir ve bu ilk iştir. ICE aday adresleri toplar ve biri çalışana kadar çiftleri dener, bu da ikincisidir. STUN, bir eşin trafiğinin dışarıdan nasıl göründüğünü öğrenmesini sağlar, TURN ise doğrudan yol olmadığında bir aktarıcı ayırır. Bu dört rol birbirinden farklıdır ve VPN, bunların karşılaştığı adresleri ve filtrelemeyi etkiler, hiçbirini kendisi sağlamaz.
Bu yüzden başarılı bir oturum açma medya yolu hakkında hiçbir şey söylemez. Sinyalleşme genellikle sayfanın zaten kullandığı HTTPS üzerinden, 443 numaralı bağlantı noktasında gider, medya ise UDP ile tamamen başka bir hedefe gidebilir.
Özel adresleme karışıklığı daha da artırır. Tünel adresi bir eş için ancak o eşin oraya geri dönmek üzere tasarlanmış bir yolu varsa yararlıdır; özel olmak karşılıklı erişilebilirliğin kanıtı değildir ve tarayıcılar denetlenemeyen adayları elerken bunu böyle değerlendirmez. Size yerel görünen bir aday, diğer taraftan test edilemez olabilir. Tünelin medyayı düşürdüğü sonucuna varmadan önce bu boşluğu dışlamaya değer.
VPN çıkışını TURN aktarıcısıyla karşılaştırın
İkisi de paket iletir, bu yüzden karıştırılırlar, ve yukarıdaki karşılaştırma tablosu bir özellik listesi olarak değil, sütun sütun okunmaya değer. Aktarıcı ayırma, kimliği doğrulanmış bir istekle oluşturulan oturum başına bir nesnedir; tünel ise bir yoldur. Birinde süresi dolan kimlik bilgileri vardır, diğerinde erişilebilir olan ya da olmayan bir eş adresi vardır.
| 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 |
Bağlantı noktası numaraları farkı somutlaştırır. TURN varsayılan olarak UDP ve TCP için 3478'de, TLS için 5349'da dinler, ve 443'e izin verip bu noktaları düşüren bir ağ, tarama normal sürerken aktarıcılı aramaları başarısız kılar. VPN'in bağlantı noktasını değiştirmek bunların hiçbirini yapılandırmaz, çünkü önemli noktalar tünele değil aktarıcı hizmetine aittir.
Tanılamayı okuyun, sonra aramayı test edin
Tarayıcılar gereken bilgiyi paket yakalamadan gösterir. Tarayıcınız için WebRTC tanılama sayfasını açın, aramayı yapın ve toplanan liste yerine seçilen aday çiftini okuyun: hangi yerel ve uzak aday türlerinin seçildiğini, hangi taşıma ve adres ailesi üzerinden, ve yolun doğrudan mı aktarıcılı mı olduğunu.
İki okuma biçimini önceden bilmekte yarar var. Seçilen çift özel adreslerde ana bilgisayardan ana bilgisayara ise medya üzerine akıl yürütebileceğiniz bir yolda kalır; aktarıcıdan aktarıcıya ise arama aktarıcı kapasitesi harcar ve o hizmetin kullanılabilirliğine bağlıdır. Seçilen çift olmadan “denetleniyor” aşamasında duran bir arıza, adayların toplandığı ama hiçbirinin bağlantı denetimlerini geçmediği anlamına gelir.
Sonra aynı aramadaki aynı iki uç noktayı yalnızca bir onaylı koşulu değiştirerek karşılaştırın ve sonucu “bağlandı” göstergesine değil, iki yönlü medya veya veriye göre kabul edin. Aday toplama, tek bir ses çerçevesi bile taşımayan birçok durumda başarılı olur. Aramayı değişikliğin diğer tarafında yineleyin ve iki tanılama kaydını da saklayın, çünkü iki çalıştırmayı karşılaştırmak herhangi birini tek başına okumaktan daha bilgilendiricidir. Aynı uç noktalar, aynı kodek, değişen tek değişken.
ICE taşıma politikasını bilerek relay'e koyan bir uygulama yalnızca aktarıcı adayları ister. Bu ayar bir aktarıcı oluşturmaz ve eksik kimlik bilgilerini onarmaz; gereksinimi açık hale getirir, bu da biri sitenin seçtiği bir politika için VPN'i suçladığında işe yarar.
Gizlilik iddiasını kanıtlar kadar dar tutun
Adayların açığa çıkması yalnızca tünel durumuna değil, tarayıcı ve uygulama politikasına bağlıdır, ve W3C'nin eş bağlantısı belirtimi IP işlemeyi kendi ayrı konusu sayar. Bu yüzden bağlı bir VPN, bir aramanın yalnızca seçilmiş tek bir adresi açığa çıkardığını vaat etmek için zayıf bir temeldir. Aynı tünelin arkasındaki iki eş, ana bilgisayarı hiç terk etmeyen bir yolu bile seçebilir; bu aynı anda hem gizlilik iyileştirmesi hem de bağlantı kısıtıdır.
Kesin olarak söyleyebileceğiniz şey daha dar ve daha yararlıdır: hangi aday çiftinin seçildiği, onu hangi taşımanın taşıdığı ve o yolun tünelin içinde kalıp kalmadığı. Bu üç olguyu çalışan ve başarısız arama için yazın, ve fark genellikle onarılması gereken bileşeni adlandırır.
Bağlantı çalıştığında performansı erişilebilirlikten ayırın. Kayıp, gecikme, kuyruk ve MTU doğru aday çiftinin aşağı akışındadır, ve takılan bir aramayı bağlantı arızası saymak sizi sebepsiz yere aday listesine geri gönderir.