NAT (नेटवर्क एड्रेस ट्रांसलेशन) और PAT (पोर्ट एड्रेस ट्रांसलेशन) के बीच एक सामान्य गलतफहमी है , जिसे हम अपने घरेलू राउटर्स में ज्यादातर इस्तेमाल करते हैं।
NAT
मान लें कि हमारे पास निम्न टोपोलॉजी वाला एक नेटवर्क है:
Private_Network <-------> राउटर <-------> The_Internet
के इंटरफेस रूटर कि से जुड़ा है Private_Network है कोई निजी IP पता एक ही है कि में अद्वितीय नहीं है, यानी The_Internet । दूसरी ओर, NAT के मामले में , राउटर में The_Internet से जुड़े कई इंटरफेस हैं । प्रत्येक इंटरफ़ेस का The_Internet में एक अद्वितीय IP पता है । आइए अब मान लेते हैं कि Host_A और Host_B में हैं Private_Network और वे दोनों उपयोग करना चाहते Website_X में The_Internet एक ही समय में। IPs और Host_A के पोर्टपैकेट होगा:
स्रोत IP: Host_A का निजी IP
स्रोत पोर्ट: Host_A
गंतव्य IP पर एक पोर्ट : Website_X जनता / अद्वितीय IP
गंतव्य पोर्ट: एक बंदरगाह जहां Website_X का सर्वर सुन रहा है
और उसी तरह Host_B से आने वाले एक पैकेट के लिए ।
यदि स्रोत आईपी को अपरिवर्तित छोड़ दिया जाता है, तो Website_X एक आईपी पते का जवाब देगा जो निजी है, अर्थात अद्वितीय नहीं है, और इसलिए पैकेट कभी भी इसे वापस लाने में सक्षम नहीं होगा। उस समस्या को हल करने के लिए, राउटर यह जांचता है कि The_Internet से जुड़ा उसका कोई विशिष्ट IP पता उपयोग नहीं किया गया है या नहीं। अगर ऐसा है, तो यह निम्नलिखित मानचित्रण करता है:
Host_A का निजी IP ======= राउटर का_नीक_आईपी_के
और अब पैकेट कि से शुरू Host_A के लिए जा रहा Website_X और अब के इंटरफेस छोड़कर जा रहा है रूटर से जुड़े The_Internet प्रपत्र करना होगा:
सोर्स आईपी: राउटर का_निक_आईपी_के
सोर्स पोर्ट: होस्ट_ए
डेस्टिनेशन आईपी पर एक पोर्ट : वेबसाइट_एक्स का पब्लिक / यूनिक आईपी
डेस्टिनेशन पोर्ट: एक पोर्ट जहां Website_X का सर्वर सुन रहा है
इस प्रकार आप समझ सकते हैं कि निजी आईपी से लेकर सार्वजनिक आईपी तक एक-से-एक एसोसिएशन है। इसलिए जब एक पैकेट वेबसाइट_एक्स से राउटर तक पहुंचता है , तो इस एसोसिएशन की जांच की जाती है और गंतव्य आईपी पते को वापस निजी एक में बदल दिया जाता है और सही मेजबान को सफलतापूर्वक वितरित किया जाता है।
जैसा कि आप देख सकते हैं, यह विधि काफी सरल है, लेकिन इसका एक बड़ा नुकसान है: प्रत्येक निजी होस्ट के पास एक अद्वितीय आईपी पता सुरक्षित होना चाहिए, जो महंगा हो, इस प्रकार हम निजी नेटवर्क में मेजबान की तुलना में कम अद्वितीय आईपी पते का चयन करते हैं। इसलिए यदि सभी निजी होस्ट एक ही समय में The_Internet को एक्सेस करने का प्रयास करते हैं , तो केवल उनका सबसेट, उपलब्ध सार्वजनिक IP पतों की संख्या के बराबर है कि Routerहै, का उपयोग होगा और बाकी से इनकार कर दिया जाएगा।
काउंटर करने के लिए हमने PAT बनाया ।
PAT
PAT वह है जो हमारे होम रूटर्स का विशाल उपयोग कर रहा है। मूल सीमा यह है कि राउटर का एकल यूपी पता होता है जिसके साथ वह The_Internet से जुड़ता है , लेकिन हम अभी भी निजी नेटवर्क से एक ही समय में The_Internet तक पहुंचने के लिए कई मेजबानों को अनुमति देना चाहते हैं ।
जिस तरह से हम करते हैं कि " एनएटी " उसी तरह से होता है जिस तरह से एनएटी एक महत्वपूर्ण अंतर के साथ करता है: राउटर के बजाय आईपी पते का एक पूल पकड़े हुए, यह पोर्ट नंबर का एक पूल रखता है। अधिक सटीक रूप से, Private_Network में Host_A से राउटर पर पहुंचने वाला एक पैकेट Website_X को मिलता हैThe_Internet में निम्न प्रारूप होगा:
स्रोत IP: Host_A का निजी IP
स्रोत पोर्ट: Host_A
गंतव्य IP पर एक पोर्ट : Website_X जनता / अद्वितीय IP
गंतव्य पोर्ट: एक बंदरगाह जहां Website_X का सर्वर सुन रहा है
अब राउटर दो कार्य करेगा:
- यह सोर्स आईपी को राउटर के यूनिक पब्लिक आईपी और में बदल देगा
- यह स्रोत पोर्ट को एक पूल से पोर्ट में बदल देगा जिसे राउटर बनाए रख रहा है और पहले से उपयोग नहीं किया गया है, जैसे कि पोर्ट_ज़
और अब पैकेट कि से शुरू Host_A के लिए जा रहा Website_X और अब के इंटरफेस छोड़कर जा रहा है रूटर से जुड़े The_Internet प्रपत्र करना होगा:
सोर्स आईपी: राउटर का_निक_आईपी_के
सोर्स पोर्ट: पोर्ट_जेड
डेस्टिनेशन आईपी: वेबसाइट_एक्स का पब्लिक / यूनिक आईपी
डेस्टिनेशन पोर्ट: एक पोर्ट जहां वेबसाइट_एक्स का सर्वर सुन रहा है
और राउटर निम्नलिखित मैपिंग रखेगा:
Host_A का निजी IP और Host_A ======= पोर्ट_ Z पर एक पोर्ट
यह काम क्यों करता है?
अब जब कोई पैकेट वापस आता है, तो राउटर केवल गंतव्य पोर्ट नंबर की जांच करता है और गंतव्य आईपी पते और गंतव्य पोर्ट नंबर को पूर्व-उल्लेखित मैपिंग के अनुसार बदल देता है और पैकेट सफलतापूर्वक डिलीवर हो जाता है।
यदि मैं एक ही होस्ट पर कई एप्लिकेशन चलाऊं तो क्या होगा?
विभिन्न अनुप्रयोगों में अलग-अलग पोर्ट होंगे, परिभाषा के अनुसार, इस प्रकार वे राउटर से एक अलग पोर्ट पर मैप किए जाएंगे ।
यदि कई होस्ट एक ही समय में The_Internet तक पहुंचने का प्रयास करते हैं और वे सभी एक ही एप्लिकेशन का उपयोग करते हैं?
विभिन्न होस्ट्स के परिभाषा के अनुसार अलग-अलग निजी आईपी पते होंगे, इस प्रकार वे राउटर से एक अलग पोर्ट पर मैप किए जाएंगे ।
पीएटी खतरनाक रूप से क्रॉस-लेयर के एक ग्रे स्पेस में संतुलन बना रहा है। पोर्ट नंबर ट्रांसपोर्ट प्रोटोकॉल का हिस्सा हैं जबकि राउटर को इंटरनेट प्रोटोकॉल तक संचालित करने की अनुमति है। तो तकनीकी रूप से बोलना कुछ ऐसा है जो प्रोटोकॉल द्वारा अनुमत नहीं है। इसलिए, कम से कम सैद्धांतिक रूप से, संभावित खतरे हैं: पोर्ट पूल सीमित है। इसलिए यदि मेरे निजी नेटवर्क में 1000 होस्ट्स हैं और प्रत्येक एक पोर्ट_पुल / 10 एप्लिकेशन चला रहा है, तो राउटर पर मैपिंग टेबल उपलब्ध प्रविष्टियों से बाहर हो जाएगी और अनुप्रयोगों तक पहुंच से इनकार कर दिया जाएगा।
यह उत्तर मेरी इच्छित लंबाई को पार कर गया, लेकिन मुझे आशा है कि यह मददगार था।