Lubang UDP meninju port NAT

8

Saya baru saja membaca sebuah artikel tentang proses "meninju lubang" dengan protokol UDP. Saya mengerti bagaimana ini dilakukan, tetapi saya punya satu pertanyaan terakhir untuk menjernihkan hal-hal. Kami memiliki server pertemuan dan klien A, B.

Klien A sudah membuat lubang untuk klien B. Klien B menerima IP NAT dan port NAT dari server rendezvous dan mulai mengirim data ke port yang sama dengan server rendezvous. Katakanlah saya kebetulan tahu port kedua yang telah dibuka NAT untuk koneksi UDP. Bisakah saya mengirim paket saya melalui port kedua ini juga? Atau apakah port dibedakan untuk setiap koneksi UDP keluar? Jika demikian, bagaimana bisa kita menggunakan port yang sama untuk Client B dan server pertemuan? Bukankah NAT membuka port baru ketika Client A meninju hole dan Client B harus tahu port baru yang dibuka NAT untuk koneksi spesifik ini?

Saya harap pertanyaan saya agak bisa dimengerti.

Tagaeyan Tagan
sumber

Jawaban:

6

Perangkat NAT akan menyimpan tabel dengan koneksi terbuka saat ini sehingga dapat mengirim paket kembali ke host internal yang membuka koneksi. Entri di tabel keadaan bisa terlihat seperti ini:

Sumber Internal IP | S-Port Internal | S-Port Eksternal | IP Tujuan | D-Port
192.168.1.12 10123 10123 203.0.113.1 5555

Ketika sebuah paket diterima (dari sisi eksternal) perangkat NAT akan memeriksa Source IP , Source Port dan Destination Port dari paket tersebut dan membandingkannya dengan Destination IP, D-Portdan External S-Portbidang dalam tabel koneksinya. Ketika menemukan kecocokan, itu akan meneruskan paket ke Internal Source IPaktif Internal S-Port.

Meninju lubang UDP tergantung pada kenyataan bahwa Port Sumber Internal dan Eksternal adalah sama. Ini biasanya terjadi kecuali Anda memiliki host internal kedua yang menggunakan port Sumber yang sama untuk menyambung ke kombinasi Tujuan / D-Port eksternal yang sama.

Ketika kita mengasumsikan bahwa S-Port Internal dan Eksternal sama maka kedua klien A, B dapat mengkomunikasikan port sumber mereka ke server pertemuan yang kemudian akan menyampaikan informasi tersebut kembali ke masing-masing klien.

Sebastian Wiesinger
sumber