web-dev-qa-db-ja.com

同じネットワークで2つのDHCPサーバーを実行する

Raspberry Piをワイヤレスアクセスポイントに接続し、RPiでDHCPサーバーを実行して、IPとゲートウェイを正しく割り当てたいと考えています。これは、RPiがVPNへのゲートウェイとして機能するためです。残念ながら、アクセスポイントはDHCPサーバーも実行しており、何らかの理由で非アクティブ化できません。 RPiスプレッドからすべてのwifiユーザーに正しい設定を自動的に取得する最良の方法は何ですか?

9
bonanza

楽しい質問です。基本的に、同じLANに2つのDHCPサーバーがある場合、アドレスを振り分けるための競争があり、誰が勝つか確信が持てません。ラズベリーによって提供されるアドレス、APによって提供されるアドレス、および切断された単一のデバイスは、以前と同じアドレスを再取得しません。または、さらに悪いことに、同じアドレスを持つ2つのデバイスがある可能性があります。

したがって、2つのうちの1つをブロックすることをお勧めします。最も簡単な方法は次のとおりです。

  1. まず、それらがアドレスを取得する範囲を確認します重複しないでください:1つは192.168.1.11-74、もう1つは192.168.1.139-202になる可能性があります。少なくとも、これは衝突を防ぎます。

  2. 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クライアントに提供されます。少なくとも、これは整然としている。

13
MariusMatutiae