सवाल नीति आधारित रूटिंग टेबल वास्तव में कैसे काम करते हैं?


लिनक्स में नीति आधारित रूटिंग की मेरी समझ यह है कि तीन मुख्य घटक, रूटिंग टेबल, मार्ग और नियम हैं। मैंने कई गाइडों का पालन किया है और उनमें से प्रत्येक में यह सही लगता है, इसलिए मैं एक रूट टेबल बनाता हूं, मैं इसमें एक मार्ग जोड़ता हूं और फिर मैं इस तालिका का उपयोग करने के लिए यातायात को अर्हता प्राप्त करने के लिए एक नियम जोड़ता हूं।

यह मेरे लिए तार्किक लगता है, नियमों की एक सूची है और यदि यातायात नियम से मेल खाता है तो यह मार्ग तालिका को देखता है और यह बताता है कि कैसे अपने गंतव्य तक पहुंचना है, हालांकि यह मेरे लिए काम नहीं कर रहा है और अब मैं आ गया हूं कई अन्य लेखों में जहां सीधे रूटिंग टेबल सेट करने के बाद, विषय मुख्य मार्ग तालिका में समान मार्ग जोड़ते हैं, मुझे यकीन नहीं है कि यह क्यों आवश्यक है, जब तक कि यह समझने के लिए कि इसका काम करने का अर्थ गलत नहीं है, या यह काम नहीं करता है।

यहां से एक अच्छा उदाहरण है लिनक्स उन्नत रूटिंग और यातायात नियंत्रण हाउटो इसमें निम्न अंश है (यदि लिंक गायब हो जाता है):

टी 1 और टी 2 कहता है, एक दो अतिरिक्त रूटिंग टेबल बनाता है। ये / etc / iproute2 / rt_tables में जोड़े गए हैं। फिर आप निम्नानुसार इन तालिकाओं में रूटिंग सेट अप करते हैं:

ip route add $P1_NET dev $IF1 src $IP1 table T1
ip route add default via $P1 table T1
ip route add $P2_NET dev $IF2 src $IP2 table T2
ip route add default via $P2 table T2

कुछ भी शानदार नहीं, केवल गेटवे के लिए एक मार्ग बनाएं और उस गेटवे के माध्यम से एक डिफ़ॉल्ट मार्ग बनाएं, जैसा कि आप एक अपस्ट्रीम प्रदाता के मामले में करेंगे, लेकिन प्रति प्रदाता को एक अलग तालिका में मार्ग दें। ध्यान दें कि नेटवर्क मार्ग पर्याप्त है, क्योंकि यह आपको बताता है कि उस नेटवर्क में किसी भी होस्ट को कैसे ढूंढें, जिसमें ऊपर निर्दिष्ट अनुसार गेटवे शामिल है।

इसके बाद आप मुख्य रूटिंग तालिका सेट अप करें। उस पड़ोसी से जुड़े इंटरफ़ेस के माध्यम से सीधे पड़ोसी को चीजों को रूट करना एक अच्छा विचार है। 'Src' तर्कों पर ध्यान दें, वे सुनिश्चित करते हैं कि सही आउटगोइंग आईपी पता चुना गया है।

ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2

फिर, डिफ़ॉल्ट मार्ग के लिए आपकी वरीयता:

ip route add default via $P1

इसके बाद, आप रूटिंग नियम सेट अप करते हैं। ये वास्तव में चुनते हैं कि किस रूटिंग टेबल के साथ मार्ग है। यदि आप पहले से ही संबंधित स्रोत पता रखते हैं तो आप यह सुनिश्चित करना चाहते हैं कि आप दिए गए इंटरफ़ेस को रूट करें:

ip rule add from $IP1 table T1
ip rule add from $IP2 table T2

आदेशों का यह सेट सुनिश्चित करता है कि किसी विशेष इंटरफ़ेस पर आने वाले ट्रैफ़िक के सभी उत्तरों को उस इंटरफ़ेस से उत्तर दिया जाए।

ठीक है, इसलिए मुझे पूरी तरह से नहीं बनाया गया है कि विशेष रूप से बनाई गई नई मार्ग तालिका में मार्ग जोड़ने के बाद आप जाते हैं और उन्हें मुख्य मार्ग तालिका में जोड़ते हैं, उसमें क्या बिंदु था, क्या कोई समझा सकता है?


6
2017-11-25 13:46


मूल




जवाब:


दरअसल, मुझे लगता है कि भ्रम इस तथ्य से आता है कि ये निर्देश दो विषयों को मिला रहे हैं:

  • पॉलिसी रूटिंग से निपटना
  • एक सर्वोत्तम अभ्यास तरीके से अपनी मानक रूटिंग तालिका सेट अप करना

ये तीन पंक्तियां

    ip route add $P1_NET dev $IF1 src $IP1
    ip route add $P2_NET dev $IF2 src $IP2
    ip route add default via $P1

यातायात को संभालने के लिए हैं जो किसी भी कारण से आपके पॉलिसी मार्गों से मेल नहीं खाते हैं (उदाहरण के लिए राउटर पर लूपबैक जोड़ते हैं, और प्रबंधन के लिए इसका उपयोग करते हैं)। वे पीबीआर के काम करने के लिए सख्ती से जरूरी नहीं हैं, लेकिन उन्हें वहां सब कुछ मिलना सबसे अच्छा है।


3
2018-01-10 05:05