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

तपासणी 1: कर्नल ज्या नियमाशी जुळतो तो वाचा

फायरवॉलऐवजी धोरण-नियमापासून सुरुवात करा। कर्नल नियम प्राधान्यक्रमाने पाहतो आणि पहिले जुळणे तक्ता ठरवते। नियमातूनच fwmark मूल्य आणि मास्क वाचा, नंतर तुम्ही ठेवलेला मार्क असलेले पॅकेट खरोखर त्याला जुळते का याची खात्री करा। पूर्ण 32-बिट मूल्य अपेक्षिणारा नियम फक्त एक बिट असलेल्या पॅकेटशी जुळणार नाही।

नंतर तो नियम कोणता तक्ता निवडतो आणि तक्त्यात काय आहे याची खात्री करा। रिकाम्या तक्त्याकडे निर्देश करणारा नियम शोध अपयश निर्माण करतो, ज्याचा अर्थ अनेक सिस्टीममध्ये पॅकेट पुढच्या नियमावर पडून भौतिक इंटरफेसवरून बाहेर जाते।

दोन आदेश हे ठरवतात: नियमांची यादी, आणि त्या तक्त्यातील गंतव्यासाठी मार्ग शोध।

तपासणी 2: पॅकेट मार्क की कनेक्शन मार्क

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

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

राउटिंग सिग्नल कोणत्या ऑब्जेक्टचा आहे हे ठरवा, नंतर राउटिंग निर्णय घेतला जातो त्या बिंदूवर तो ठेवा।

तपासणी 3: हा मार्क अजून कोण लिहितो

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

मार्क इतर फायरवॉल साधने, कंटेनर नेटवर्किंग आणि इतर हेतूंसाठी धोरण-राउटिंगही वापरतात, म्हणून दोन उपप्रणालींनी संपूर्ण फील्ड लिहिणे हा संघर्ष आहे, जरी प्रत्येक स्वतंत्रपणे बरोबर असले तरी।

अजून एक जोडण्यापूर्वी लेखकांची यादी करा।

तपासणी 4: मास्क ठरवतो की तुम्ही काय ठेवता

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

नियमसंचाजवळ बिट वाटपाचे दस्तऐवजीकरण करा।

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

तपासणी 5: शोधून नाही, प्रत्यक्ष प्रवाहाने पडताळा

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

जिवंत सत्रादरम्यान रीफ्रेश भाग पाडण्यासाठी कनेक्शन स्थिती फ्लश करणे टाळा, कारण नवीन आणि विद्यमान प्रवाह कायदेशीरपणे वेगळे मार्ग घेऊ शकतात।

मार्क, मास्क आणि तक्ता एकाच ठिकाणी नोंदवा, मग पुढील संपादन पुनरावलोकनयोग्य होते।

संबंधित लेख