Bagaimana router mengetahui cara merutekan paket ke terminal saya?

10

Misalkan saya memiliki jaringan 2 komputer, masing-masing memiliki alamat jaringan pribadi 192.168.1.101 dan 192.106.1.102.

Untuk alamat ip publik saya, itu adalah 10.2.10.172.

Ketika saya membuat permintaan http ke google.com, komputer saya akan mengirimkan paket dengan alamat ip sumber 192.168.1.101 ke router dan NAT akan mengubahnya ke 10.2.10.172.

Pertanyaan saya adalah, ketika google.com mendapatkan permintaan, dan mengirim balasan kembali ke 10.2.10.172, bagaimana router mengetahui komputer mana yang harus dirutekan? (192.168.1.101 atau 192.168.1.102).

Saya berpikir tentang nomor port pada awalnya, tetapi saya pikir kita bisa browsing di situs web yang sama pada saat yang sama sehingga saya tidak tahu bagaimana cara kerjanya di sini.

Mc Kevin
sumber
1
kemungkinan duplikat lubang UDP meninju port NAT
Sebastian Wiesinger
1
10 jaringan juga "internal non-routable" - Saya bekerja dengan cepat melalui antrian malam ini, jadi mungkin saya gila ... ada lapisan lain dari NAT yang harus terjadi untuk mengubah 10 net number menjadi publick routable . Bagaimanapun ... McKevin, selamat datang di Net Eng! Ini adalah Q softball untuk di sini, tapi saya kira cukup pada topik ...
Craig Constantine
@CraigConstantine Saya hanya seorang siswa CCNA, saya kira itu menjelaskan pada softball Q :)
Mc Kevin

Jawaban:

7

NAT
Jika Anda menggunakan statis (satu-ke-satu) NAT , router akan menetapkan 11.2.10.172IP publik untuk PC pertama (misalnya 192.168.1.101) berusaha untuk mencapai google.com. Dalam hal ini, kedua PC tidak akan dapat berkomunikasi dengan google.com sekaligus, karena IP publik yang tersedia hanya sudah didistribusikan.
Tabel NAT di router:
11.2.10.172 -> 192.168.1.101

PAT
Dalam kasus Anda, PAT (NAT overloading) adalah solusinya.
Dengan PAT, banyak alamat dapat dipetakan ke satu IP pribadi. Ketika perangkat memulai sesi TCP / IP, itu menghasilkan nomor port sumber TCP atau UDP untuk mengidentifikasi sesi secara unik. Ketika router menerima paket ini, ia menggunakan nomor port sumber untuk mengidentifikasi terjemahan secara unik.

Contoh
PC1 ( 192.168.1.101) membuat permintaan HTTP ke google.com ( 64.233.161.1) dengan nomor port sumber acak (1444). PC1 akan mengirim paket dengan DA: 64.233.161.1:80 | SA: 192.168.1.101:1444. Ketika router menerima paket ini, ia menyisipkan 11.2.10.172:1444 -> 192.168.1.101:1444ke tabel NAT kemudian mengubah pengalamatan L3 paket ke DA: 64.233.161.1:80 | SA: 11.2.10.172:1444dan meneruskannya ke google.com.
Google merespons dengan DA: 11.2.10.172:1444 | SA: 64.233.161.1:80. Router menerima paket ini dan menerjemahkannya untuk DA: 192.168.1.101:1444 | SA: 64.233.161.1:80kemudian meneruskannya ke PC1.

Jika PC2 ( 192.168.1.102) mengirim paket dengan nomor port sumber yang sama seperti PC1, router hanya menambah nomor port dengan 1. Dalam hal itu tabel NAT akan terlihat seperti ini

11.2.10.172:1444 -> 192.168.1.101:1444
11.2.10.172:1445 -> 192.168.1.102:1444

Saya harap ini sedikit membantu.

PEMBARUAN
Seperti yang diperhatikan @CraigConstantine, 10.2.10.172masih ada di ruang alamat pribadi jadi saya telah mengubahnya 11.2.10.172.

Adam Hornyak
sumber
jadi maksudmu kita akan memiliki 2 nomor port dalam paket? satu untuk NAT dan satu untuk terminal (http port 80)?
Mc Kevin
1
Iya. PC mengirim paket dengan <dest: 64.233.161.1:80, sumber 192.168.1.101>. Router menerjemahkannya ke <dest: 64.233.161.1:80, sumber: 10.2.10.172:1317> dan mengirimkannya ke Google. Google merespons dengan <dest: 10.2.10.172:1317, sumber: 64.233.161.1:80>. Router menerima paket, mencari pemetaan 10.2.10.172:1317 dalam tabel NAT. Menemukan baris yang benar, menerjemahkan, dan mengirimkan paket ke PC dengan <dest: 192.168.1.101, sumber: 64.233.161.1:80>
Adam Hornyak
1
Hanya satu di paket. router menulis ulang alamat tujuan dan nomor port saat diterjemahkan.
Ron Trunk
1
Jika kita ingin mendapatkan semua teknis (dan siapa yang tidak?) PC menetapkan port sumber yang kemudian diterjemahkan oleh perangkat NAT. Jadi dalam komentar Adam sumber pertama benar-benar akan lebih seperti 192.168.1.101:33123, dan juga tujuan akhir yang sesuai pada akhir komentarnya adalah 192.168.1.101:33123.
Todd Wilcox
1
@ToddWilcox Anda benar. Saya lupa itu. Saya akan memperbarui jawaban saya.
Adam Hornyak
4

Perute Anda tahu ke mana harus merutekan lalu lintas karena ia memelihara tabel koneksi stateful yang merupakan sumber alamat IP: port dan tujuan Alamat IP: hubungan port. Ini dibuat berdasarkan aturan firewall Anda, kebijakan NAT, dan beberapa pengaturan lainnya (seperti batas waktu TCP dan UDP). Ada 4 kemungkinan status: BARU, TERKAIT, DIDIRIKAN dan INVALID. Berdasarkan aturan firewall Anda, firewall Anda menentukan status koneksi yang seharusnya. Jadi biasanya, Anda dapat membuat koneksi BARU keluar secara default, tetapi hanya koneksi TERKAIT atau DIDIRIKAN yang diizinkan masuk jika Anda membuat aturan NAT atau PAT dan mencocokkan kebijakan firewall. untuk mengizinkan ini.

Kemudian, baik berdasarkan aturan yang telah Anda konfigurasi (untuk kasus koneksi BARU) atau tabel koneksi yang ada (untuk kasus koneksi ESTABLISHED) paket akan diizinkan atau tidak diizinkan melalui.

Selain itu, tabel [ARP] dipertahankan yang membantu firewall untuk mengetahui apa alamat MAC fisik alamat IP yang sesuai.

James Shewey
sumber