एका VPN क्लायंट पूलला स्वतःचा सार्वजनिक पत्ता देणारे NAT नियम शून्य पॅकेटवर आहे, तर तोच पूल चुकीच्या स्रोताने बाहेर जात राहतो। नियम सहसा पत्त्यात चुकत नाही; तो इंटरफेसमध्ये चुकतो। -o eth0:0 अस्तित्वात नसलेल्या उपकरणाकडे निर्देश करतो, कारण eth0:0 पत्त्याला जोडलेले लेबल आहे, आणि त्या पत्त्याचे उपकरण eth0 आहे। काउंटर पाहणे हे ते पुष्ट करण्याचा सर्वात वेगवान मार्ग आहे, आणि दुरुस्ती तपासणी सुचवते त्यापेक्षा लहान आहे।

कर्नल उपकरणाला काय म्हणतो ते तपासा

काहीही बदलण्यापूर्वी दोन्ही दृश्ये वेगळी वाचा:

ip link show
ip address show dev eth0
ip route get 203.0.113.20

लिंक यादी इंटरफेस दाखवते। पत्ता यादी लेबल असलेला दुसरा IPv4 पत्ता दाखवू शकते eth0:0, आणि त्या पत्त्याचे उपकरण अजूनही eth0 आहे। iproute2 चे पत्ता पुस्तिका लेबलला पत्त्याचे नाव मानते, दुसरी लिंक नाही, आणि संपूर्ण समस्या याच फरकावर उभी आहे।

इतिहास गोंधळाचे स्पष्टीकरण देतो। जुनी ifconfig eth0:0 रचना खरोखर नव्या इंटरफेससारखी दिसत होती, आणि त्या काळातील स्क्रिप्ट अजूनही एकाला संदर्भ देतात। आजच्या प्रणालीत अलियास हा पत्त्यावरचा लेबल आहे, आणि राउटिंग किंवा netfilter मार्गात काहीही त्याला वेगळा निर्गम बिंदू मानत नाही।

नियम प्रत्यक्षात कशाशी जुळला ते तपासा

काउंटर स्मरणातून नाही, नियम यादीसोबत वाचा:

iptables -t nat -L POSTROUTING -v -n --line-numbers

जुळणारा रहदारी वाहत असताना पॅकेट काउंटर शून्यावर राहणारा नियम मूल्यांकनात येत नाही, आणि खालील नाव देणारी आउटपुट-इंटरफेस अट eth0:0 सामान्य कारण आहे। राउटने निवडलेले आउटपुट उपकरण eth0, त्यामुळे दुसरे नाव शोधणारी अट कर्नलने कोणताही स्रोत पत्ता निवडला तरी कधीही खरी होत नाही।

अट खऱ्या उपकरणावर बदला आणि लेबल त्याबाहेर ठेवा। ते उपकरण सामायिक करणाऱ्या दोन क्लायंट पूल वेगळे करायचे असल्यास, त्यांना स्रोत उपसर्गाने वेगळे करा, अस्तित्वात असूच शकत नाही अशा इंटरफेस नावाने नाही। न ओव्हरलॅप होणाऱ्या -s जुळण्या असलेले दोन नियम वाचनीय आणि तपासण्यायोग्य आहेत; काल्पनिक उपकरण असलेला एक नियम दोन्ही नाही। प्रत्येक नियमाला पूलाचे नाव देणारी टिप्पणी द्या, कारण सहा महिन्यांनंतर उपसर्ग एकटा तो तिथे का आहे हे कोणालाच सांगणार नाही।

उपकरण निवडणारा राउट तपासा

Postrouting NAT राउटने आधीच आउटपुट इंटरफेस निवडल्यानंतर चालतो, म्हणून नियमातील इंटरफेस राउटने निवडलेला असलाच पाहिजे। कर्नलला थेट विचारा ip route get ने प्रातिनिधिक क्लायंट पत्त्यासाठी, आणि तो जे उपकरण आणि स्रोत सांगतो ते दोन्ही वाचा।

उत्तर eth0 असे नाव देत असेल, तर नियमाचा इंटरफेस भाग निकाली निघाला। तो टनेल उपकरणाचे नाव देत असेल, तर पॅकेट तुम्ही संपादित करत असलेल्या नियमापर्यंत कधीही पोहोचत नाही, आणि शोध राउटिंग तक्ता व त्याच्या प्राधान्यांकडे जातो। पॅकेट इतरत्रून गेल्यामुळे कधीही न जुळणारा नियम काउंटर आउटपुटमध्ये चुकीचे लिहिलेले उपकरण असलेल्या नियमासारखाच दिसतो। काहीही संपादित करण्यापूर्वी दोनपैकी कोणती स्थिती आहे ते निश्चित करा, कारण दुसऱ्यास मजकुराऐवजी राउटिंग बदलावा लागतो।

भाषांतरित स्रोत जाणीवपूर्वक निवडा

उपकरण बरोबर झाल्यावर स्रोत पत्ता हा वेगळा निर्णय आहे। हा फक्त उदाहरणादाखल IPv4 पूल आणि नमुना पत्ता आहे:

iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -o eth0 \
  -j SNAT --to-source 203.0.113.20

पत्ता --to-source मध्ये लिहिण्याने कोणी तो तुमच्याकडे परत राउट करत नाही। वरच्या प्रदात्याला किंवा पत्त्याच्या मालकाला त्या पत्त्याची उत्तरे या होस्टपर्यंत पोहोचवावी लागतात, आणि पत्ता हा तुम्हाला वापरण्याचा अधिकार असलेलाच असावा। नसल्यास, नियम जुळेल आणि भाषांतर करेल आणि उत्तरे तरीही इतरत्र जातील।

स्रोत पत्ता बदलणे हे अपलिंक बदलण्यासारखे नाही। खरी गरज वेगळा भौतिक मार्ग असेल, तर राउटिंग धोरणाने आधी तो मार्ग निवडला पाहिजे; नंतर SNAT धोरणाने निवडलेल्या उपकरणावर स्रोत पुन्हा लिहितो। अधिक लेबल eth0 जोडल्याने मार्गही मिळत नाही आणि अधिकारही नाही।

आत्ताच उघडलेल्या कनेक्शनने तपासा

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

एक इंटरफेस सामायिक करणाऱ्या अनेक पूलांना प्रत्येकाला स्पष्ट स्रोत जुळणी आणि स्वतःचा भाषांतर पत्ता द्या, ते फायरवॉलच्या व्यवस्थापित संरचनेत ठेवा आणि कोणत्या क्रमाने मूल्यांकन होते ते नोंदवा। नंतर तुम्ही काय तपासले ते नोंदवा: ip route get मधील उपकरण, हललेला काउंटर, आणि दूरच्या बाजूने पाहिलेला स्रोत। ती नोंद लेबलचा गोंधळ पुन्हा न करता पुढील अहवालाला उत्तर देते।

संबंधित लेख