arp --delete एक प्रविष्टि को हटा नहीं रहा है; केवल "अपूर्ण" के रूप में प्रविष्टि दर्ज करें


10
$ sudo arp -avn
? (10.10.7.30) at 00:cc:cc:bb:dd:86 [ether] on eth0
...

$ sudo arp --delete 10.10.7.30

$ sudo arp -avn
? (10.10.7.30) at <incomplete> [ether] on eth0

के बाद --deleteमैं के लिए कोई प्रविष्टि की उम्मीद है 10.10.7.30। अप्रत्याशित रूप से, प्रविष्टि बनी हुई है और चिह्नित है <incomplete>

Ubuntu 10.04 का उपयोग करना ।

जवाबों:


10

प्रविष्टि हटा दी जाएगी, बस धैर्य रखें।

(यदि आप सबसे कम संभव उत्तर चाहते हैं: अपूर्ण == हटा दिया गया)

मान लें कि "हटाना" कार्रवाई के लिए गलत शब्द है। यहां वास्तव में क्या हो रहा है कि प्रविष्टि मैन्युअल रूप से राज्य में "अनुरोध भेजा, कोई जवाब नहीं" (इस प्रकार "अपूर्ण" एआरपी प्रक्रिया) के रूप में सेट है जैसे कि मशीन वास्तव में पहुंच से बाहर होगी।

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

लेकिन ध्यान रखें कि हम कैश की बात कर रहे हैं। कैश से चीजें हटाना कठिन और महंगा है। यह एक प्रविष्टि को अमान्य करने के लिए और अधिक कुशल है और अगर इसे अंतिम रूप से हटाए जाने से पहले इसे बदल दिया जाता है तो प्रतीक्षा करें। लेकिन सिस्टम के लिए यह पूरी तरह से कोई अंतर नहीं है यदि प्रविष्टि सूची से चली गई है या बस अपूर्ण के रूप में चिह्नित है।


और वास्तव में इसे हटाने का कोई तरीका नहीं है ताकि गंतव्य को जानने के लिए बाद में "नई" एआरपी क्वेरी को ट्रिगर करना पड़े?
स्कैपरन

1
लेकिन वास्तव में यहाँ ऐसा ही है। यदि कुछ भी एक प्रविष्टि दिखता है जो "अपूर्ण" के रूप में चिह्नित है, तो एक नया एआरपी अनुरोध भेजा जाता है। यदि इसका उत्तर दिया जाता है, तो प्रविष्टि अद्यतन की जाती है और "अधूरी" नहीं रह जाती है। यदि कोई उत्तर नहीं देता है, तो प्रविष्टि को कुछ समय बाद सूची से हटा दिया जाता है। (यही कारण है कि मुझे लगता है कि मैन्युअल रूप से एक प्रविष्टि "--delete" के लिए यह बहुत बेकार है। यदि मशीन रहती है, तो प्रविष्टि ताज़ा हो जाएगी। यदि यह वास्तव में चला गया है, तो क्यों - "--delete" मैन्युअल रूप से प्रवेश वैसे भी?)
कर्म Fusebox

... यह मेरे दिमाग में आता है कि आप आईपी पते के लिए एआरपी पते को "बदल" सकते हैं। इस विशेष मामले में आप मैन्युअल रूप से "--delete" कर सकते हैं और अगले एआरपी अनुरोध को नया पता वापस कर सकते हैं। लेकिन इस परिदृश्य के लिए, यह बिल्कुल भी मायने नहीं रखता है यदि प्रविष्टि को सूची से हटा दिया गया है या "अपूर्ण" चिह्नित किया गया है। शामिल तकनीक के लिए, यह समान है।
कर्मा फुसेबॉक्स

@ कर्माफसोबॉक्स क्या आप जानते हैं कि यह कैश कहां मौजूद है? यह प्रक्रिया स्मृति में है? यदि हां, तो कौन सी प्रक्रिया? या यह कर्नेल द्वारा बनाए रखा जाता है? डिस्क पर एक फ़ाइल में? कहीं और?
जेम्सथोमसून

@ कर्मफ्यूस्कोक्स एक प्रविष्टि को हटाने से समझ में आता है कि क्या प्रविष्टियाँ मैन्युअल रूप से जोड़ी गई थीं (और इसलिए स्थायी ध्वज सेट है)
cha5on

7

बस अन्य सभी उत्तरों को पूरक करने के लिए, मैंने इस लिंक को बहुत उपयोगी पाया

कुछ मामलों में ip, कमांड की तरह उपयोग करना अधिक उचित है:

# ip -s -s neigh flush all

परिणाम आपके लिनक्स कर्नेल पर निर्भर हो सकते हैं।


इसने मेरे लिए पूरी तरह से काम किया। जो कोई भी अन्य प्रतिक्रियाओं से परेशान है, उसे प्रयास करना चाहिए।
जैकगु

3

अन्य ठीक जवाबों के अलावा, यह उल्लेख के लायक है कि इसे हटाने से आर्क कैश को पूरी तरह से ideicate करना संभव है। कम दर्दनाक तरीकों में से एक है:

ip link set arp off dev eth0 ; ip link set arp on dev eth0

यह सभी प्रविष्टियों को हटा देना चाहिए, वे जिस भी स्थिति में हों।

वैकल्पिक तरीकों में इंटरफ़ेस को डाउन करना और अपरिपक्व करना और इसी तरह से arp cache को पूरी तरह से हटाकर फिर से बनाना शामिल है।


1
यह सही जवाब है। मुझे इसकी बिल्कुल जरूरत थी। सिर्फ "अपूर्ण" या "थोड़ी देर के लिए नहीं पहुँचा गया" के लिए कुछ प्रविष्टि को चिह्नित करना। धन्यवाद।
जॉन हैमिल्टन

0

मुझे पता है कि यह स्पष्ट लग सकता है, लेकिन, शेल के साथ काम नहीं करने वालों के लिए, यह मेरा सुझाव है:

@ कर्मफल के जवाब से शुरू करते हुए, बस नतीजों को क्यों टालना ...? :

arp -a | grep "incomplet" -i -v

यह आपको केवल मौजूदा / सक्रिय कैश प्रविष्टियों को दिखाएगा।
मुझे लगता है कि यह एक POSIX आज्ञाकारी आज्ञा है। और यह एक शास्त्र सम्मत विधि है, यदि आपको इसकी आवश्यकता है।


मैं एक उचित स्पष्टीकरण की तलाश कर रहा हूं कि arpइस तरह से व्यवहार क्यों किया जाता है। यह अजीब लगता है। स्पर्शरेखा, प्रविष्टियों arpको हटाने के लिए मजबूर किया जा सकता है <incomplete>?
जेम्सथोमसून

खैर, @ JamesThomasMoon1979, मैं यह कहना चाहूंगा कि सिस्टम पर ऐसा व्यवहार नहीं लगता है (यानी: विंडोज कंसोल), वे वास्तव में हैं। एकमात्र अंतर यह है कि वे incompletearp cache list कमांड पर प्रविष्टियाँ नहीं दिखाते हैं।
शोपाजो डे एरिएरेस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.