0

私はudhcpdに取り組んでいます。これは、ビジー ボックスが付属する軽量の dhcp サーバーです。

いくつかのコード変更を行い、udhcpd を実行するために必要なものをテストし、クライアントから (IP を取得するために) 要求を送信し、その応答を表示します。

これには複数のマシンが必要であり、私にとって適切なオプションは、複数の仮想ボックス VM を使用することでした。

2 つの Linux VM を使用しました (udhcpd を実行するための Fedora と、udhcpc を実行するための ubuntu - dhcp 要求を生成するためのビジー ボックスが付属するクライアント)。

現在、仮想ボックスには複数のネットワーク モードがあります。私はそれらすべてを試しました。最も単純な NAT を使用すると、vm は構成なしで Windows インターネットを使用できます。

ホストのみ、内部ネットワークなど、さまざまなタイプの仮想ボックス カードを試し、udhcpd である fedora に 192.168.0.1 アドレスを割り当て、udhcpc クライアントから dhcp 検出要求を送信しました。

両方とも同じインターフェイス、つまり eth0 上にあり、dhcp 検出の 0.0.0.0 から 255.255.255.255 へのブロードキャスト要求を確認できます。しかし、udhcpd - dhcp サーバーは、決して要求を受信して​​応答しません

また、最初に dhcp クライアント、つまり 192.168.0.2 に IP を割り当ててみました。

しかし一向に返事が来ない。

仮想ボックス所有のdhcpサーバーが実行されているNATまたは別のモードを使用する場合、dhcpディスカバーに応答するのはそのサーバーであり、それでもビジーボックスからの私のudhcpdはパケットを選択しません。

udhcpdサーバーのサブネットマスクと関係があると思います。

誰でも何か考えがありますか?

4

1 に答える 1

0

悪いことに、fedora VM (ip テーブル) のファイアウォールがデフォルトで着信接続をブロックしていました。

これを許可する方法は次のとおりです。

/etc/sysconfig/iptables を開いて編集する

vi /etc/sysconfig/iptables

次のようなエントリがいくつかあります。

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5800 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5900 -j ACCEPT

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6000 -j ACCEPT

次のように、dhcp ポートのエントリを追加しました。

-A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 67 -j ACCEPT

ファイルを保存して閉じます。iptables を再起動します。

service iptables restart

ubuntu または debian ベースの Linux ディストリビューションではコマンドが異なることに注意してください。これらのプラットフォームでは IP テーブルがサービスとして実行されない可能性があるためです。広く文書化されている OS 固有の操作も探してください。

于 2012-03-27T10:06:01.720 に答える