जैसा कि पिछले उत्तरों में उल्लेख किया गया है, इस समस्या का एक समाधान मेजबान पर एक मैक्वलन नेटवर्क एडेप्टर जोड़ना है। हालाँकि, मैंने महसूस किया कि मैक्वान एडॉप्टर के रूट को मैन्युअल रूप से रिवाइव करना थोड़े हैप्पी था, खासकर जब से मैं आईपीवी 6 सपोर्ट चाहता था और प्रीफ़िक्स चेंज होने पर मैन्युअल रूप से सेट रूट एक समस्या बन सकता है। तो यहाँ मेरा विन्यास है जो रूटिंग टेबल के नियंत्रण में कर्नेल को छोड़ता है:
(यहां विशेष विन्यास डेबियन और अपस्टार्ट विशिष्ट है, लेकिन बुनियादी कदम किसी भी GNU / लिनक्स पर काम करना चाहिए)।
बूट पर macvlan एडेप्टर बनाना
सबसे पहले, आपको अपने एडेप्टर के लिए एक मैक पते का चयन करना होगा। आप बस एक यादृच्छिक का उपयोग करने में सक्षम हो सकते हैं, लेकिन मेरा सुझाव है कि आप मैन्युअल रूप से एक मैकवैलन एडेप्टर बनाएं और इसके मैक का उपयोग करें। इस तरह, मैक किसी भी सम्मेलनों के लिए बाध्य है जो वहां हो सकता है।
एक निश्चित मैक सेट करना उचित है, क्योंकि अन्यथा रिबूट के बाद अपनी मशीन को पहचानने और उसे पहले की तरह ही आईपी एड्रेस असाइन करने के लिए डीएचसीपी सर्वर के लिए कोई रास्ता नहीं है।
इसलिए एक एडाप्टर बनाएं और मैक को देखें:
root@host:~# ip link add link eth0 macvlan0 type macvlan mode bridge
root@host:~# ip addr show dev macvlan0
#: macvlan0@eth0: mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1
link/ether 12:34:56:78:90:ab brd ff:ff:ff:ff:ff:ff
...
हाइक्ड हेक्साडेसिमल नंबर आपका मैक एड्रेस है।
अब आप एक init script बनाते हैं - जिसे नेटवर्किंग से पहले चलाना होगा - प्रत्येक स्टार्टअप को macvlan एडाप्टर बनाने के लिए। ऐसा करने का आदेश है:
ip link add link eth0 address <MACADDRESS> macvlan0 type macvlan mode bridge
इस उद्देश्य के लिए इनस्टार्ट स्क्रिप्ट का एक उदाहरण होगा:
start on starting networking
script
ip link add link eth0 address <MACADDRESS> macvlan0 type macvlan mode bridge
end script
बस इसे उदा में डालें /etc/init/macvlan.conf
।
नेटवर्क कॉन्फ़िगरेशन सेट करना
में /etc/network/interfaces
, अपने भौतिक नेटवर्क एडेप्टर को मैन्युअल (लेकिन इसे ऑटो छोड़ दें) पर सेट करें और इसके पिछले कॉन्फ़िगरेशन (आमतौर पर डीएचसीपी या एक स्थिर आईपी पते) को अपने मैकवलन एडेप्टर में स्थानांतरित करें। उदाहरण के लिए:
auto eth0
iface eth0 inet manual
auto macvlan0
iface macvlan0 inet dhcp
भौतिक एडाप्टर के लिए IPv6 को अक्षम करना
अंत में, आप नहीं चाहते कि भौतिक एडेप्टर एक आईपी एड्रेस प्राप्त करे। IPv4 के लिए एडेप्टर को मैन्युअल रूप से सेट करने से वह पता प्राप्त करने से रोकता है। हालाँकि, मुझे एक कॉन्फ़िगरेशन नहीं मिला है जो कर्नेल को एडाप्टर के लिए / के लिए एक आईपीवी 6 पता प्राप्त करने / असाइन करने से रोकता है। जब यह होता है, तो यह उनके लिए मार्ग भी जोड़ता है, जिससे समस्याएं हो सकती हैं। तो सबसे अच्छा तरीका भौतिक एडाप्टर के लिए आईपीवी 6 को अक्षम करना प्रतीत होता है। आप लाइन जोड़कर ऐसा कर सकते हैं
net.ipv6.conf.eth0.disable_ipv6=1
करने के लिए /etc/sysctl.conf
, में एक फ़ाइल बनाने के द्वारा /etc/sysctl.d/
इस लाइन के साथ, या जोड़कर
sysctl -w net.ipv6.conf.eth0.disable_ipv6=1
आपके init स्क्रिप्ट के लिए।
जब आप अब अपनी मशीन को रिबूट करते हैं, तो होस्ट से गेस्ट तक संचार आईपीवी 4 और आईपीवी 6 दोनों के साथ काम करना चाहिए।
ज्ञात हो, कि यदि आप इसे सेट करते समय कोई गलती करते हैं, तो आपका होस्ट रिबूट के बाद भी नेटवर्क के माध्यम से पहुंच से बाहर हो सकता है। ऐसा केवल तभी करें जब आपके पास मशीन या अन्य सुरक्षा उपायों की भौतिक पहुंच हो, ताकि आप संभावित समस्याओं को ठीक कर सकें।