मजेदार सवाल। मूल रूप से, यदि आपके पास एक ही LAN पर दो DHCP सर्वर हैं, तो पते को हटाने के लिए एक दौड़ होगी, और आप यह सुनिश्चित नहीं कर सकते कि कौन जीतता है: आप रास्पबेरी द्वारा दिए गए कुछ पते, कुछ एपी द्वारा, और एक के साथ समाप्त हो सकते हैं एकल उपकरण, एक बार डिस्कनेक्ट हो जाने के बाद, पहले जैसा ही पता दोबारा नहीं। या, इससे भी बदतर, आपके पास एक ही पते वाले दो डिवाइस हो सकते हैं।
इसलिए दोनों में से किसी एक को ब्लॉक करना एक अच्छा विचार है। सबसे आसान बात निम्नलिखित है:
पहले, सुनिश्चित करें कि वे सीमाएं जिनसे वे पते खींचते हैं, ओवरलैप नहीं करते हैं : आपके पास एक के लिए 192.168.1.11-74, दूसरे के लिए 192.168.1.139-202 हो सकता है। कम से कम, यह टकराव को रोकता है।
अब हम एपी को वायर्ड ग्राहकों को आईपी पते परोसने से रोकते हैं। मान लीजिए कि एपी को eth1 पर रास्पबेरी में प्लग किया गया है , तो निम्न कमांड करेगा:
sudo iptables -A INPUT -i eth1 -p udp --dport 67:68 --sport 67:68 -j DROP
sudo iptables -A OUTPUT -i eth1 -p udp --dport 67:68 --sport 67:68 -j DROP
हमारा हो गया। दो टिप्पणियाँ:
डीएचडीपी प्रोटोकॉल 67 पर पोर्ट 67 और 68 का उपयोग करता है; इन पर संचार अवरुद्ध करके, आप एपीसीपी सर्वर को एपीसी पर डीएचसीपी सर्वर तक पहुंचने से डीएचसीपी अनुरोधों को रोक रहे हैं; इस प्रकार वायर्ड क्लाइंट केवल रास्पबेरी द्वारा परोसे जाएंगे।
दूसरा, आपको एपी को सीधे रास्पबेरी में प्लग करना होगा (मुझे पता है कि रास्पबेरी में केवल एक ईथरनेट पोर्ट होता है, जो पहले से ही उपयोग किया जाता है: आप एक यूएसबी-टू-ईथरनेट एडाप्टर खरीद सकते हैं, और आपके रास्पबेरी में दूसरा ईथरनेट कार्ड होगा)। कारण यह है कि यदि आप एपी को एक स्विच में प्लग करते हैं, तो डीएचसीपी अनुरोध और उत्तर एपी से पहुंचेंगे / रास्पबेरी के माध्यम से गुजरने के बिना, इस प्रकार iptables कमांड बेकार हो जाएगा।
संपादित करें:
मैं यह कहना भूल गया कि ऊपर का iptables नियम भी dhcp अनुरोधों को AP से रास्पबेरी में जाने से रोकता है, ताकि आपके पास अब स्थिति यह हो कि DHCP पता 192.168.1.0xx में रास्पबेरी द्वारा वायर्ड क्लाइंट को दिया जाए, जबकि रेंज में पते 192.168.1.1xx एपी द्वारा वाईफाई ग्राहकों को दिए गए हैं। कम से कम, यह अर्दली है।