चूंकि ये मार्ग अलग-अलग सबनेट पर हैं, इसलिए यहां सिर्फ मैट्रिक की तुलना में अधिक शामिल है। यदि ट्रैफ़िक की उत्पत्ति 192.168.1.1 सबनेट पर होती है, उदाहरण के लिए, और आपकी रूटिंग टेबल में एक मिलान रहित डिफ़ॉल्ट मार्ग है, तो उस मार्ग को सबसे लंबे समय तक उपसर्ग मैच के माध्यम से मिलान किया जाएगा, इससे पहले कि मीट्रिक को कभी भी माना जाए।
मान लिया जाए कि एक गैर-डिफ़ॉल्ट मार्ग मिलान नहीं कर रहा है, तो किसी भी मीट्रिक को कर्नेल द्वारा 0 के मीट्रिक के रूप में व्याख्या नहीं की जानी चाहिए , और इसलिए सर्वोच्च प्राथमिकता वाला मार्ग है। हालाँकि यह एक सरलीकृत दृष्टिकोण है क्योंकि कुछ रूटिंग डेमॉन बाद में 1024 की तरह उस डिफ़ॉल्ट मीट्रिक का दूसरे मूल्य में अनुवाद करेंगे। मुझे उम्मीद है कि यह आपके और आपके अनाम डिस्ट्रो के लिए हो रहा है।
यदि ip route
कोई मीट्रिक नहीं दिखाता है, तो आप पुष्टि कर सकते हैं कि route -n
नेट-टूल पैकेज से पुराने कमांड का उपयोग करके यह वास्तव में 0 है cat /proc/net/route
। हालाँकि, यह आउटपुट आवश्यक रूप से मेल नहीं खाता है जब रूटिंग डेमन आंतरिक रूप से उपयोग करेगा जब उसका सामना 0 मैट्रिक मान से होगा।
इसके अलावा आप मार्ग के मामलों को भी कैसे बनाते हैं। ip route
नेटलिंक एपीआई route
का उपयोग करता है , जबकि ioctl का उपयोग करता है। दो दृष्टिकोणों के बीच डिफ़ॉल्ट मीट्रिक कैसे बनाई जाती है, इसके लिए कोड अलग-अलग मीट्रिक मूल्यों में परिणत होता है। उदाहरण के लिए: के माध्यम से एक आईपीवी 6 डिफ़ॉल्ट मार्ग बनाने ip route
पर आरएचईएल 7 पर 1024 का मीट्रिक मूल्य होगा, जबकि उसी मार्ग के माध्यम route
से 1 के मीट्रिक में परिणाम होगा।
से RedHat :
- यदि रूट मेट्रिक के लिए कुछ भी पास नहीं किया जाता है क्योंकि मार्ग मीट्रिक 1 का मान कमांड द्वारा ही उपयोग किया जाता है।
- यदि रूट मेट्रिक के रूप में आईपी कमांड को कुछ भी पास नहीं किया जाता है, तो विशेषता बिल्कुल नहीं बनाई जाती है और कर्नेल इसे 0 के रूप में समझता है, जिसे बाद में 1024 डिफ़ॉल्ट रूप से अनुवादित किया गया है।