लिनक्स में आईपी कमांड के साथ आईपी निकालें


12

अगर मैं इस तरह दो आईपी जोड़ूँ:

ip addr add 1.1.1.1/24 dev eth2
ip addr add 1.1.1.2/24 dev eth2

और फिर मैं इस तरह से एक को हटाने की कोशिश करता हूं:

ip addr del 1.1.1.2/24 dev eth2

दोनों IP हटा दिए जाएंगे और मुझे नहीं पता कि इसे कैसे संभालना है।

किसी को पता है कि इसे कैसे हल करना है?


आपकी आवश्यकता स्पष्ट नहीं है। क्या आप बता सकते हैं कि यहाँ अपेक्षित उत्पादन क्या है?
गुरु

मुझे कहने की ज़रूरत है कि आईपी केवल एक आईपी को हटाने के लिए नहीं है
एचएमएल जेएम

कृपया ip addr showआउटपुट जोड़ें
गेविअल

जवाबों:


10

डिफ़ॉल्ट रूप से प्राथमिक आईपी पते को हटाना, डिफ़ॉल्ट रूप से, एक ही सबनेट पर अन्य सभी पते को हटा दें।

यह एक REHL बग 1136733 का जवाब है जो उस यूजर लेन द्वारा रिपोर्ट किया गया है जिसने 12-मार्च -13 को उत्तर दिया था ...

आप एक ही सबनेट में कई पते जोड़ रहे हैं, इस प्रकार दूसरे और बाद वाले दूसरे व्यक्ति बन जाते हैं। यह "आईपी एड्र शो" आउटपुट में देखा जा सकता है, उन पतों के बगल में "सेकेंडरी" कीवर्ड पर ध्यान दें।

डिफ़ॉल्ट रूप से, प्राथमिक पता हटाते समय, कर्नेल सभी संबंधित दूसरी चीज़ों को भी हटा देता है।

यदि आप चाहते हैं कि द्वितीयक में से एक को प्राथमिक विलोपन पर एक नया प्राथमिक बनने के लिए पदोन्नत किया जाए, तो net.ipv4.conf.eth9.promote_secondaries sysctl सेट करें।


sudo systemctl net.ipv4.conf.eth0.promote_secondariesअज्ञात ऑपरेशन net.ipv4.conf.eth0.promote_secondaries।
लेरिक्स डेसीडुआ

@LaryxDecidua systemctl sysctl
yahol

7

ऐसा तब होता है क्योंकि जब आप हटाते हैं तो आप / 24 नेटवर्क मास्क का उपयोग करते हैं। यह आपको इनपुट पता करने के लिए लगाया जाता है। निम्नलिखित आज़माएँ:

ip addr del 1.1.1.2/32 dev eth2

/ 32 मास्क ठीक एक मेजबान को परिभाषित करता है।


यह काम नहीं करता है क्योंकि मैंने सिस्टम / 24 नेटमास्क नहीं / 32 दिया है।
JML

बिना ip addr del 1.1.1.2 dev eth2
नेटमस्क के

फिर से यह दोनों आईपी हटाएं !!
जेएमएल

अजीब। मेरे परीक्षण पर बिना नेटमास्क के सेंटोस बॉक्स हटाना सफल रहा। हालाँकि / 24 के साथ डिलीट करने से भी केवल एक ही पता प्रभावित होता है। आप किस डिस्ट्रो का उपयोग कर रहे हैं?
गेवियल

1
मैं Ubuntu 12.04 का उपयोग कर रहा हूँ
HML JML

2

मेरे पास इसे जांचने के लिए एक eth2 नहीं है, लेकिन यह eth0 पर सही तरीके से काम करता है और मुझे कोई कारण नहीं दिखता है कि eth2 जादुई होना चाहिए। मुझे लगता है कि आप उपयोग कर रहे हैं ip addr show dev eth2जैसा ifconfig eth2कि आईपी द्वारा जोड़े गए अतिरिक्त पतों को दिखाने के लिए प्रकट नहीं होता है।

एक बात जो मैंने गौर की है, वह यह है कि आप जो पते बनाते / हटाते हैं वह क्रम महत्वपूर्ण है। यदि प्राथमिक पता हटा दिया जाता है, तो उसी नेटवर्क के भीतर जोड़े गए दूसरे और बाद के पते हटा दिए जाएंगे। विचार करें ...

    inet 1.1.1.1/24 scope global eth0
    inet 1.1.2.3/24 scope global eth0
    inet 1.1.1.2/24 scope global secondary eth0
    inet 1.1.1.3/24 scope global secondary eth0

यदि आप 1.1.1.1 हटाते हैं तो 1.2 और 1.3 पते भी हटा दिए जाएंगे। यदि आप कोई अन्य पता हटाते हैं तो केवल उस पते को हटा दिया जाएगा।


तो, मैं दूसरों को हटाए बिना पहला पता कैसे हटा सकता हूं?
JML

0

मैं निम्नलिखित कोशिश करूँगा:

आईपी ​​एड्र डेल 1.1.1.2 देव एथ 2


0

@Bvs का जवाब वास्तव में इस समस्या का सही दिशा में इशारा किया और मेरे लिए इसे हल। यहाँ, सटीक कमांड पर कुछ विवरण हैं। जैसा कि कई डिफ़ॉल्ट इंटरफ़ेस है eth0, मैं इसे निम्नलिखित कमांड में ले रहा हूं, जिसे eth2मूल प्रश्न के लिए प्रतिस्थापित करना होगा ।

एक अस्थायी समाधान के लिए (रिबूट तक) का उपयोग करें

sudo sysctl -w net.ipv4.conf.eth0.promote_secondaries=1

एक स्थायी समाधान के लिए जो रिबूट के बाद बनी रहती है , निम्नलिखित सामग्री के साथ एक फ़ाइल /etc/sysctl.d/ip-promote.conf(या अन्य फ़ाइल नाम के साथ समाप्त .conf) बनाते हैं :

# The following makes that a second IP on the eth0 interface
# is promoted as primary IP instead of being removed.
net.ipv4.conf.eth0.promote_secondaries=1
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.