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

नियम तक्ता निवडतात, नंतर तक्ता मार्ग निवडतो

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

म्हणूनच मुख्य तक्ता डंप केल्याने कार्यरत VPN क्लायंटचे स्पष्टीकरण क्वचितच होते। क्लायंट सामान्यतः कमी प्राधान्यक्रम क्रमांकांवर नियम घालतात, मुख्य तक्त्याच्या डीफॉल्ट नियमाच्या खूप आधी, त्यामुळे पॅकेट तुम्ही पाहात असलेल्या मार्गापर्यंत कधीच पोहोचत नाही। मुख्य तक्त्यातील मेट्रिक कमी केल्याने आधीच वळवलेल्या रहदारीसाठी काहीच बदलत नाही।

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

नियमसंच यादी म्हणून नाही, क्रम म्हणून वाचा

नियम त्यांच्या प्राधान्यक्रमांसह आणि ते संदर्भ देणाऱ्या तक्त्यांसह छापा, नंतर डीफॉल्ट किंवा बोगदा मार्ग असलेला प्रत्येक तक्ता छापा। क्रम हाच महत्त्वाचा भाग आहे, आणि स्क्रीनशॉट सामान्यतः जो भाग वगळतो तोही तोच:

ip rule show
ip route show table all | sed -n '1,60p'
ip route get 198.51.100.20 from 10.8.0.2
ip route get 198.51.100.20 from 10.8.0.2 mark 0x1

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

खुणा आणि सॉकेट: क्लायंट रहदारी विभागण्याचे दोन मार्ग

काही क्लायंट फायरवॉलमध्ये पॅकेटला खूण लावतात आणि खुणेशी जुळणारा नियम जोडतात। इतर सॉकेट स्तरावर राउटिंग वापरतात, जोडण्यापूर्वी सॉकेटवर मार्ग ठेवतात। पहिले ip rule मध्ये दिसते; दुसरे दिसत नाही, आणि सामान्य शोधात ते येणार नाही।

चाचणी कार्यक्रम ज्या अनुप्रयोगाचे तो प्रतिनिधित्व करायचा त्याहून वेगळा वागत असेल, तर अनुप्रयोग खूण लावतो की उपकरणाला बांधतो हे तपासा। यंत्रणेला नाव मिळाल्यावर तो फरक रहस्य राहत नाही, आणि त्याच मशीनवर शेलमधून curl आणि ब्राउझर टॅब वेगळे मार्ग घेऊ शकतात हेही तेच स्पष्ट करते। दोन्ही तंत्रे व्यापक अर्थाने धोरण-आधारित राउटिंग आहेत: ती गंतव्याशिवाय दुसऱ्या कशाने तरी मार्ग निवडतात। त्यांपैकी कोणतेही रहदारीला अधिकृत करत नाही, आणि कोणतेही साथीदार अपेक्षित असलेल्या फायरवॉल नियमांची किंवा ओळखपत्रांची जागा घेत नाही।

आणखी एक नियम जोडण्यापूर्वी मालकीचा मागोवा घ्या

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

कोणती प्रक्रिया नियमाची मालक आहे हे त्याच्या प्राधान्यक्रमावरून आणि स्वरूपावरून शोधा, आणि तो मालक प्रत्येक जोडणीला संच पुन्हा लिहितो का ते तपासा। लिहित असेल, तर आज जोडलेला हातचा नियम उद्या नाहीसा होतो, आणि दुरुस्ती शेल इतिहास फाइलमध्ये नाही तर क्लायंटच्या संरचनेत असते। चाचणीसाठी संपूर्ण नियमसंच रिकामा करणे हा अंदाजित किंमतीचा मोहक छोटा मार्ग आहे: तो क्लायंटला स्वतःचा बोगदा चालू ठेवण्यासाठी लागणारे नियमही काढून टाकतो। एका वेळी एक नियम हटवा, किंवा पुन्हा सुरू करता येईल अशा मशीनवर चाचणी करा।

एकाने नाही, दोन प्रवाहांनी व्याप्ती सिद्ध करा

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

ip route get 198.51.100.20 from 192.0.2.44
ip route get 198.51.100.21 from 192.0.2.44
tcpdump -ni any host 198.51.100.21 and port 443

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

तिकिटात नियमांचे प्राधान्यक्रम आणि मालक सेवा दोन चाचणी पत्त्यांसह नोंदवा। मग पुढच्या व्यक्तीकडे लक्षणाच्या वर्णनाऐवजी पुनरुत्पादनीय जोडी असते, आणि धोरण-आधारित राउटिंग अजूनही चालू आहे का हे एका मिनिटात सांगता येते।

संबंधित लेख