Cara Kerja NAT Traversal (2020)
(tailscale.com)Cara Kerja NAT Traversal
-
Masalah Dasar: Membahas tantangan menentukan koneksi peer-to-peer antar dua mesin. Dalam kasus Tailscale, tujuannya adalah membuat terowongan WireGuard®. Teknologi ini digunakan di berbagai bidang, termasuk WebRTC, panggilan VoIP, dan permainan video.
-
Protokol Berbasis UDP: Untuk NAT traversal diperlukan protokol berbasis UDP. TCP juga bisa digunakan, tetapi kompleksitas meningkat dan mungkin perlu penyesuaian kernel.
-
Kontrol Langsung Socket Jaringan: Diperlukan kontrol langsung atas socket yang mengirim dan menerima paket jaringan. Tidak dapat melewati NAT hanya dengan menggunakan pustaka jaringan yang sudah ada.
-
Menggunakan Proxy Lokal: Jika akses langsung ke socket sulit dilakukan, dapat menggunakan proxy lokal untuk NAT traversal dan relai paket.
Memahami Firewall
-
Firewall Berstatus: Sebagian besar perangkat NAT menyertakan firewall berstatus, yang mengingat paket yang pernah dilihat sebelumnya dan menggunakannya untuk memproses paket baru.
-
Aturan Lalu Lintas UDP: Firewall mengizinkan paket UDP masuk yang cocok dengan paket outbound yang sebelumnya telah dilihat.
-
Menghadapi Firewall: Jika seluruh firewall menghadap arah yang sama, ini sama seperti mendesain ulang komunikasi klien-server. Namun muncul masalah saat dua klien mencoba berkomunikasi langsung.
Melewati Firewall
-
Tanpa Mengonfigurasi Ulang Firewall: Dibutuhkan cara untuk menyelesaikan masalah tanpa harus mengubah konfigurasi firewall. Jika paket UDP memiliki sumber dan tujuan yang benar, maka paket yang tampak sebagai balasan akan diizinkan.
-
Berbagi Informasi: Peer perlu mengetahui informasi ip:port lawan lebih dulu. Untuk itu, gunakan server koordinator untuk menyinkronkan informasi ip:port.
Inti NAT
-
Perangkat NAT: Perangkat NAT mengubah paket, terutama Source NAT (SNAT) yang memicu masalah. NAT digunakan untuk menghubungkan beberapa perangkat ke internet.
-
Penemuan NAT: Karena perangkat NAT mengubah paket, kedua peer tidak tahu ip:port lawan. Penemuan NAT didukung menggunakan protokol STUN.
STUN dan Penemuan NAT
-
Protokol STUN: Saat klien yang berada di balik NAT berkomunikasi dengan server internet, server dapat melihat ip:port publik yang dibuat oleh perangkat NAT. Server STUN lalu menyediakan informasi ini ke klien.
-
Batasan: STUN bekerja hanya dalam beberapa kasus dan kemungkinan gagal tinggi, terutama pada NAT gateway yang dipromosikan sebagai perangkat keamanan.
Solusi Tambahan
-
Menggunakan Relay: Ketika koneksi langsung gagal, paket diteruskan melalui relay yang memungkinkan kedua sisi berkomunikasi tanpa hambatan.
-
Protokol DERP: Tailscale memakai DERP (Detoured Encrypted Routing Protocol) untuk merelay data dan mendukung NAT traversal.
-
Protokol Pemeta Port: Dapat meminta perangkat NAT agar lebih kooperatif dengan menggunakan protokol pemetaan port seperti UPnP IGD, NAT-PMP, dan PCP.
Belum ada komentar.