回答:
楽しい質問。基本的に、同じLANに2つのDHCPサーバーがある場合、アドレスを振り分けるための競争が発生し、誰が勝つか確信が持てません。ラズベリーによって提供されるアドレス、APによって提供されるアドレス、および切断された単一のデバイスは、以前と同じアドレスを再取得しません。または、さらに悪いことに、同じアドレスを持つ2つのデバイスがある可能性があります。
したがって、2つのうちの1つをブロックすることをお勧めします。最も簡単な方法は次のとおりです。
最初に、それらがアドレスを描画する範囲が重複しないことを確認します。一方には192.168.1.11-74、もう一方には192.168.1.139-202がある場合があります。少なくとも、これは衝突を防ぎます。
APが有線クライアントにIPアドレスを提供するのを防ぎます。APが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
終わりました。2つのコメント:
DHCPはプロトコルUDPでポート67と68を使用します。これらの通信をブロックすることで、有線クライアントからのDHCP要求がAPのDHCPサーバーに到達するのを防ぎます。したがって、有線クライアントはラズベリーによってのみ提供されます。
次に、APをラズベリーに直接接続する必要があります(ラズベリーにはすでに使用されているイーサネットポートが1つしかないことがわかっています。USB-to-Ethernetアダプターを購入すると、ラズベリーに2つ目のイーサネットカードが装着されます)。その理由は、APをスイッチに接続した場合、DHCP要求と応答は、ラズベリーを経由せずにAPから届く/届くため、iptablesコマンドが役に立たなくなるためです。
編集:
上記のiptablesルールはdhcpリクエストがAPからラズベリーに流れるのを防ぐことを忘れていたので、現在の状況では、範囲192.168.1.0xxのDHCPアドレスがラズベリーによって有線クライアントに与えられている一方で、 192.168.1.1xxの範囲のアドレスは、APによってwifiクライアントに提供されます。少なくとも、これは整然としている。