लिनक्स में IPv6 पर ऑटोकैनफिगरेशन को अक्षम कैसे करें?


23

मैं लिनक्स में IPv6 के ऑटोकैनफिगरेशन को स्थायी रूप से कैसे अक्षम कर सकता हूं? जब मैं किसी इंटरफ़ेस से किसी पते को मैन्युअल रूप से हटाने का प्रयास करता हूं:

ip -6 addr del 2001:0db8:85a3:0000:0000:8a2e:0370:7334/64 dev eth1

यह कुछ सेकंड बाद फिर से दिखाई देगा, मैं चाहता हूं कि यह स्थायी रूप से चला जाए, लेकिन IPv6 को एक साथ अक्षम किए बिना।

जवाबों:


22

ऑटो कॉन्फ़िगरेशन को eth1 के लिए अस्थायी रूप से अक्षम किया जा सकता है:

sudo sysctl -w net.ipv6.conf.eth1.autoconf=0
sudo sysctl -w net.ipv6.conf.eth1.accept_ra=0

या सभी इंटरफेस के साथ:

sudo sysctl -w net.ipv6.conf.all.autoconf=0
sudo sysctl -w net.ipv6.conf.all.accept_ra=0

कॉल में 0 के बजाय 1 का उपयोग करके पुन: सक्षम करना कार्य करता है।

इसे स्थायी रूप से अक्षम करने के लिए एक प्रविष्टि के साथ किया जा सकता है /etc/sysctl.conf। डेबियन एच पर (शायद नए पर भी), बिना सेटिंग के accept_ra, सिस्टम लिंक लोकल एड्रेस का उपयोग करके स्वतःभरण करेगा ( fe80..)

Gart नीचे उल्लेख किया है, स्वत: पता विन्यास और रूटर खोज विकलांग हो सकता है अगर मेजबान अपने आप में एक रूटर है और accept_raनहीं है 2, यानी

net.ipv6.conf.<iface|all|default>.forwarding=1

तथा

net.ipv6.conf.<iface|all|default>.accept_ra=0 या net.ipv6.conf.<iface|all|default>.accept_ra=1

ifaceआपका इंटरफ़ेस कहाँ है


3
साथ ही, स्वचालित पता कॉन्फ़िगरेशन और राउटर खोज अक्षम हो जाएगी यदि होस्ट स्वयं एक राउटर है, अर्थात net.ipv6.conf.all.forwarding=1सेट है।
गार्ट सेप

4

net.ipv6.conf.all.accept_ra = 0 ऊपर नहीं किया जाना चाहिए, क्योंकि रास उपसर्ग के लिए ऑन-लिंक और ऑफ-लिंक (RFC5942 के अनुसार) के लिए आवश्यक है, साथ ही साथ कई अन्य के स्वचालित कॉन्फ़िगरेशन भी एमटीयू, नेबर डिस्कवरी टाइमआउट आदि जैसे पैरामीटर।

यदि आप autoconfiguration को अक्षम करना चाहते हैं, या तो ऊपर के रूप में autoconf sysctl को सेट करें, या RA में Prefix Information Option (PIO) में A (ऑटोकॉन्फ़िगरेशन बिट) को स्विच ऑफ करें।


3
sudo sysctl -w net.ipv6.conf.all.autoconf=0

यह मेरे लिए डेबियन Wheezy पर काम नहीं किया। /Etc/sysctl.conf की जांच करने के बाद मुझे उपयोग करने की आवश्यकता है

sudo sysctl -w net.ipv6.conf.default.autoconf=0

3

sysctlसमाधान उबंटू 18.04 बायोनिक पर हमारे लिए काम नहीं किया। हमने इसे हल किया:

संपादन /etc/netplan/01-netcfg.yaml, कॉन्फ़िगर करें:

network:
  ...
  ethernets:
    eth0:
      ...
      dhcp6: no
      accept-ra: no

आपको इसके बजाय अपने इंटरफ़ेस नाम का उपयोग करने की आवश्यकता हो सकती है eth0। फ़ाइल के निष्पादन को सहेजने के बाद:

netplan apply या reboot

यदि आपको पहले से ही ऑटोकॉन्फ़िगरेशन से एक आईपीवी 6 आईपी मिला है और आप इसे रिबूट किए बिना निकालना चाहते हैं, तो आप इसे निष्पादित कर सकते हैं:

ip -6 addr del 1111:2222:1:0:aaaa:bbbb:cccc:dddd/64 dev eth0 

बेशक आपको इस कमांड में आईपी और डिवाइस को बदलने की आवश्यकता है।


इसने कुछ ही महीनों के लिए इस दिन मेरा सिर
खुजलाया

2
मैं आमतौर पर Google को केवल तब तक खरोंचता हूं जब तक कि मैं इसे ढूंढ नहीं लेता।
जेरोइन वर्म्यूलेन - मैजहोस्ट

1
जब मैंने इसे आज़माया तो यह काम कर रहा था, लेकिन समस्या स्वीकार करना बंद कर रही है, जैसा कि मार्क एस द्वारा उल्लेखित है, यह काफी खतरनाक है - यह काम करता हुआ प्रतीत होता है, लेकिन बाद में आपको पता चल सकता है कि आपको पैकेट गायब हैं क्योंकि उन्होंने एक विखंडन बिंदु या एक विफल राऊटर मारा था प्रयोग किया जाता है। साथ ही यह पिंग्स को तोड़ता है। जिस कारण से मैं यह करने की कोशिश कर रहा था वह निवर्तमान मेल में अपने एसपीएफ़ रिकॉर्ड से मज़बूती से मेल खा रहा था, लेकिन तब मुझे महसूस हुआ कि मुझे रिकॉर्ड में एक नेटमास्क का उपयोग करना चाहिए था क्योंकि आईपीवी 6 में कई पते प्रभावी रूप से एक मशीन के होते हैं, एक भी पते का नहीं। ।
फिल मैकक्रेचर

2

Ubuntu 18 और ipv6 के साथ समस्या यह है कि systemd-networkd कर्नेल मापदंडों को नियंत्रित करता है, इसलिए यदि कोई sysctl के साथ ipv6 को अक्षम कर सकता है, तो कॉन्फ़िगरेशन आपके लिए उन पर स्विच करने से अधिक खुश होगा, यदि कॉन्फ़िगरेशन अन्यथा राज्य नहीं करता है।

IPv6 को निष्क्रिय करने का मेरा समाधान नेटप्लान में लिंक-लोकल को एक खाली स्केलर में कॉन्फ़िगर करना है (बशर्ते आपके पास कोई लिंक-लोकल आईपीवी 4 आईपी न हो)

network:
     version: 2
     renderer: networkd
     ethernets:
     eth0:
        ..
        link-local: [ ]

कॉन्फ़िगरेशन नेटवर्क के लिए कॉन्फ़िगरेशन संकलित करेगा जो /run/systemd/network/10-netplan-eth0.network में पोस्ट किया जाएगा और जो नेटवर्क को eth0 के लिए ipv6 नहीं लगाने के लिए मनाएगा

यदि आप ipv6 को लूपबैक पर भी अक्षम करना चाहते हैं, तो इसे कर्नेल पैरामीटर net.ipv6.conf.all.disable_ipv6 से 1 पर सेट करके आसानी से प्राप्त किया जा सकता है। नेटवर्क लूपबैक पर नियंत्रण नहीं करता है।

sysctl -w net.ipv6.conf.all.disable_ipv6=1

मैं वास्तव में आपके बहुत साफ समाधान पसंद करता हूं। जैसा कि हम लिंक-स्थानीय पते का उपयोग नहीं करते हैं, खाली स्केलर को सही समाधान जोड़ते हैं। इसके बाद, हमें सर्वर को रिबूट करना पड़ा क्योंकि नेटप्लेन लागू ने हमारे दोनों ईथरनेट इंटरफेस पर पहले से ही असाइन किए गए IPv6 पते रखे। लेकिन रिबूट के बाद, सब कुछ ठीक वैसे ही काम करता है जैसे आपने कहा था। मुझे नहीं लगता कि लूपबैक इंटरफ़ेस पर IPv6 को अक्षम करने से परेशान होने का एक कारण है, इसलिए मैंने बस sysctl भाग को छोड़ दिया। धन्यवाद!
ज़ोल्टन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.