"प्रिडिक्टेबल नेटवर्क इंटरफ़ेस नामों" को कैसे सक्षम करें?


12

मैंने यह जांचने का निर्णय लिया कि मेरा ईथरनेट उपकरण किस नाम से समाप्त होगा, लेकिन अन्य डिस्ट्रो के विपरीत , डेबियन को यह परिवर्तन सक्रिय नहीं लगता (या इसे वापस पकड़ रहा है?)।

  • अभी के लिए पुराने लगातार नेटवर्क इंटरफेस नामकरण योजना रखें और कर्नेल कमांड लाइन पर net.ifnames = 1 के माध्यम से नया एक ऑप्ट-इन बनाएं।

समस्या यह है कि मुझे ग्रब कर्नेल लाइनों को संपादित करना है, और यह उस चीज़ के लिए ओवरकिल की तरह लगता है जिसे किसी फ़ाइल को संशोधित करके अक्षम किया जा सकता है । क्या कोई और तरीका है?


हो सकता है कि आप इस लिंक को जांचना चाहते हों: science.uva.nl/research/air/wiki/LogicalInterfaceNames आपको नाम और अद्यतन स्टार्टअप फ़ाइल जैसे कोई काम मिल सकता है ... @Braiam
user1527224

@ user1527227 यह वही है जो मैं नहीं करना चाहता।
ब्रिअम जूल

Jesse पर आपको केवल / etc / default / grub में एक पंक्ति को संशोधित करना चाहिए। Wheezy पर वास्तव में इस AFAIK को सक्षम करने का कोई तरीका नहीं है। मुझे वास्तव में नई नामकरण योजना पसंद है, इसलिए मैं अपने घर के सर्वर पर अपने स्वयं के नियमों को स्थापित करता हूं।
GnP

जवाबों:


11

संस्करण 220-7 पर डेबियन ने पैच को चुना जिसने इसे ऑप्ट-इन बनाया:

* Switch to net.ifnames persistent network interfaces (on new
  installations/for new hardware), and deprecate the old
  75-persistent-net-generator.rules.

यह डेबियन-डेवेल सूची में एक प्रस्ताव से आया था । उपयोगकर्ता के माइग्रेट होने तक पुराने नामकरण का उपयोग करने वाले सिस्टम का नाम नहीं बदला जाएगा। माइग्रेशन गाइड के लिए पढ़ें README.Debian।

नए नाम का उपयोग करके भविष्यवाणी की जा सकती है:

sudo udevadm test /sys/class/net/eth0 2>/dev/null |grep ID_NET_NAME_

eth0उपकरण का वर्तमान नाम कहां है।


5

मुझे लगता है कि आप सिड या जेसी के बारे में बात कर रहे हैं। मट्ठे के लिए आप v204 के बैकपोर्ट का प्रयास करना चाह सकते हैं ।

यहां खेलने में कुछ गलतफहमियां हो सकती हैं: जैसा कि यहां udv नियमों से देखा जा सकता है (वर्तमान में v208 के लिए), udev डेवलपर्स ने स्पष्ट रूप से कर्नेल cmdline को इस कार्यक्षमता को सक्षम करने के डिफ़ॉल्ट तरीके के रूप में चुना है।
मुझे इसके लिए चुने गए इंटरफ़ेस का उपयोग करने और सीधे शब्दों GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1"में कहने के साथ स्वाभाविक रूप से "ओवरकिल" कुछ भी दिखाई नहीं देता है /etc/default/grub। क्या कोई विशिष्ट साइड-इफ़ेक्ट है जिसके बारे में आप चिंतित हैं?

तथ्य यह है कि आपके द्वारा उल्लिखित उत्तर को निष्क्रिय करने के लिए एक फ़ाइल को हटाने का सुझाव देता है एक हैक (कम से कम डेबियन के मामले में) जो लंबे समय तक काम नहीं करेगा क्योंकि डेबियन में उन नियमों को संग्रहीत किया जाता है /lib/udev/rules.d, अर्थात: वे ओवरराइट हो जाएंगे। एक उन्नयन (इसके अलावा, प्रभावी ढंग से उस फ़ाइल को हटाने वाली कार्यक्षमता को अक्षम करना जो इसका वर्णन करता है कुछ समझ में आता है, लेकिन इसे सक्षम करना मौलिक रूप से अलग है, इसलिए मुझे लगता है कि यह एक अनुचित तुलना है)।

OTOH, यदि आपके पास कर्नेल cmdline का उपयोग नहीं करने के लिए एक ठोस कारण है, तो आप डेबियन पैकेज के खिलाफ बग की रिपोर्ट कर सकते हैं और अनुरक्षक को इन नियमों को स्थानांतरित करने के लिए है /etc/udev/। तब आप सैद्धांतिक रूप से वर्तमान "लगातार" और नए "पूर्वानुमान" नियमों के बीच स्विच कर सकते थे।

लेकिन सिर्फ FYI करें: संस्करण 209 के लिए स्रोतों को देखते हुए, यह net.if_namesपूरी तरह से चेक से छुटकारा पाने के लिए लगता है , इसलिए आपके प्रश्न को निकट भविष्य में कुछ रीडड्रेसिंग की आवश्यकता हो सकती है।


1
"स्पष्ट रूप से कर्नेल cmdline को इस कार्यक्षमता को सक्षम करने के डिफ़ॉल्ट तरीके के रूप में चुना है।" वास्तव में यह एक डेबियन पैच है जो ऐसा करता है , न कि udv देवता। उन्होंने केवल बूट पर ऑप्ट-आउट करने के लिए एक विधि शामिल की, डेबियन ने इसे ऑप्ट-इन में बदल दिया, और इसे सक्षम करना आसान होना चाहिए क्योंकि यह डिफ़ॉल्ट रूप से सक्षम है।
ब्रिअम

@ ब्रायम: अच्छा कैच! लेकिन मुझे लगता है कि मुख्य तर्क यह है कि यह कर्नेल cmdline को एक इंटरफ़ेस के रूप में उपयोग करने का एक अच्छा विकल्प था, चाहे वह इसे सक्षम या अक्षम करने के लिए हो।
लियो एंट्यून्स 15

मैंने net.ifname=1पैरामीटर को शामिल करने के लिए कर्नेल कमांड लाइन को संपादित किया , लेकिन यह सुविधा लिनक्स मिंट पर सक्षम नहीं थी। किस लिनक्स डिस्ट्रोस को इस सुविधा के लिए समर्थन के लिए जाना जाता है?
शेरेरेल्बक

0

Debian / Ubuntu पर, udev 220 से शुरू होकर, आप इस फ़ाइल का नाम बदलकर नए नाम सक्षम कर सकते हैं:

sudo mv -T /etc/udev/rules.d/70-persistent-net.rules{,.old}

जैसा कि सुझाव दिया गया है /usr/share/doc/udev/README.Debian.gz, उसके बाद

sudo update-initramfs -u

फिर रिबूट करना (या आपके नेटवर्क कार्ड को चलाने वाले मॉड्यूल के rmmod + insmod)।


-1

उबंटू 15.10 का उपयोग करता है biosdevnameजो अनुमानित नेटवर्क इंटरफ़ेस नाम प्रदान नहीं करता है। भले ही आप इसे हटा दें (apt-get remove biosdevname) और एडिट ग्रब ( GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1") और लगातार नियम, फिर भी आपको प्रेडिक्टेबल नेटवर्क इंटरफेस नहीं मिलते हैं।

मुख्य कारण पिछड़ी अनुकूलता प्रतीत होती है। मैंने अभी-अभी 2 मोबाइल ब्रॉडबैंड USB उपकरणों के साथ इसका परीक्षण किया और नेटवर्क इंटरफ़ेस का नाम असंगत रूप से प्रत्येक बूट पर रखा गया है (उदाहरण के लिए पहला इंटरफ़ेस usb0, दूसरा usb1 और दूसरा तरीका)। मुख्य कारण पिछड़ी संगतता प्रतीत होता है।

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


समझ गया! मैं वास्तव में उत्तर को अपडेट कर दूंगा क्योंकि मुझे लगता है कि मुझे मिल गया है।
एंथनी हंट

@roalma मैंने जवाब अपडेट कर दिया है! पहले की "टिप्पणी जैसी" पोस्ट के लिए क्षमा करें।
एंथनी हंट

डेबियन डिफ़ॉल्ट रूप से 220-7 के बाद से इस कार्यक्षमता का समर्थन करता है जब उन्होंने उस पैच को गिरा दिया जो व्यवहार के बारे में गवाही देता है। अब नए स्थापित सिस्टम डिफ़ॉल्ट रूप से अनुमानित नामों का उपयोग करेंगे।
ब्रिअम जूल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.