web-dev-qa-db-ja.com

ISC DHCP-以前のリースのIPを再発行するのではなく、クライアントに新しいIPアドレスを取得するように強制します

DHCPおよびDNSサービスをDebianベースのサーバーからWindowsServer 2008R2の実装に移行している最中です。 Debianサーバーはisc-dhcpd-V3.1.1を実行しています。すべてのワークステーションは、.3から.40の間の固定アドレスを持つように構成されています(その選択の背後にある動機は、ほとんどの場合、 ここ のような管理/政治です)。 DHCPリースは、.100から.175の範囲で提供されます。静的に構成されたサーバーは、.200ブロック以上(ほとんどが空)に存在します。

Windowsプラットフォームに移行するとき、管理/政治上の考慮事項により、IP範囲を再度移動する必要があります。 .1〜.10は、ネットワークアプライアンス、スイッチ、およびその他のインフラストラクチャ用に予約しておく必要があります。 .200はサーバー用に指定されたままになります。間にあるアドレス空間はクライアントが利用できる必要があり、IPは最初に述べたように自動ではなく 動的 割り当て(編集:)する必要があります)サーバーによって。

WindowsServerのアドレスプールは次のようになります。

192.168.0.1     192.168.0.254     (Address range for distribution)
192.168.0.1     192.168.0.10      (IP addresses excluded from distribution)
192.168.0.200   192.168.0.254     (IP addresses excluded from distribution)

現在、すべてのクライアントはまだ.3〜.40の範囲にあり、いくつかのマシンはまだ.100〜.175でアクティブになっています(ただし、電源がオフになっていて、そこからのIPでリースが期限切れになっているデバイスはたくさんあります)範囲)。リースの「データベース」は古いDHCPサーバーと新しいDHCPサーバーの間で共有されないため、古いDHCPサーバーからの有効期限が切れていないリースを持つクライアントが現在保持しているIPアドレスを持つリースをクライアントが受信しないようにするにはどうすればよいですか。 Debian DHCPサーバーの範囲を192.168.0.10-192.168.0.199に拡張した場合、クライアントがDHCPDISCOVERを送信するときに古いIPアドレスを再利用しないように強制する方法はありますか? Windows DHCPサーバーをISC実装のように権限のあるものにすることはできますか?

Debianサーバーからのdhcpd.conf:

ddns-update-style none;
authoritative;

default-lease-time 43200;   #12 hours
max-lease-time 86400;       #24 hours

subnet 192.168.0.0 netmask 255.255.255.0 {

    option routers 192.168.0.1;
    option subnet-mask 255.255.255.0;
    option broadcast-address 192.168.0.255;

    range 192.168.0.100 192.168.0.175;
}


Host workstation-1 {
 hardware ethernet 00:11:22:33:44:55;
 fixed-address 192.168.0.3;
} ... and so on until 192.168.0.40
1
user62491

これはおそらくこの問題を解決するための最良の方法ではありませんが、うまくいきました。これが私がしたことです。

1) DebianベースのDHCPサーバーに次の制限を追加し、すべての固定アドレスエントリを削除しました。これにより、これらのIP範囲内のクライアントは強制的に.41〜.199の範囲に移動します。そうしないと、Windows Serverをオンにすると、クライアントは、ネットワーク上にすでに存在する.11〜.40の範囲のIPを持つリースを受け取ります。次に、そのIP範囲内のリースが期限切れになり、新しいリースが発行されるのに十分な時間放置します。

subnet 192.168.61.0 netmask 255.255.255.0 {

        option routers 192.168.61.1;
        option subnet-mask 255.255.255.0;
        option broadcast-address 192.168.61.255;

        pool {
                range 192.168.61.0 192.168.61.40;
                deny all clients;
        }
        pool {
                range 192.168.61.41 192.168.61.199;

        }
}

Windows ServerDHCP実装を「信頼できる」ものとして機能させる方法を理解できませんでした。私が望んでいた動作は、古いDebianベースのDHCPサーバーからリースされているクライアントがDHCPINFORMパケットを新しいWindows Serverに送信したとき、それらのクライアントにDHCPNAKを受信させ、プロセス全体を再度実行してリースを取得することでした。 .11以降のアドレス空間を再入力します....関係なく、続行します。

2)新しいWindowsDHCPサーバーの除外範囲を拡張して192.168.61.100-192.168.61.199を含めることで不正行為をしました。これにより、DebianベースのDHCPサーブによってその範囲のIPが割り当てられたクライアントは、DHCPINFORMが拒否され、アドレス空間の「下部」(.11以上)で新しいリースが発行されます。

この時点で、Debian DHCPサーバーをオフにし、Windowsサーバーをオンにして、有効期限を整理しました。私のdhcpd.confの「すべてのクライアントを拒否」行のため、.11-.40アドレス指定に「古いリース」を持つクライアントはありませんでしたIP競合を引き起こす可能性のあるスペースであり、.100〜.199の範囲が除外されているため、すべてのDHCPINFORM要求が拒否されました(少なくとも、それが起こったと思います...パケットスニファを使用してトランザクションを確認する必要はありませんでした。 ..私はおそらくそうすべきです)そしてアドレス空間は.11の下限から始めて再入力されました。

2
user62491

DHCPサーバーを停止し、リースファイルを吹き飛ばします。 /var/lib/dh​​cpd/dhcpd.leasesにあるはずです。 DHCPサーバーを再起動すると、クライアントは別のアドレスの取得を開始します。

Windows DHCPサーバーを強制的に権限のあるものにすることについてはわかりません(Windowsの伝統では、それは単にbe権限があるかもしれません)が、dhcpd構成からディレクティブを削除することはその方向へのステップの1つになります。

0
tmehlinger