उबंटू लिनक्स - कई एनआईसी, एक ही लैन ... एआरपी प्रतिक्रियाएं हमेशा एक एकल एनआईसी बाहर जाती हैं


16

हमें एटी एंड टी यू-वर्स इंटरनेट सेवा मिली है, जिसमें एक अत्यंत अस्थि-पंजर डीएसएल प्रवेश द्वार है।

हमारे पास 5 आईपी (नेटमैस्क 248) हैं, लेकिन गेटवे एकल आईपी -> सिंगल मैक एड्रेस मैपिंग के अलावा कुछ भी करने में असमर्थ है।

हमारे पास एक एकल फ़ायरवॉल मशीन है, और हम DMZ के अंदर अलग-अलग स्थानों पर अलग-अलग आईपी / पोर्ट कॉम्बो को पुनर्निर्देशित करते हैं।

अब तक का हमारा समाधान है कि 4 अतिरिक्त NIC के साथ फ़ायरवॉल पर VMWare वर्चुअल मशीन हो, ताकि अन्य 4 IP पते मिल सकें ... हालाँकि हमें एक समस्या है।

गेटवे मूल रूप से एआरपी पिंग कर रहा है यह देखने के लिए कि आईपी अपेक्षित मैक पर जवाब दे रहा है या नहीं। एक ही लैन पर सभी 4 एनआईसी के साथ, लिनक्स एक ही इंटरफ़ेस का उपयोग करके सभी आईपी के लिए एआरपी अनुरोधों का जवाब दे रहा है। कि गेटवे की उम्मीद नहीं है, और यह 3 अन्य एनआईसी को गड़बड़ कर रहा है। गेटवे IP के लिए आने वाले ट्रैफ़िक को रूट करने से मना करता है जहाँ ARP पिंग परिणाम अपेक्षित MAC नहीं हैं।

हम eth0 के IP के लिए ARP उत्तर कैसे प्राप्त कर सकते हैं बाहर जाने के लिए eth0, eth1 का IP से बाहर जाने के लिए eth1 इत्यादि?

संपादित करें

क्रिस्टोफर काशेल की प्रतिक्रिया इस स्थिति में काम नहीं करती है। मुझे इसे पढ़ने की बहुत उम्मीद थी, लेकिन ... नहीं।

EDIT 2

हल किया! नीचे मेरा जवाब देखें।


पुनश्च - कोई 'ड्रॉप uverse' टिप्पणी ... U- पद्य 18mbps है, बनाम सब कुछ 3mbps या केबल के माध्यम से बहुत अविश्वसनीय 10mbps
darron

@ डब्लैक: आप अपना उत्तर जोड़ना भूल गए :)
मिहाई लिम्बासन

Api.recaptcha.net साइट थोड़ी देर के लिए नीचे थी। जवाब अब ऊपर है।
डार्रॉन

जवाबों:


13

आपका चुना हुआ समाधान काम करता है, लेकिन ऐसे विकल्प हैं जिनमें शामिल नहीं हैं। (क्रिस्टोफर काशेल मूल रूप से सही रास्ते पर था, लेकिन वह एक स्माइली से बंद था।)

संक्षेप में, आप इन मापदंडों को निर्धारित करना चाहते हैं:

net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2

आधुनिक, 2.6 श्रृंखला लिनक्स कर्नेल चलाते समय ये उपलब्ध होने चाहिए। जाँच करें और सुनिश्चित करें कि आपके सिस्टम पर '/ proc / sys / net / ipv4 / conf / / arp_announce' और / proc / sys / net / ipv4 / conf / / arp_ignore 'मौजूद हैं।

'Arp_filter' पैरामीटर केवल तभी काम करता है जब आपके विभिन्न आईपी पते एक लैन सेगमेंट साझा करते हैं, लेकिन विभिन्न आईपी सबनेट का उपयोग करते हैं। यदि वे IP सबनेट साझा करते हैं, तो भी, आपको ऊपर दिए गए 'arp_ignore' और 'arp_announce' का उपयोग करने की आवश्यकता है।

(मेरा मानना ​​है कि आपको 'arp_filter' को '0' पर भी सेट करना पड़ सकता है।)


क्या हुआ arp_filter? यह ARP समस्या का एक प्रारंभिक (2003?) समाधान था, लेकिन यह वर्णित के रूप में काम नहीं करता है, कम से कम Centos 5 पर। arp_ignore और arp_announce अच्छे लगते हैं।
शैक्षिक शैक्षणिक

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

8

ठीक है, यहाँ समाधान है। सबसे पहले, एक पुनर्कथन:

यहाँ मेरा मूल नेटवर्क प्लान है:

 eth0 10.10.10.2 netmask 255.255.255.248
 eth1 10.10.10.3 netmask 255.255.255.248
 eth2 10.10.10.4 netmask 255.255.255.248
 eth3 10.10.10.5 netmask 255.255.255.248

सभी इंटरफेस ओवरलैप होते हैं। यह तकनीकी रूप से गलत है, और मेरे सभी संकटों का स्रोत है ... लेकिन मुझे यह इस गूंगे आवासीय द्वार के कारण करना होगा।

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

1) आर्कप्टेबल स्थापित करें । बूट के दौरान इसे कहीं जोड़ें ( /etc/rc.local यहां):

arptables -F INPUT
arptables -A INPUT -i eth0 --destination-ip ! 10.10.10.2 -j DROP
arptables -A INPUT -i eth1 --destination-ip ! 10.10.10.3 -j DROP
arptables -A INPUT -i eth2 --destination-ip ! 10.10.10.4 -j DROP
arptables -A INPUT -i eth3 --destination-ip ! 10.10.10.5 -j DROP

यह प्रसारण को गलत इंटरफ़ेस में जाने से रोक देगा। तो, सही इंटरफ़ेस अब केवल उत्तरदाता होगा।

वह अपने आप में पर्याप्त नहीं है। अगले बिट एक ARP तालिका समस्या है। अनुरोध करने वाले पीसी में संभवतः पहले से ही एक ARP तालिका प्रविष्टि है, और इसलिए लिनक्स यह उस से जुड़े इंटरफ़ेस का उपयोग करने जा रहा है। जब तक ARP तालिका प्रविष्टि समाप्त नहीं हो जाती, तब तक वह ARP अनुरोधों से संबद्ध नहीं, बल्कि उस प्रविष्टि के इंटरफ़ेस का उपयोग करके ARP प्रतिक्रियाएं भेजने का प्रयास करने वाला है।

यदि गलत इंटरफ़ेस पर हैं तो sysctl विकल्प rp_filter आउटगोइंग ARP रिस्पॉन्स पैकेट को अस्वीकार करता है। इसलिए...

2) rp_filter अक्षम करें ।

डेबियन / उबंटू पर, इसका मतलब है कि /etc/sysctl.d/10/10-network-security.conf में दो rp_filter लाइनों पर टिप्पणी करना ।

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

अगर मैं एक और इंटरफ़ेस जोड़ता हूं और स्पूफिंग सुरक्षा की आवश्यकता होती है, तो संभवत: एक ही काम करने के लिए कुछ arptables / iptables प्रविष्टियों को शिल्प कर सकता है।


5

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

समाधान एक sysctl विकल्प है। जैसा कि मुझे याद है, आप जो देख रहे हैं वह है:

net.ipv4.conf.default.arp_filter=1
net.ipv4.conf.all.arp_filter=1

जो आपके लिए समस्या को ठीक करेगा। बस उन लोगों को /etc/sysctl.conf में जोड़ें और ' sysctl -p' चलाएं (या प्रत्येक पंक्ति को ' sysctl -w' के तर्क के रूप में चलाएं )।

यह लिनक्स को केवल इंटरफ़ेस पर एआरपी अनुरोधों का जवाब देने का कारण होगा जो एक आईपी पता वास्तव में सौंपा गया है।


हम्म ... दुर्भाग्य से यह काम नहीं करता है। मैंने sysctl.conf में चिपकाया है, sysctl भागा, यहां तक ​​कि रिबूट किया गया, कोई बदलाव नहीं हुआ। मैं विकल्प खरीद सकता हूं / खरीद सकता हूं और देख सकता हूं कि वे सेट हैं, लेकिन अगर मैं दूसरे बॉक्स से आऊंगा, तो सभी प्रतिक्रियाएं एक ही मैक से आती हैं। इंटरफेस सभी एक ही नेटवर्क (एक ही प्रसारण, आदि) पर हैं ...
darron

1
यह सही समाधान है यदि इंटरफेस एक ही नेटवर्क पर हैं, लेकिन अलग-अलग सबनेट में पते हैं। काम करने की पुष्टि की।
एलिस्टर इरविन

1

इस के साथ संयोजन में स्वीकार किए जाते हैं जवाब: http://www.linuxquestions.org/questions/linux-networking-3/multiple-interfaces-all-traffic-flows-through-just-one-538701/

जहां स्थिर मार्गों का उपयोग कुछ निश्चित इंटरफेस पर केवल वांछित आईपी के साथ संवाद करने के लिए किया जाता है, एक समान समस्या का शक्तिशाली और सरल समाधान मैंने बनाया है।


0

क्या आप प्रवेश द्वार को पाट सकते हैं और फ़ायरवॉल को आईपी संभाल सकते हैं?


जहां तक ​​मैं इसे समझता हूं, नहीं ... लेकिन अगर कोई गलत है तो कृपया मुझे सही करें।
डार्रोन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.