VPN vs relai TURN: mana yang benar-benar membawa panggilan WebRTC?
Terowongan mengubah jalur yang dilihat ICE; ia tidak pernah mengalokasikan relai atau menyediakan pensinyalan. Bandingkan apa yang diberikan keluar VPN dan server TURN.
Halaman dimuat lewat VPN, panggilan tidak pernah tersambung: dua kegagalan berbeda di bilah alamat yang sama. Terowongan mengubah jalur yang dipakai peramban; ia tidak menjadi layanan pensinyalan, server STUN, atau relai, dan tidak menentukan pasangan kandidat mana yang akan dipilih ICE. Memisahkan tugas yang dijalankan tiap komponen itulah yang mengubah “WebRTC diblokir” yang kabur menjadi gangguan yang spesifik.
Empat tugas, dan terowongan hanya menyentuh satu
Aplikasi menukar informasi sesi melalui semacam pengaturan pensinyalan, dan itu tugas pertama. ICE mengumpulkan alamat kandidat dan menguji pasangan sampai satu berhasil, yang merupakan tugas kedua. STUN memungkinkan mitra mengetahui bagaimana lalu lintasnya terlihat dari luar, dan TURN mengalokasikan relai untuk kasus yang tidak memiliki jalur langsung. Keempat peran itu berbeda, dan VPN memengaruhi alamat serta penyaringan yang mereka temui alih-alih menyediakan salah satunya.
Karena itu login yang berhasil tidak mengatakan apa pun tentang jalur media. Pensinyalan biasanya menumpang HTTPS yang sama dengan yang sudah dipakai halaman, pada port 443, sementara media dapat berjalan lewat UDP ke tujuan yang sama sekali berbeda.
Pengalamatan privat memperburuk kebingungan. Alamat terowongan hanya berguna bagi mitra bila mitra itu punya jalur kembali yang dimaksudkan ke sana; bersifat privat bukan bukti keterjangkauan timbal balik, dan peramban tidak memperlakukannya begitu ketika membuang kandidat yang tidak dapat diperiksa. Kandidat yang tampak lokal bagi Anda bisa jadi tidak dapat diuji dari sisi lain. Kesenjangan itu layak disingkirkan sebelum Anda menyimpulkan terowongan menjatuhkan media.
Bandingkan keluar VPN dengan relai TURN
Keduanya meneruskan paket, karena itu keduanya dicampuradukkan, dan tabel perbandingan di atas layak dibaca kolom demi kolom, bukan sebagai daftar fitur. Alokasi relai adalah objek per sesi yang dibuat oleh permintaan terautentikasi; terowongan adalah rute. Yang satu punya kredensial yang kedaluwarsa, yang lain punya alamat mitra yang entah terjangkau atau tidak.
| 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 |
Nomor port membuat perbedaannya konkret. TURN mendengarkan secara bawaan pada 3478 untuk UDP dan TCP serta pada 5349 untuk TLS, dan jaringan yang mengizinkan 443 tetapi membuang port tersebut akan menggagalkan panggilan yang direlai sementara penjelajahan berjalan normal. Mengubah port VPN tidak mengonfigurasi semua itu, karena port yang penting milik layanan relai, bukan milik terowongan.
Baca diagnostiknya, lalu uji panggilannya
Peramban menampilkan informasi yang Anda butuhkan tanpa menangkap paket. Buka halaman diagnostik WebRTC untuk peramban Anda, lakukan panggilan, lalu baca pasangan kandidat terpilih alih-alih daftar yang terkumpul: jenis kandidat lokal dan jarak jauh mana yang dipilih, lewat transport dan keluarga alamat mana, serta apakah jalurnya langsung atau direlai.
Dua bacaan layak diketahui sebelumnya. Jika pasangan terpilih adalah host-ke-host pada alamat privat, media tetap berada di jalur yang bisa Anda nalar; jika relai-ke-relai, panggilan menghabiskan kapasitas relai dan bergantung pada ketersediaan layanan itu. Kegagalan yang berhenti di “memeriksa” tanpa pasangan terpilih berarti kandidat sudah terkumpul tetapi tidak ada yang lolos pemeriksaan konektivitas.
Lalu bandingkan dua titik akhir yang sama pada panggilan yang sama dengan mengubah hanya satu kondisi yang disetujui, dan terimalah hasilnya berdasarkan media atau data dua arah, bukan berdasarkan indikator “tersambung”. Pengumpulan kandidat berhasil pada banyak kasus yang tidak pernah membawa satu bingkai audio pun. Ulangi panggilan di sisi lain perubahan dan simpan kedua tangkapan diagnostik, karena membandingkan dua proses lebih informatif daripada membaca salah satunya saja. Titik akhir sama, codec sama, satu variabel diubah.
Aplikasi yang sengaja menyetel kebijakan transport ICE-nya ke relay hanya meminta kandidat relai. Setelan itu tidak membuat relai dan tidak memperbaiki kredensial yang hilang; ia membuat persyaratannya eksplisit, yang berguna ketika seseorang menyalahkan VPN atas kebijakan yang dipilih situs.
Jaga klaim privasi seketat buktinya
Keterpaparan kandidat bergantung pada kebijakan peramban dan aplikasi, bukan hanya status terowongan, dan spesifikasi koneksi mitra W3C memperlakukan penanganan IP sebagai urusannya sendiri. Karena itu VPN yang tersambung adalah dasar yang lemah untuk menjanjikan bahwa panggilan hanya mengungkap satu alamat terpilih. Dua mitra di balik terowongan yang sama bahkan dapat memilih jalur yang tidak pernah meninggalkan host, yang sekaligus merupakan peningkatan privasi dan batasan konektivitas.
Yang dapat Anda nyatakan dengan tepat lebih sempit dan lebih berguna: pasangan kandidat mana yang dipilih, transport mana yang membawanya, dan apakah jalur itu tetap di dalam terowongan. Catat ketiga fakta itu untuk panggilan yang berhasil dan yang gagal, dan selisihnya biasanya menamai komponen yang perlu diperbaiki.
Setelah konektivitas bekerja, pisahkan kinerja dari keterjangkauan. Kehilangan, tundaan, antrean, dan MTU semuanya berada di hilir pasangan kandidat yang benar, dan memperlakukan panggilan tersendat sebagai kegagalan konektivitas mengirim Anda kembali ke daftar kandidat tanpa alasan.