हम लिनक्स पर कई डमी इंटरफेस कैसे बना सकते हैं?


11

लिनक्स पर एक नकली ईथरनेट डमी इंटरफ़ेस बनाने के लिए हम पहले डमी इंटरफ़ेस ड्राइवर को नीचे दिए गए कमांड का उपयोग करके आरंभ करते हैं: / sbin / modprobe डमी
फिर हम डमी ड्राइवर के लिए ईथरनेट इंटरफेस उर्फ ​​असाइन करते हैं, जिसे हमने अभी ऊपर शुरू किया है।

लेकिन यह निम्न घातक त्रुटि देता है: FATAL: मॉड्यूल डमी नहीं मिला।

इसके अलावा, पथ cd / sys / devices / virtual / net # पर , हम देख सकते हैं कि निम्नलिखित नामों से मौजूद वर्चुअल इंटरफेस हैं:
dummy0 / lo / sit0 / tunl0 /

ifconfig -a

dummy0:   Link encap:Ethernet  HWaddr aa:3a:a6:cd:91:2b    
          BROADCAST NOARP  MTU:1500  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0   
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

lo:     Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0  
          inet6 addr: ::1/128 Scope:Host  
          UP LOOPBACK RUNNING  MTU:16436  Metric:1  
          RX packets:111 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:111 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0   
          RX bytes:8303 (8.1 KiB)  TX bytes:8303 (8.1 KiB)

sit0:      Link encap:UNSPEC  HWaddr 00-00-00-00-FF-00-00-00-00-00-00-00-00-00-00-00    
          NOARP  MTU:1480  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0   
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

tunl0:  Link encap:IPIP Tunnel  HWaddr   
          NOARP  MTU:1480  Metric:1  
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0  
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0   
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)  

तो, modprobe कमांड कर्नेल मॉड्यूल को लोड करने में सक्षम नहीं है। डमी इंटरफ़ेस ड्रायवर को इनिशियलाइज़ करने के लिए
हम modprobe या insmod का उपयोग करके कर्नेल मॉड्यूल को कैसे लोड कर सकते हैं ?
क्या हम एक एकल लोड किए गए मॉड्यूल पर कई डमी इंटरफेस बना सकते हैं?


जब आपने ईथरनेट वर्चुअल इंटरफ़ेस के बारे में बात की थी। आपको किसी भी डमी मॉड्यूल को लोड करने की आवश्यकता नहीं थी। आप इसे ifconfig कमांड जैसे eth0: 1, eth0: 2, इत्यादि का उपयोग करके बना सकते हैं
supriady

आप ifconfig कमांड का उपयोग करके ईथरनेट वर्चुअल इंटरफेस पर अलग-अलग आईपी एड्रेस, सबनेट और गेटवे सेट कर सकते हैं। बस इसे rc.local पर जोड़ें और बूट पर लोड करें। आपको किसी भी ईथरनेट वर्चुअल इंटरफ़ेस को कॉन्फ़िगर करने की आवश्यकता नहीं है।
सुप्रीति

1
@supriady मैं वर्चुअल इंटरफेस के बारे में नहीं पूछ रहा हूं। मुझे पता है कि हम ifconfig जैसे eth0: 1 वगैरह का उपयोग करके एक इंटरफ़ेस के लिए वर्चुअल आईपी असाइन कर सकते हैं, लेकिन यहां मैक h / w एड्रेस प्रत्येक वर्चुअल इंटरफ़ेस के लिए समान होगा। मेरा सवाल यह है कि डमी 0 जैसे कई डमी इंटरफेस कैसे बनाए जाएं, जो वास्तविक इंटरफेस से अलग एच / डब्ल्यू मैक पते के ऊपर दिखाए गए हैं।
कुशाल

बस सुनिश्चित करने के लिए, आपको पता है कि ये इंटरफेस मशीन के बाहर से दिखाई नहीं देंगे, है ना?
जूली पेलेटियर

कृपया इस प्रश्न को modprobeत्रुटि के पूर्ण उत्पादन और आउटपुट के लिए जोड़ देंuname -r
रुई एफ रिबेरो

जवाबों:


13

कई डमी इंटरफेस को जोड़ने का सामान्य तरीका iproute2 का उपयोग करना है :

# ip link add dummy0 type dummy
# ip link add dummy1 type dummy
# ip link list
...
5: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 22:4e:84:26:c5:98 brd ff:ff:ff:ff:ff:ff
6: dummy1: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 9e:3e:48:b5:d5:1d brd ff:ff:ff:ff:ff:ff

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


"त्रुटि संदेश FATAL: मॉड्यूल डमी नहीं मिला है, यह दर्शाता है कि आपके पास एक कर्नेल हो सकता है जहां डमी इंटरफ़ेस मॉड्यूल सक्षम नहीं है" => नहीं, इसका मतलब यह हो सकता है कि डमी ड्राइवर मॉड्यूल के रूप में नहीं बनाया गया था, लेकिन सीधे इसके बजाय किम में जोड़ा गया । स्पष्ट रूप dummy0से ओपी की मशीन पर एक इंटरफ़ेस मौजूद है। इसके अलावा, आपका जवाब ठीक है।
xhienne

1
@xhienne आपके modprobe के संस्करण पर निर्भर करता है, लेकिन हाल के संस्करणों से kmod, कम से कम, बिल्डिंस के बारे में पता चलेगा। कोशिश करो। जैसे modprobe unixऔर modprobe -r unix
sourcejedi

7

बूट पर डमी इंटरफेस बनाने के लिए, मैं इसमें जोड़ने की सलाह देता हूं /etc/modules

dummy

मॉड्यूल को dummyकेवल कर्नेल 4.4.x से पहले डिफ़ॉल्ट रूप से दो डमी इंटरफेस की अनुमति देता है (सही संस्करण सत्यापित किया जाना चाहिए)।

यदि आपको और अधिक की आवश्यकता है, तो आपको अपनी इच्छा के अनुसार डमी इंटरफेस की संख्या के साथ /etc/modprobe.d/localया तो /etc/modprobe.d/dummy.confपैरामीटर बनाना होगा या पैरामीटर numdummiesको परिभाषित करना होगा :

options dummy numdummies=4 

@Feuermurmel टिप्पणियों के अनुसार, नई गुठली में, आप अधिक डमी इंटरफेस जोड़ते हैं, इसके अलावा कमांड द्वारा दो डिफ़ॉल्ट रूप से बनाया जाता है:

sudo ip link add dummyX type dummy

कम से कम कर्नेल 4.4.0 के साथ, अतिरिक्त डमी इंटरफेस के साथ जोड़ा जा सकता है ip link add dumdum type dummy
फुएर्मुरमेल

@Feuermurmel क्या आपके पास एक विचारधारा है अगर यह 2 से अधिक जोड़ने का काम करती है?
रुई एफ रिबेरो

यह निश्चित रूप से करता है। खुद के लिए टेस्ट करें:for i in {0..100}; do ip link add blubb-$i type dummy; done
फ्युमेर्मेल

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

जिज्ञासा से बाहर: क्या ये उपकरण, एक बार बनाए जाने के बाद, रिबूट में लगातार बने रहते हैं, या क्या आपको प्रत्येक सिस्टम शुरू होने के बाद उन्हें फिर से बनाना होगा?
रोबिदु
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.