इंटरफ़ेस से जुड़े अप्रयुक्त आईपी पते को उस पते से असंबंधित क्यों हटाया जाता है


35

कल मैंने डेटासेंटर में एक (भौतिक) सर्वर का त्वरित इंस्टॉलेशन किया, और चूंकि मैं समय पर छोटा था और हमारे डेटाबेस तक कोई आसान पहुंच नहीं होने के कारण मैंने इसे केवल एक आईपी सौंपा था जो मुझे पता था कि मैं उपलब्ध था और मुझे बाद में असाइन करने की अनुमति देगा सही पता और एक गर्म जगह से प्रावधान जारी रखें।

आज मैंने सर्वर पर लॉग इन किया (172.16.130.10/22 पर) और निम्न कार्य किया:

ip addr add 172.16.128.67/22 dev eth0

अपने स्थानीय कार्य केंद्र पर एक टर्मिनल से मैंने इसे नए पते पर पिंग का जवाब दिया और इसके माध्यम से लॉग इन किया:

$ ping 172.16.128.67
PING 172.16.128.67 (172.16.128.67) 56(84) bytes of data.
64 bytes from 172.16.128.67: icmp_req=2 ttl=62 time=3.61 ms
64 bytes from 172.16.128.67: icmp_req=3 ttl=62 time=4.87 ms
^C
$ ssh 172.16.128.67

अब तक अच्छा, मैं नए आईपी पते के माध्यम से जुड़ा हुआ था और पुराना अब जरूरी नहीं था। मैंने आगे बढ़कर उसे हटा दिया:

ip addr del 172.16.130.10/22 dev eth0

लेकिन जैसे ही मैंने Enterअपने एसएसएच सत्र में भाग लिया और मैं अब कनेक्ट नहीं कर पा रहा था। मुझे मेरे लिए सर्वर को रिबूट करने के लिए एक ऑन-साइट ऑपरेटर से अनुरोध करना पड़ा।

मुझसे कहां गलती हो गई? उस पते को हटाने से मेरे कनेक्शन की हत्या क्यों होगी?


2
मैथ्यूज उत्कृष्ट उत्तर के अलावा: कई यूनिक्स (और यूनिक्स-जैसे) सिस्टम में बाध्य आईपी-एड्रेस (एस) में कोई भी बदलाव उस इंटरफ़ेस के सभी खुले सत्रों (यहां तक ​​कि किसी अन्य पते का उपयोग करने वाले) को संक्षेप में डिस्कनेक्ट कर देगा। ताकि आप अपने SSH सत्र से बाहर हो जाएं, लेकिन आप उस स्थिति में तुरंत पुन: कनेक्ट कर सकते हैं।
टॉनी

मेरा मानना ​​है कि यह समस्या केवल IPv4 के साथ मौजूद है। मुझे नहीं लगता कि अगर आप IPv6 का उपयोग कर रहे होते तो ऐसा होता।
कैस्परल्ड

जवाबों:


53

लिनक्स में, आईपी एड्रेस में 'प्राइमरी' और 'सेकेंडरी' एड्रेस की धारणा होती है। प्राथमिक आमतौर पर आपके द्वारा सिस्टम में जोड़ा जाने वाला पहला पता होता है। प्राथमिक पते को हटाने से द्वितीयक पते की पूरी सूची को फ्लश करने का निहितार्थ भी होता है।

आप net.ipv4.conf.all.promote_secondaries1 से sysctl को सेट करके इस व्यवहार से बच सकते हैं :

sysctl -w net.ipv4.conf.all.promote_secondaries=1

यह व्यवहार में बदलाव करता है जैसे कि जब एक प्राथमिक आईपी को हटा दिया जाता है, तो यह शेष पतों को फ्लश नहीं करेगा और इसके बजाय प्राथमिक के रूप में एक नए आईपी पते को बढ़ावा देगा।


6
धन्यवाद! मैं बस इस के रूप में अच्छी तरह से आया :An IP address becomes secondary if another address within the same prefix (network) already exists. The first address within the prefix is primary and is the tag address for the group of all the secondary addresses. When the primary address is deleted all of the secondaries are purged too.
GnP
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.