एकाच संभाषणात दोन क्रमांक दिसतात आणि दोन्हीपैकी कोणताही चुकीचा नाही. सर्व्हरचा लॉग सेवा देणारा लिसनर दाखवतो, लॅपटॉप डेटाग्राम पाठवणारा सॉकेट दाखवतो, आणि मधला राउटर बाहेर जाताना दुसरा पुन्हा लिहू शकतो. अंकांची तुलना करण्यापेक्षा संभाषणाच्या दोन्ही टोकांची तुलना अधिक उपयुक्त आहे. खालील तुलना लिसनर, क्लायंट सॉकेट आणि भाषांतरित स्रोत वेगळे ठेवते, कारण ते वेगळ्या प्रश्नांची उत्तरे देतात.

विरुद्ध टोकांचे वर्णन करणारे दोन क्रमांक

सर्व्हरचा कॉन्फिगर केलेला पोर्ट हे क्लायंट डायल करतो ते गंतव्य आहे. तो धोरणाने निश्चित होतो, प्रोफाइलमध्ये दिसतो आणि सर्व्हरच्या बाजूला उघडा असावा. क्लायंटचा स्रोत पोर्ट स्थानिक पातळीवर, सामान्यतः अल्पकालीन श्रेणीतून निवडला जातो, आणि उत्तराला उतरण्याची जागा मिळावी यासाठी असतो. तो प्रत्येक पुनर्जोडणीत बदलू शकतो, आणि रचनेत काहीही त्याच्या स्थिरतेवर अवलंबून नाही.

मधला राउटर तो स्रोत आपल्या 'NAT' मॅपिंगमध्ये पुन्हा लिहू शकतो. म्हणून सर्व्हरवर दिसणाऱ्या क्रमांकाचा लॅपटॉपने निवडलेल्या क्रमांकाशी अनेकदा काहीही संबंध नसतो.

बाहेर जाताना स्रोत क्रमांक कुठे बदलतो

IPv4 चे एक काल्पनिक उदाहरण घ्या: भाषांतर करणाऱ्या राउटरमागील क्लायंट, एक 'UDP' लिसनर असलेला सर्व्हर, आणि दोन्हींना ओलांडणारा एक डेटाग्राम. तक्ता तीन निरीक्षण बिंदूंवर पॅकेट पुन्हा चालवण्याऐवजी प्रत्येक टोकाचे आणि त्याच्यासोबत काय होते याचे नाव घेतो.

EndpointWhat stays fixedWhat changes on reconnectWho owns it
Server listenerThe service port and the address the profile namesNothing; the listener does not follow the clientThe server operator
Client socketThe destination it dialsThe local source port, chosen per socketThe client, or its operating system
Translated sourceUsually the public address of the routerThe port, and sometimes the address after a network switchThe NAT device or the upstream carrier

गंतव्य प्रत्येक ओळीत स्थिर आहे, आणि फक्त स्रोताची ओळख बदलते. UDP NAT च्या आवश्यकता आंतरिक पत्ता आणि पोर्ट बाह्य मॅपिंगपासून वेगळे करतात, आणि हाच दुसऱ्या व तिसऱ्या ओळीतील फरक आहे. राउटर क्लायंटचा स्रोत पोर्ट ठेवू शकतो किंवा दुसरा निवडू शकतो; ठेवला जाईल असे अनुप्रयोगाने गृहीत धरू नये.

तीनही टोके होस्टवरूनच वाचा

खालील याद्या तीन वेगवेगळ्या यंत्रांमधून आलेल्या आहेत आणि एकत्रितपणे संपूर्ण संभाषण दाखवतात. पहिली सर्व्हरवर, दुसरी क्लायंटवर आणि तिसरी जिथे मॅपिंग आहे तिथे चालवा. एक लॉग ओळ कधीही तीनही दाखवत नाही.

ss -lunp 'sport = :1194'
ss -unp | grep 1194
conntrack -L -p udp | grep 1194

पहिली यादी सर्व्हर सेवा पोर्टला बांधलेला आहे हे सिद्ध करते आणि कोणती प्रक्रिया त्याची मालक आहे ते दाखवते. दुसरी क्लायंटचे स्थानिक सॉकेट आणि त्याने डायल केलेले गंतव्य दाखवते. तिसरी राउटरने तयार केलेले मॅपिंग दाखवते, आणि भाषांतरित स्रोत फक्त तिथेच दिसतो. याच क्रमाने वाचा आणि दोन्ही क्रमांक विरोधाभासी वाटणे थांबवतात.

पुनर्जोडणी काय बदलते आणि काय नाही

काही राउटर क्लायंटचा स्रोत पोर्ट रिकामा असल्यास ठेवतात, तर काही प्रत्येक वेळी वेगळा देतात. दोन्ही वर्तन सामान्य आहे, आणि पहिल्याची मागणी करणारा अनुप्रयोग दुसऱ्यावर तुटेल. पुनर्जोडणी किंवा नेटवर्क बदलानंतर मॅपिंग बदलणे हे सर्व्हरचे दोष नाही: क्लायंट नवीन सॉकेट उघडतो, राउटर जवळ असलेले देतो, आणि सर्व्हर त्याच लिसनरवर नवीन स्रोत पाहतो. दोष तो असेल की सर्व्हर कोणत्याही क्लायंट पोर्टला पाठवलेला रहदारी स्वीकारेल अशी अपेक्षा करणे.

समुदायातील OpenVPN क्लायंट हे वर्तन nobind द्वारे मिळवतात, जे ऑपरेटिंग सिस्टमला स्थानिक पोर्ट निवडू देते; दूरचा पोर्ट अजूनही प्रोफाइलमधून येतो. स्पष्टपणे बाइंड करणे हा जाणीवपूर्वक निर्णय आहे, प्रोटोकॉलची अट नाही. सर्व्हर एक टोक देत राहतो आणि क्लायंट आपल्या स्थानिक ओळखी निवडतात.

नोंदीत स्तर वेगळे लेबल करा

टनेलच्या आत स्वतःच्या पोर्टसह दुसरे संभाषण असते. टनेल वाहून नेणाऱ्या HTTPS विनंतीचे गंतव्य TCP 443 आहे, तर बाहेरील एन्क्रिप्टेड कनेक्शन UDP 1194 वापरते, त्यामुळे बाहेरील स्रोत पोर्ट बदलल्याने आतील सेवेत काहीही बदलत नाही.

बाहेरील स्तरावरही प्रोटोकॉल महत्त्वाचा आहे. UDP 1194 आणि TCP 1194 वेगवेगळी टोके आहेत, आणि 'TCP' लिसनर क्रमांक जुळतो म्हणून कधीही UDP डेटाग्राम घेणार नाही. तैनातीचे दस्तऐवजीकरण करताना सर्व्हर लिसनर, क्लायंट सॉकेट आणि भाषांतरित स्रोत यांना तीन वेगळ्या गोष्टी म्हणून लेबल करा, आणि प्रत्येकास वाहतूक जोडा.

मग धोरणाने भूमिकांचे अनुसरण करावे. सर्व्हर आपल्या लिसनरवर इच्छित वाहतूक उघडतो आणि तरीही सहभागीची प्रमाणितता तपासतो; क्लायंटचा फायरवॉल इनबाउंड सेवा प्रकाशित न करता आपल्या आउटबाउंड देवाणघेवाणीची उत्तरे स्वीकारतो. स्टेटलेस फिल्टरला परतीची दिशा स्पष्ट लिहावी लागते, आणि नीटनेटके आकृत्यांपलीकडे हा फरक महत्त्वाचा ठरण्याचे व्यावहारिक कारण हेच आहे.

संबंधित लेख