राउटिंग नियम पॅकेट मार्क वाचतो, conntrack नाही
धोरण-आधारित राउटिंग पॅकेट मार्क वाचते; conntrack जास्त आयुष्याचे वेगळे मूल्य साठवते. दोन्हींमध्ये प्रत करणे हे कोणालातरी लिहावे लागणारे पाऊल आहे.
चार तपासण्या कार्यरत मार्क नियमाला कार्यरत मार्गापासून वेगळे करतात: नियम कोणता मार्क वाचतो, शोधाच्या वेळी पॅकेट तो अजूनही वाहतो का, पुढील पॅकेटवर कनेक्शन मार्क पुनर्संचयित झाला होता का, आणि जुळणाऱ्या नियमाचा मुखवटा आणि प्राधान्य त्याला कार्यान्वित होऊ देतात का. वाढणारा काउंटर फक्त एवढेच सिद्ध करतो की कोणत्यातरी नियमाने कोणत्यातरी गोष्टीशी जुळले. कर्नलने आपला मार्ग निवडला तेव्हा पॅकेट काय वाहत होते याबद्दल तो काहीही सांगत नाही.
दोन्ही मार्क वेगवेगळ्या ठिकाणी राहतात आणि वेगवेगळ्या वेळापत्रकानुसार संपतात.
दोन मार्क, दोन आयुष्ये
पॅकेट मार्क एका skb चा असतो, त्याच्यासोबत हुकांमधून प्रवास करतो आणि धोरण-आधारित राउटिंगचा fwmark निवडक त्याचा वापर करतो. कनेक्शन मार्क conntrack नोंदीचा असतो, त्या प्रवाहाच्या पॅकेटमध्ये टिकून राहतो आणि कोणीतरी तो परत प्रत करेपर्यंत राउटिंग नियमाला अदृश्य असतो. पॅकेट मार्क कनेक्शनमध्ये साठवणे म्हणजे साठवण; तो पुनर्संचयित करणे वेगळी क्रिया आहे. दोन्हीपैकी काहीही आपोआप होत नाही.
म्हणूनच नियमांचा संच सुसंगत दिसू शकतो, पण राउटिंग निर्णय शून्य पाहतो: मूल्य साठवले होते आणि कोणीही ते पुनर्संस्थापित केले नाही.
दोन्हींमध्ये प्रत करणे हे तुम्ही लिहता ते पाऊल
महत्त्वाची दोन विधाने विरुद्ध दिशांनी जातात: एक पॅकेटचा मार्क कनेक्शनमध्ये साठवते, दुसरे कनेक्शनचा मार्क पॅकेटवर लोड करते. तुम्हाला कोणते हवे हे प्रवाहाच्या तुलनेत वर्गीकरण कधी होते यावर अवलंबून आहे. एखाद्या रचनेला फक्त पॅकेट मार्क लागू शकतो, आणि कोणत्यातरी पर्यायी उपायाने दोन्ही वापरले म्हणून conntrack मार्किंग जोडणे हा सोपी धोरण दुसरी अयशस्वी पद्धत मिळवण्याचा मार्ग आहे.
ct mark set meta mark meta mark set ct mark
नियमाच्या शेजारी दिशा लिहून ठेवा, कारण पहिल्या दृष्टीक्षेपात वाक्यरचनेतून ती स्पष्ट नसते. पहिली ओळ साठवते, दुसरी पुनर्संचयित करते, आणि एकही दुसरीचा अर्थ सुचवत नाही.
त्याचा वापर करणाऱ्या शोधापूर्वी वर्गीकरण करा
स्थानिकरीत्या तयार होणारा रहदारी आणि LAN मधून पुढे पाठवलेला रहदारी वेगवेगळ्या हुकांमधून जातात आणि वेगवेगळ्या क्षणी राउटिंग निर्णयांपर्यंत पोहोचतात. राउटरच्या स्वतःच्या कनेक्शनसाठी कार्यरत असलेला आउटपुट नियम हे सिद्ध करत नाही की पुढे पाठवलेल्या क्लायंटचे पॅकेट त्याच्या शोधापूर्वी मार्क झाले होते. वर्गीकरण तिथे ठेवा जिथे त्याचा वापर करणारा शोध अजून झालेला नाही, आणि त्याच साखळीतील पुढील नियम मूल्यावर पुन्हा लिहितात का ते तपासा. साखळीतील क्रम हा संरचनेचा भाग आहे, अंमलबजावणीचा तपशील नाही.
कनेक्शन-स्थितीच्या टिकाऊपणालाही स्पष्ट योजना हवी. जर प्रवाहाच्या फक्त पहिल्या पॅकेटचे वर्गीकरण होत असेल, तर पुढील पॅकेटना साठवलेला मार्क पुनर्संचयित करण्याची गरज असते, अन्यथा ते मार्क नसलेला मार्ग घेतील. कनेक्शनचे वर्णन करणारा मार्क आणि पॅकेटचे वर्णन करणारा मार्क यातील फरक हाच आहे.
मार्गाला मार्क असलेला प्रश्न विचारा
ip route get 10.77.0.10 mark 0x2
नियम आणि तक्ता तपासा, नंतर मार्क समाविष्ट करून मार्गाला विचारा, आणि स्रोत किंवा येणारा इंटरफेस धोरणावर परिणाम करत असेल तर तेही जोडा. मार्क नसलेला साधा शोध दुसऱ्या प्रश्नाचे उत्तर देतो आणि तुम्हाला नको असलेला मार्ग आनंदाने सांगतो. नियमाच्या मूल्यासोबत त्याचा मुखवटा आणि प्राधान्य तपासा, आणि निवडलेल्या तक्त्यात वापरण्यायोग्य मार्ग आहे याची खात्री करा.
वाढणारा काउंटर हा पुरावा आहे की कोणत्यातरी नियमाने कोणत्यातरी पॅकेटशी जुळले. अंतिम पॅकेटने योग्य निर्णयबिंदूवर इच्छित मार्क वाहिला होता हा पुरावा नाही.
मार्क, दिशा, वेळ आणि मुखवटा वाचा. चार तपासण्या, आणि मार्ग कोडे राहणे थांबवतो.