राउटिंग टेबल को लिनक्स कर्नेल में आंतरिक रूप से कहाँ संग्रहीत किया जाता है?


12

जब मैं निष्पादित करता हूं route -n, तो वास्तव में (कहां से struct) किस सूचना को पुनर्प्राप्त किया गया है?

मैंने क्रियान्वित करने की कोशिश की, strace route -nलेकिन मैंने इसे संग्रहीत की गई सही जगह खोजने में मेरी मदद नहीं की।


1
कृपया इस सुपरसुअर.
श्री

इसे मेमोरी में स्टोर किया जाता है। क्या आप स्मृति पते की तलाश कर रहे हैं?
बांद्रामी

@Bandrami मैं देखना चाहूंगा structकि जानकारी रखने के लिए क्या जिम्मेदार है।
Syntagma

डिस्क पर फ़ाइल की तलाश में किसी के लिए, यह या तो डीएचसीपी सर्वर से जो भी देता है, उससे निर्मित होता है, या जो /etc/sysconfig/network-scripts/ifcfg-${DEV}साधारण मामलों में पाया जा सकता है और / या उससे /etc/sysconfig/network-scripts/route-${DEV}अधिक जटिल मामलों में पाया जा सकता है (Red Hat / CentOS का मामला) 7)। बाद वाली फ़ाइल में आउटपुट होता है ip -rCentOS पर एक स्टेटिक रूट जोड़ें देखें ।
डेविड टोनहोफर

जवाबों:


17

routeया ipउपयोगिता कहा जाता है एक छद्म फाइल सिस्टम से उनके बारे में जानकारी प्राप्त procfs। यह आम तौर पर के तहत मुहिम शुरू की है /proc। एक फाइल है /proc/net/route, जिसमें आप कर्नेल की आईपी रूटिंग टेबल देख सकते हैं। आप catइसके बजाय रूटिंग टेबल को प्रिंट कर सकते हैं , लेकिन मार्ग उपयोगिता आउटपुट मानव पठनीय को प्रारूपित करती है, क्योंकि आईपी एड्रेक्स हेक्स में संग्रहीत होते हैं।

वह फाइल केवल एक सामान्य फाइल नहीं है। यह हमेशा पढ़ने के प्रयास के साथ इसे खोलते समय बिल्कुल उसी क्षण उत्पन्न होता है, जैसा कि खरीद फाइलसिस्टम की सभी फाइलों में होता है।

मैं आपको बताता हूं कि यह फ़ाइल कैसे लिखी गई है, तो आपको कर्नेल स्रोतों को देखने की जरूरत है: यह फ़ंक्शन रूटिंग टेबल को आउटपुट करता है। आप लाइन 2510 पर देखते हैं , राउटिंग टेबल का हेडर प्रिंट किया गया है। राउटिंग टेबल ज्यादातर उस संरचना में प्रतीत होती fib_infoहै जिसे हेडर फ़ाइल ip_fib.h, लाइन 98 में परिभाषित किया गया है ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.