मैं भौतिक एडेप्टर के बिना मशीन पर एक वर्चुअल ईथरनेट इंटरफ़ेस कैसे बना सकता हूं?


68

मेरे पास एक डेल एक्सपीएस 13 अल्ट्राबुक है जिसमें एक वाईफ़ाई निक है, लेकिन कोई भौतिक ईथरनेट निक (wlan0, लेकिन कोई eth0 नहीं)। मुझे एनएफएस के साथ वैग्रंट का उपयोग करने के लिए एक वर्चुअल एडेप्टर बनाने की आवश्यकता है, लेकिन मुझे पता चल रहा है कि ठेठ ifup eth0:1...विफल रहता है ignoring unknown interface eth0:1=eth0:1। मैंने इसके विरुद्ध एक वर्चुअल इंटरफ़ेस बनाने का भी प्रयास किया wlan0, लेकिन उसी परिणाम को प्राप्त किया।

मैं इस मशीन पर कोई भौतिक इंटरफ़ेस वाला वर्चुअल इंटरफ़ेस कैसे बना सकता हूं?


सबसे पहले, सुनिश्चित करें कि आपका ड्राइवर जिसका उपयोग wlan0 द्वारा किया जा रहा है, एलियासिंग का समर्थन करता है। यह दूसरा नाम है जो वर्चुअल इंटरफेस द्वारा जाता है। देखें कि मेरे A से इस Q तक कैसे हैं: unix.stackexchange.com/questions/108396/… । BTW आप eth0 के खिलाफ एक उपनाम नहीं बना सकते हैं यदि आपके पास वह भौतिक उपकरण नहीं है।
स्लम

तुम भी उपयोग करते हुए अतिरिक्त आईपी जोड़ सकते हैं ipभी आदेश: xmodulo.com/2013/02/...
SLM

जवाबों:


103

डमी इंटरफ़ेस सेट करना

यदि आप नेटवर्क इंटरफेस बनाना चाहते हैं, लेकिन इसे वापस करने के लिए भौतिक एनआईसी की कमी है, तो आप डमी लिंक प्रकार का उपयोग कर सकते हैं। आप उनके बारे में और अधिक यहाँ पढ़ सकते हैं: iproute2 विकिपीडिया पृष्ठ

Eth10 बनाना

इस इंटरफ़ेस को बनाने के लिए आपको पहले यह सुनिश्चित करना होगा कि आपके पास डमी कर्नेल मॉड्यूल लोड है। आप ऐसा कर सकते हैं:

$ sudo lsmod | grep dummy
$ sudo modprobe dummy
$ sudo lsmod | grep dummy
dummy                  12960  0 

अब लोड किए गए ड्राइवर के साथ आप कभी भी ऐसा डमी नेटवर्क बना सकते हैं जो आपको पसंद आए:

$ sudo ip link set name eth10 dev dummy0

और इसकी पुष्टि करें:

$ ip link show eth10
6: eth10: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default 
    link/ether c6:ad:af:42:80:45 brd ff:ff:ff:ff:ff:ff

मैक को बदलना

यदि आप चाहें, तो आप मैक पते को बदल सकते हैं:

$ sudo ifconfig eth10 hw ether 00:22:22:ff:ff:ff
$ ip link show eth10
6: eth10: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN mode DEFAULT group default 
    link/ether 00:22:22:ff:ff:ff brd ff:ff:ff:ff:ff:ff

एक उपनाम बनाना

फिर आप eth10 के शीर्ष पर उपनाम बना सकते हैं।

$ sudo ip addr add 192.168.100.199/24 brd + dev eth10 label eth10:0

और उन्हें इस तरह की पुष्टि करें:

$ ifconfig -a eth10
eth10: flags=130<BROADCAST,NOARP>  mtu 1500
        ether 00:22:22:ff:ff:ff  txqueuelen 0  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

$ ifconfig -a eth10:0
eth10:0: flags=130<BROADCAST,NOARP>  mtu 1500
        inet 192.168.100.199  netmask 255.255.255.0  broadcast 192.168.100.255
        ether 00:22:22:ff:ff:ff  txqueuelen 0  (Ethernet)

या उपयोग कर रहा है ip:

$ ip a | grep -w inet
    inet 127.0.0.1/8 scope host lo
    inet 192.168.1.20/24 brd 192.168.1.255 scope global wlp3s0
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
    inet 192.168.100.199/24 brd 192.168.100.255 scope global eth10:0

यह सब निकाल रहे हो?

यदि आप यह सब खोलना चाहते हैं तो आप ऐसा करने के लिए इन आदेशों को चला सकते हैं:

$ sudo ip addr del 192.168.100.199/24 brd + dev eth10 label eth10:0
$ sudo ip link delete eth10 type dummy
$ sudo rmmod dummy

संदर्भ


4
यह आदेश मेरे लिए काम नहीं किया sudo ip link set name eth10 dev dummy0:। मैंने ip link add dummy0 type dummyनिम्नलिखित कमांड में dummy0 इंटरफ़ेस का उपयोग और उपयोग किया है। अन्य आदेशों ने अच्छा काम किया। धन्यवाद!
इक्रोम

1
कमाल है, यह वही है जो मुझे एक पुराने lmgrd के लिए चाहिए था जो नए RHEL 7 डिवाइस नामों (ईएक्सएक्स के बजाय ईएमएक्स) से मैक पते को पढ़ने में सक्षम नहीं था
थिसैन

26

आप iproute2 टूलकिट का उपयोग करके वर्चुअल इंटरफेस बना सकते हैं ।

ip link add veth0 type veth peer name veth1

यह 2 इंटरफेस बनाएगा, veth0और veth1। उन्हें एक पाइप के 2 छोरों के रूप में सोचो। भेजा गया कोई भी ट्रैफ़िक veth0बाहर आएगा veth1और इसके विपरीत।

यदि आप चाहते हैं कि ट्रैफ़िक को रूट किया जाए, तो आप कर सकते हैं:

sysctl -w net.ipv4.conf.veth0.forwarding=1

यह आगे आने वाले ट्रैफ़िक से कर्नेल को बताएगा veth0(इसलिए उपयोग veth1किए गए समापन बिंदु के लिए उपयोग करें )।

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

इस ट्रैफ़िक के साथ आप कई अन्य चीजें कर सकते हैं (इसे मिटा दें, इसे रीडायरेक्ट करें, इसे डीएनएटी, आदि), लेकिन यह इस बात पर निर्भर करता है कि आप क्या हासिल करना चाहते हैं।

इसे फाड़ने के लिए:

ip link del veth0

शांत सामान, लेकिन इस मामले में मुझे जो कुछ भी चाहिए वह नहीं था (मुझे वास्तव में सिर्फ एक आभासी इंटरफ़ेस की आवश्यकता थी ताकि एक वीएम VBox फ़ाइल शेयरों का उपयोग करने के बजाय एक एनएफएस शेयर माउंट कर सके)
STW

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