निजी लैन के अंदर IP उत्तर पैकेट अपने गंतव्य तक कैसे पहुँचते हैं? [डुप्लिकेट]


26

यह एक छोटा सा सिद्धांत प्रश्न है जो मुझे बहुत लंबे समय से भ्रमित कर रहा है।

असल में, अगर हम एक निजी LAN के अंदर हैं, और हम चाहते हैं कि आने वाले पैकेट पहुँचें, उदाहरण के लिए, एक HTTP सर्वर जो मशीनों में से एक पर स्थित है, हम बंदरगाहों को अग्रेषित करते हैं ताकि आने वाले पैकेट ठीक उसी कंप्यूटर तक पहुँच जाएँ।

अब, मैं काफी उलझन में हूं कि कैसे 'प्रतिक्रिया' पैकेट एक लैन के अंदर अपने गंतव्य तक पहुंचता है, जैसे, जब हम एक वेब पेज खोलते हैं या तो। वास्तव में उस विषय पर कोई उपयोगी जानकारी नहीं मिल सकती।

मुझे उम्मीद है कि कोई मुझे कुछ सुराग दे सकता है या मुझे कुछ जानकारी से जोड़ सकता है जो इसे समझा सकता है। धन्यवाद।

संपादित करें: मुझे लगता है कि मुझे स्पष्ट करना चाहिए। मैं जो पूछ रहा हूं उसका एक उदाहरण कुछ इस तरह होगा:
1. एक बाहरी बाहरी IP के साथ LAN के अंदर का कंप्यूटर इस LAN के बाहर वेब-सर्वर से एक वेब-पेज लोड करने का प्रयास करता है (मूल रूप से इंटरनेट पर)
2 । वेब-सर्वर जवाब देता है और वेब-पेज को उस कंप्यूटर पर वापस भेजता है।

इस बिंदु पर मुझे काफी भ्रमित करता है, राउटर को कैसे पता चलता है कि आने वाले डेटा को भेजने के लिए कंप्यूटर क्या है (यह राउटर किसी पोर्ट के साथ एक लैन से जुड़ा हुआ है) पिछले पोर्ट फॉरवर्डिंग के बिना।


जवाबों:


56

हालांकि सवाल पूरी तरह से कवर किया गया है। मुझे लगता है कि इस प्रक्रिया को चरण-दर-चरण सर्वोत्तम रूप से वर्णित किया जाना चाहिए।

इस उदाहरण के लिए, मैं एक राउटर के माध्यम से इंटरनेट से जुड़े एक निजी लैन में बैठता हूं। क्योंकि हमारा नेटवर्क एक ही सार्वजनिक आईपी पते को साझा करता है, हम NAT का उपयोग करते हैं।

इसलिए जब मैं उस पृष्ठ का अनुरोध करता हूं superuser.comजो कई आईपी पैकेट उत्पन्न करेगा। आइए एक नजर डालते हैं।

आईपी ​​पैकेट
स्रोत: 192.168.1.12(मेरा आईपी)
गंतव्य: 64.34.119.12(superuser.com)

अब, मेरी प्रणाली सबसे अधिक संभावना है कि वह प्रश्न के समान हो। मेरा अपना आईपी पता ( 192.168.1.12), एक सबनेट मास्क ( 255.255.255.0) और एक डिफ़ॉल्ट गेटवे ( 192.168.1.1) है। अब, क्योंकि मेरे IP पैकेट में मेरा डेस्टिनेशन फ़ील्ड मेरे से भिन्न नेटवर्क की ओर इंगित करता है , इसे मेरे डिफ़ॉल्ट गेटवे (सीधे कंप्यूटर के बजाय) में भेजा जाता है।

लेकिन पैकेट डिफ़ॉल्ट गेटवे तक कैसे पहुंच सकता है, अगर गंतव्य कहीं और पूरी तरह से इंगित करता है?

ईथरनेट

यह आसान है, क्योंकि हम इसके लिए ईथरनेट प्रोटोकॉल के पते का उपयोग करते हैं। हम अपने गंतव्य IP पते को IP पैकेट में और हमारे डिफ़ॉल्ट गेटवे के MAC पते को ईथरनेट फ्रेम में गंतव्य के रूप में सेट करते हैं ।

अब यह सुनिश्चित करेगा कि हमारे डिफ़ॉल्ट गेटवे के लिए पैकेट मिलता है superuser.com। वाह!

अब प्रवेश द्वार के पास हमारा पैकेट है और वह इसे अपने रास्ते पर भेज सकता है। लेकिन यह सुनिश्चित करने के लिए कि यह जवाब मिलेगा, पहले इसे पैकेट स्रोत पते को बदलने की आवश्यकता है (अन्यथा उनके नेटवर्क पर मेरे आईपी ​​पते के superuser.comसाथ कुछ (संभवतः) गैर-मौजूद डिवाइस पर जवाब भेजने की कोशिश करेंगे । अब ऐसा नहीं होगा। बहुत अच्छा।) तो मेरा राउटर अपने सार्वजनिक आईपी ​​पते को स्रोत क्षेत्र में रखेगा :

आईपी ​​पैकेट
स्रोत: 92.69.127.243(मेरा सार्वजनिक आईपी)
गंतव्य: 64.34.119.12(superuser.com)

अब वही खेल दुनिया के सभी राउटरों के साथ चलता रहता है जब तक कि पैकेट आखिर में नहीं आ जाता है superuser.comऔर एक उत्तर उत्पन्न हो जाता है।

उत्तर

उत्तर आईपी पैकेट
स्रोत: 64.34.119.12(superuser.com)
गंतव्य: 92.69.127.243(मेरा सार्वजनिक आईपी)

ठीक है, मेरे राउटर को जवाब मिला, अब क्या? मेरे राउटर को अब इसका उत्तर कैसे पता चलेगा 192.168.1.12?

टीसीपी

खैर, यह वास्तव में काम करता है क्योंकि हमने केवल संचार के आईपी और ईथरनेट भागों को देखा है। क्या यह काम करता है टीसीपी हिस्सा है।

आप सबसे अधिक संभावना जानते हैं कि वेब सर्वर आमतौर पर पोर्ट पर चलते हैं 80। आईपी ​​में बंदरगाहों की कोई धारणा नहीं है । जो कि टीसीपी से आता है । टीसीपी में हमारे पास (आईपी की तरह) एक स्रोत और गंतव्य बंदरगाह है

मेरा TCP पैकेट superuser.com
स्रोत: 192.168.1.12(मेरा IP)
स्रोत पोर्ट: 11111(पोर्ट मेरा कंप्यूटर बनाया गया)
गंतव्य: 64.34.119.12(superuser.com)
गंतव्य पोर्ट:80

जब आपका राउटर उस प्रारंभिक पैकेट (जो superuser.comपोर्ट पर संबोधित किया जाता है 80) को भेजता है , तो वह एक नया स्रोत पोर्ट वहां (जैसे 12345) रखेगा ।
और यह महत्वपूर्ण हिस्सा है! वह उस प्रतिस्थापन को याद रखेगा!

Superuser.com मेरे रूटर के टीसीपी पैकेट
: स्रोत 92.69.127.243(मेरी सार्वजनिक आईपी)
स्रोत पोर्ट: 12345(बंदरगाह मेरी रूटर बना हुआ)
गंतव्य: 64.34.119.12(superuser.com)
गंतव्य पोर्ट:80

तो राउटर द्वारा प्राप्त उत्तर पैकेट वास्तव में इस तरह दिखता है:
Superuser.com से TCP पैकेट का उत्तर दें
Source: 64.34.119.12(superuser.com)
सोर्स पोर्ट: 80
डेस्टिनेशन: 92.69.127.243(मेरा सार्वजनिक आईपी)
डेस्टिनेशन पोर्ट: 12345(पोर्ट मेरा राउटर बना है)

तो अब वह उस पैकेट को प्राप्त करता है और देखता है कि यह एक बंदरगाह के लिए है जिसे पहले याद किया गया था जिसे आईपी पते 192.168.1.12(मेरा आईपी पता) के लिए NAT संचालन को सौंपा गया था ।

मेरे राऊटर से टीसीपी पैकेट का उत्तर
सोर्स: 64.34.119.12(superuser.com)
सोर्स पोर्ट: 80
डेस्टिनेशन: 192.168.1.12(मेरा आईपी)
डेस्टिनेशन पोर्ट: 11111(मेरा कंप्यूटर बनाया गया पोर्ट)


1
मैंने आपके उत्तर को संपादित किया, यह स्पष्ट रूप से नहीं दिखा कि पोर्ट नंबरों का क्या हो रहा था। मैंने मध्यवर्ती चरणों पर और अधिक उदाहरणों को जोड़ा और पोर्ट संख्याएं जहां प्रत्येक चरण।
स्कॉट चेम्बरलेन ने

1
@OliverSalzburg मैं उसी प्रश्न का उत्तर ढूंढ रहा था और आपके स्पष्टीकरण ने मुझे याद दिलाने में मदद की, इस पर सिर्फ एक त्वरित प्रश्न। आश्चर्य है कि राउटर इस रिवर्स मैपिंग (स्रोत पोर्ट) को कितने समय तक रखेगा, ऐसा लगता है कि यह अंतरिक्ष से बाहर चलेगा यदि वह ऐसा कई अनुरोधों के लिए करता है, तो क्या यह उन्हें नियमित रूप से फ्लश करता है?
अहमद

@ अहम्: उस जानकारी को ट्रैक करने के लिए मेमोरी की मात्रा सीमित है। 65536 संभावित पोर्ट नंबर हैं, वे 2 बाइट्स में संग्रहीत हैं। इसलिए, प्रत्येक पोर्ट के लिए एक IP पता (4 बाइट्स) याद रखने के लिए 65536 x 4 बाइट्स = 262144 बाइट्स = 256 kB तक की राशि होगी। हालाँकि राउटर में बारीकियों को लागू किया जाता है, यह बहुत अधिक मेमोरी नहीं है।
डेर होकस्टाप्लर

@ ओलिवर महान जवाब, वास्तव में मैं क्या खोज रहा था! मेरे कुछ सवाल हैं - (1) "एक ही खेल चलता है और दुनिया के सभी राउटर के साथ" - क्या यह सही है? निश्चित रूप से स्रोत क्षेत्र को प्रत्येक चरण पर प्रतिस्थापित करना जारी नहीं रहेगा? (२) क्या राउटर खुले हुए बंदरगाहों को लंबे समय तक याद रखता है या क्या यह नियमित रूप से गैर-प्रतिक्रिया वाले अनुरोधों के लिए उन्हें छोड़ देता है? (3) इसका मतलब यह है कि एक हैकर अपने राउटर के फ़ायरवॉल के माध्यम से पैकेट्स को मैन-इन-द-मिडल अटैक के साथ पा सकता है: अपने आउटगोइंग टीसीपी पैकेट्स को स्नूप करना, फिर अपने राउटर के ओपन टीसीपी पोर्ट को एक स्पूफ किए गए स्रोत आईपी मिलान के साथ लक्षित करना?
जॉन बेंटले

1
LAN में कंप्यूटर पर ICMP पिंग प्रतिक्रिया कैसे आती है? क्या यह टीसीपी के लिए पोर्ट के समान है? अन्य प्रोटोकॉल के बारे में कैसे?
जीन

11

नेटवर्क एड्रेस ट्रांसलेशन । संक्षेप में, जब निजी लैन का गेटवे राउटर निजी लैन स्रोत पते को अपने स्वयं के सार्वजनिक पते से बदल देता है, तो यह पैकेट को किसी तरह से संशोधित करता है जैसे कि एक अद्वितीय और अन्यथा स्थानीय अर्थहीन पोर्ट नंबर निर्दिष्ट करता है जो कि यह मूल LAN नोड और आउटगोइंग अनुरोध के लिए वापस मैप करता है । यह पोर्ट मैपिंग को याद रखता है, इसलिए जब कोई उत्तर सार्वजनिक IP / अद्वितीय पोर्ट # पर वापस आता है, तो यह (राउटर) जानता है कि उस मूल नोड में से एक को कैसे अनमैप करना है। यह भी है कि आप कई टैब, ब्राउज़र या ब्राउज़र-इंस्टेंस कैसे चला सकते हैं और प्रत्येक ब्राउज़र अनुरोधों के उत्तर सही ब्राउज़र और टैब पर वापस आते हैं।


2
JRobert: IP प्रोटोकॉल (जैसे ICMP) के बारे में क्या है, जो tcp या udp के अलावा है, जिसमें पोर्ट नंबर नहीं है?
उरी

0

जब एक शुरुआती पैकेट राउटर के बाहरी इंटरफ़ेस पर आता है, तो यह पोर्ट-फ़ॉरवर्डिंग कॉन्फ़िगरेशन के अनुसार पैकेट के गंतव्य-आईपी-पते को बदलता है और राउटर के आंतरिक इंटरफ़ेस पर संशोधित पैकेट को स्थानांतरित करता है (यदि आवश्यक हो तो सामान्य एआरपी के बाद)

पैकेट वेब-सर्वर तक पहुंचता है और अभी भी एक बाहरी स्रोत-आईपी-पता है जो किसी भी उत्तर के लिए गंतव्य-पते के रूप में उपयोग किया जाएगा। तदनुसार सर्वर अनुरोध के स्रोत आईपी-पते के बराबर एक गंतव्य आईपी-पता के साथ सामान्य तरीके से आउटगोइंग उत्तर पैकेट (ओं) को संबोधित करता है। क्योंकि अनुरोधकर्ता का आईपी-पता बाहरी है, पैकेट को मैक परत पर, रूटर के आंतरिक इंटरफ़ेस को संबोधित किया गया है।

ध्यान दें कि प्रत्येक नेटवर्क परत में अलग-अलग लक्ष्य होते हैं।


0

पोर्ट फ़ॉरवर्डिंग आमतौर पर एक राउटर या उससे सटे डिवाइस पर किया जाता है। जब LAN पर कोई डिवाइस उसी LAN पर किसी अन्य डिवाइस को ट्रैफ़िक भेजता है, तो राउटर बिल्कुल भी शामिल नहीं होता है। ट्रैफ़िक इसे छूता भी नहीं है। आपके पोर्ट फ़ॉरवर्डिंग नियमों का LAN-से-LAN ट्रैफ़िक पर कोई प्रभाव नहीं पड़ेगा।

ईथरनेट को एक "बस" टोपोलॉजी के साथ डिजाइन किया गया था, जहां प्रत्येक कंप्यूटर शारीरिक रूप से एक ही माध्यम से जुड़ा हुआ था। जबकि आधुनिक स्विच पोर्ट के दूसरे छोर पर मैक पते को सीखकर और उसी के अनुसार ट्रैफ़िक की प्रतिकृति बनाकर ट्रैफ़िक प्रवाह का अनुकूलन करते हैं, "बस" टोपोलॉजी बनी हुई है। एक मानक स्विच से जुड़ा कुछ भी "राउटर जैसे एक मध्यवर्ती उपकरण" के माध्यम से "जाने" के बिना किसी और चीज तक पहुंच सकता है (एक ही सबनेट के भीतर यह मानकर)।

यदि आप जिस डिवाइस को सभी कंप्यूटरों से कनेक्ट कर रहे हैं, उसमें कई "LAN" इथरनेट पोर्ट्स और फिर एक "WAN" पोर्ट हो तो आप भ्रमित हो सकते हैं। इस प्रकार के उपकरण वास्तव में एक राउटर दोनों हैं और एक ही चेसिस में स्विच होते हैं।

इसलिए, आपके LAN के अंदर, यदि आपके HTTP सर्वर का पता 192.168.1.55 है, तो इसे आपके LAN के अंदर तक पहुँचने के लिए, आपको अपने ब्राउज़र के एड्रेस बार में " http://192.168.1.55 " टाइप करना होगा । राउटर इसे कभी नहीं देखता है। अपने LAN के बाहर इसे पहुंचाने के लिए, आपको अपने बाहरी IP, यानी " http://256.99.88.77 : {आपके द्वारा यहां अग्रेषित पोर्ट}" या जो भी हो , टाइप करना होगा । यह आपके राउटर को हिट करता है, राउटर का NAT फ़ंक्शन इस पर काम करता है, और फिर राउटर इसे 192.168.1.55 पर भेजता है।


0

काफी बस, जब निजी लैन के अंदर एक कंप्यूटर एक निवर्तमान कनेक्शन शुरू करता है, तो NAT गेटवे स्वचालित रूप से इसके लिए एक पोर्ट मैपिंग उत्पन्न करता है। वे आपके द्वारा मैन्युअल रूप से दर्ज किए गए पोर्ट मैपिंग के समान हैं: {सार्वजनिक पोर्ट, निजी पता, निजी पोर्ट}, और उसी तरह के बारे में उपयोग किया जाता है। डायनेमिक मैपिंग के साथ सबसे बड़ा अंतर यह है कि नैट गेटवे को अक्सर सार्वजनिक पोर्ट को मैपिंग के लिए असाइन करना पड़ता है, जब अपेक्षित पोर्ट नंबर पहले से उपयोग में होता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.