Bagaimana paket jawaban IP mencapai tujuannya di dalam LAN pribadi? [duplikat]


26

Ini adalah pertanyaan teori kecil yang telah membingungkan saya untuk waktu yang cukup lama.

Pada dasarnya, jika kita berada di dalam LAN pribadi, dan kami ingin paket yang masuk untuk menjangkau, misalnya, server HTTP yang terletak di salah satu mesin, kami meneruskan port sehingga paket yang masuk mencapai persis komputer itu.

Sekarang, saya cukup bingung bagaimana paket 'response' mencapai tujuan mereka di dalam LAN, seperti, ketika kita membuka halaman web atau lebih. Tidak dapat menemukan informasi berguna tentang topik itu.

Saya harap seseorang dapat memberi saya beberapa petunjuk atau menautkan saya ke beberapa informasi yang mungkin menjelaskannya. Terima kasih.

EDIT: Saya pikir saya harus mengklarifikasi. Contoh dari apa yang saya tanyakan adalah seperti ini:
1. Komputer di dalam LAN dengan IP eksternal tunggal mencoba memuat halaman web dari server web di luar LAN ini (Pada dasarnya di Internet)
2 Server web merespons dan mengirim halaman web kembali ke komputer itu.

Yang cukup membingungkan saya pada saat ini adalah, bagaimana router mengetahui komputer apa yang mengirim data yang masuk (mengingat router terhubung ke LAN dengan banyak komputer) tanpa port forwarding sebelumnya.


Baru saja menonton video yang bagus tentang topik: Terjemahan Alamat Jaringan - Computerphile
Der Hochstapler

Jawaban:


56

Meskipun pertanyaannya telah sepenuhnya dibahas. Saya merasa proses ini sebaiknya dijelaskan langkah demi langkah.

Untuk contoh ini, saya duduk di LAN pribadi yang terhubung ke Internet melalui router. Karena jaringan kami berbagi satu alamat IP publik, kami menggunakan NAT.

Jadi ketika saya meminta halaman superuser.comyang akan menghasilkan banyak paket IP. Mari kita lihat satu.


Sumber Paket IP : Tujuan ( : 192.168.1.12IP saya)
: 64.34.119.12(superuser.com)

Sekarang, sistem saya kemungkinan besar diatur mirip dengan yang dimaksud. Saya memiliki alamat IP saya sendiri ( 192.168.1.12), subnet mask ( 255.255.255.0) dan gateway default ( 192.168.1.1). Sekarang, karena bidang Tujuan saya di paket IP saya menunjuk ke jaringan yang berbeda dari jaringan saya, itu dikirim ke gateway default saya (bukan ke komputer secara langsung).

Tapi bagaimana paket bisa sampai ke gateway default, jika Destination menunjuk ke tempat lain?

Ethernet

Itu mudah, karena kami menggunakan pengalamatan protokol Ethernet untuk itu. Kami hanya mengatur alamat IP tujuan kami dalam paket IP dan alamat MAC gateway default kami sebagai tujuan dalam Frame Ethernet .

Sekarang akan memastikan gateway default kami mendapatkan paket superuser.com. Yay!

Sekarang gateway memiliki paket kami dan dapat mengirimkannya tepat di jalurnya. Tetapi untuk memastikan itu akan mendapatkan jawabannya, pertama-tama perlu mengganti alamat Sumber paket (jika tidak superuser.comakan mencoba mengirim jawaban ke beberapa (mungkin) perangkat tidak ada dengan alamat IP saya di jaringan mereka. Sekarang tidak akan sangat bagus.)
Jadi router saya akan menempatkan alamat IP publiknya di bidang Source :


Sumber Paket IP : Tujuan ( 92.69.127.243IP publik saya)
: 64.34.119.12(superuser.com)

Sekarang gim yang sama terus berjalan dengan semua router di dunia sampai paket akhirnya tiba superuser.comdan sebuah jawaban dihasilkan.

Jawabannya

Jawab
Sumber Paket IP : 64.34.119.12(superuser.com)
Tujuan: 92.69.127.243(IP publik saya)

Ok, jawabannya sampai ke router saya, sekarang bagaimana? Bagaimana router saya sekarang tahu untuk mengirim jawabannya 192.168.1.12?

TCP

Ya, itu benar-benar berfungsi karena kita hanya melihat bagian komunikasi IP dan Ethernet. Apa yang membuat ini berfungsi adalah bagian TCP.

Anda kemungkinan besar tahu bahwa server web biasanya berjalan di port 80. IP tidak memiliki gagasan tentang port . Itu berasal dari TCP . Dalam TCP kami memiliki (seperti dalam IP) port sumber dan tujuan .

Paket TCP saya ke superuser.com
Sumber: 192.168.1.12(IP saya)
Port Sumber: 11111(port yang dibuat komputer saya)
Tujuan: 64.34.119.12(superuser.com)
Port Tujuan:80

Ketika router Anda mengirim paket awal (yang ditujukan ke superuser.comport 80), ia akan meletakkan port sumber baru di sana (seperti 12345).
Dan ini adalah bagian yang penting! Dia akan ingat penggantian itu!

Paket TCP router saya ke superuser.com
Sumber: 92.69.127.243(IP publik saya)
Port Sumber: 12345(port yang dibuat router saya)
Tujuan: 64.34.119.12(superuser.com)
Port Tujuan:80

Jadi paket jawaban yang diterima oleh router sebenarnya terlihat seperti ini:
Jawab Paket TCP dari superuser.com
Sumber: 64.34.119.12(superuser.com)
Sumber Port: 80
Tujuan: 92.69.127.243(IP publik saya)
Port Tujuan: 12345(port yang dibuat oleh router saya)

Jadi sekarang dia mendapatkan paket itu dan melihat bahwa itu untuk port yang sebelumnya diingat ditugaskan untuk operasi NAT untuk alamat IP 192.168.1.12(alamat IP saya).

Jawab Paket TCP dari router saya
Sumber: 64.34.119.12(superuser.com)
Port Sumber: 80
Tujuan: 192.168.1.12(IP saya)
Port Tujuan: 11111(port yang dibuat komputer saya)


1
Saya mengedit jawaban Anda, itu tidak jelas menunjukkan apa yang terjadi pada nomor port. Saya menambahkan lebih banyak contoh pada langkah menengah dan apa nomor port di mana setiap langkah.
Scott Chamberlain

1
@ OliverSalzburg Saya mencari pertanyaan yang sama dijawab dan penjelasan Anda membantu saya mengingat kembali, hanya pertanyaan singkat tentang ini. Bertanya-tanya berapa lama router akan membuat pemetaan balik ini (sumber port) terasa seperti akan kehabisan ruang jika terus melakukan itu untuk begitu banyak permintaan, apakah itu menyiram mereka terlalu teratur?
Ahmed

@Ahmed: Jumlah memori untuk melacak informasi itu terbatas. Ada 65536 kemungkinan nomor port, mereka disimpan dalam 2 byte. Jadi, untuk mengingat alamat IP (4 byte) untuk setiap port akan berjumlah 65536 x 4 byte = 262144 byte = 256 kB. Namun spesifik diterapkan di router, itu tidak banyak memori.
Der Hochstapler

@Oliver Jawaban yang bagus, persis apa yang saya cari! Saya punya beberapa pertanyaan - (1) "permainan yang sama terus-menerus dengan semua router di dunia" - apakah itu akurat? Tentunya bidang sumber tidak akan terus diganti pada setiap langkah? (2) Apakah router mengingat port yang dibuka dalam jangka panjang atau apakah secara rutin menjatuhkannya untuk permintaan yang tidak merespons? (3) Apakah ini berarti seorang hacker dapat melewati paket-paket melalui firewall router Anda dengan serangan man-in-the-middle: mengintip paket TCP keluar Anda, kemudian menargetkan port TCP terbuka router Anda dengan sumber IP palsu yang cocok dengan tujuan Anda?
Jon Bentley

1
Bagaimana tanggapan ping ICMP kembali ke komputer di LAN? Apakah ada yang mirip dengan port untuk TCP? Bagaimana dengan protokol lain?
Jean

11

Terjemahan Alamat Jaringan . Secara singkat, ketika router gateway LAN pribadi mengganti alamat sumber LAN privat dengan alamat publiknya sendiri, ia memodifikasi paket dengan beberapa cara seperti menetapkan nomor port yang unik dan tidak berarti secara lokal yang dipetakan kembali ke simpul LAN asal dan permintaan keluar . Ia mengingat pemetaan port ini sehingga ketika balasan kembali ke IP publik / port unik #, ia (router) tahu cara menghapus peta itu kembali ke salah satu simpul yang berasal. Ini juga bagaimana Anda dapat menjalankan banyak tab, browser, atau instance browser dan balasan untuk setiap permintaan browser kembali ke browser dan tab yang benar.


2
JRobert: Bagaimana dengan protokol IP (misalnya ICMP), selain tcp atau udp, yang tidak memiliki nomor port?
Uri

0

Ketika sebuah paket awal tiba di antarmuka eksternal router, itu mengubah tujuan-alamat IP-paket sesuai konfigurasi penerusan port dan mentransmisikan paket yang dimodifikasi pada antarmuka internal router (setelah ARP biasa jika perlu)

Paket mencapai server-web dan masih memiliki sumber-alamat-IP eksternal yang akan digunakan sebagai alamat tujuan untuk balasan apa pun. Server sesuai alamat paket balasan keluar (s) dengan cara biasa dengan alamat IP tujuan sama dengan sumber alamat IP permintaan. Karena alamat IP pemohon bersifat eksternal, paket ditangani, pada lapisan MAC, ke antarmuka internal router.

Perhatikan bahwa ada target berbeda di setiap lapisan jaringan.


0

Port forwarding biasanya dilakukan pada router atau perangkat yang berdekatan dengannya. Ketika suatu perangkat pada LAN mengirimkan lalu lintas ke perangkat lain pada LAN yang sama, router tidak terlibat sama sekali. Lalu lintas bahkan tidak menyentuhnya. Aturan penerusan port Anda tidak akan memengaruhi lalu lintas LAN-ke-LAN.

Ethernet dirancang dengan topologi "bus" dalam pikiran di mana setiap komputer secara fisik terhubung ke media yang sama. Sementara switch modern mengoptimalkan aliran lalu lintas dengan mempelajari alamat MAC di ujung lain port dan mereplikasi lalu lintas yang sesuai, topologi "bus" masih tetap ada. Apa pun yang tersambung ke sakelar standar dapat "langsung" menjangkau yang lain (dengan asumsi ia berada dalam subnet yang sama) tanpa harus "melewati" perangkat perantara seperti router.

Anda mungkin bingung jika perangkat yang Anda hubungkan semua komputer memiliki beberapa port Ethernet "LAN" dan kemudian satu port "WAN". Jenis perangkat ini sebenarnya adalah router dan switch di sasis yang sama.

Jadi, di dalam LAN Anda, jika server HTTP Anda memiliki alamat 192.168.1.55, untuk mencapainya di dalam LAN Anda, Anda harus mengetikkan " http://192.168.1.55 " di bilah alamat browser Anda. Router tidak pernah melihatnya. Untuk mencapainya di luar LAN Anda, Anda perlu mengetik IP eksternal Anda, yaitu " http://256.99.88.77 : {port yang Anda kirim di sini}" atau apa pun itu. Ini mengenai router Anda, fungsi NAT router bekerja di atasnya, dan kemudian router mengirimkannya ke 192.168.1.55.


0

Sederhananya, ketika komputer di dalam LAN pribadi memulai koneksi keluar, gateway NAT secara otomatis menghasilkan pemetaan port untuk itu. Mereka hampir sama dengan pemetaan port yang Anda masukkan secara manual sebelumnya: {port publik, alamat pribadi, port pribadi}, dan digunakan dengan cara yang sama. Perbedaan terbesar dengan pemetaan dinamis adalah bahwa gateway NAT sering harus secara sewenang-wenang menetapkan port publik untuk pemetaan, ketika nomor port yang diharapkan sudah digunakan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.