
私は現在Ubuntu 14.04を使用していますが、他のディストリビューションでも機能したいと思います。
シャットダウン中にDHCPが解放されるのを防ぎ、必要に応じてリースの有効期限または起動時にDHCP更新オプションを使用したいと思います。
可能ですか?
編集:ドメイン名の解決方法によって異なる応答をする分散アプリケーションがありました。コンピュータがオンラインであるがアプリケーションが利用できない場合、他のコンピュータのアプリケーションはそのコンピュータが利用できないと認識します。ただし、IPが解放された場合(終了のため)、アプリケーションはIPが利用できないことを認識せず、代わりに停止またはエラーが発生します。
残念ながら、エラーを再現できる設定はなく、中断されたかエラーが発生したか、エラーが何であるかを覚えていません。
答え1
ほとんどのunix dhcpクライアントは常に自分自身を整理し、終了時にリースを解放するという点で丁寧です。ほとんどの場合、リースが活発に使用されているかどうかをサーバーで簡単に知ることができるため、状況は良くなりますが、プロトコルが正しく機能するために必ずしも必要ではありません。必要なものをきれいにする方法は3つあります(1つの醜い方法が機能します)。
- DHCPクライアントの作成
- 動作を変更するには、コマンドラインオプションを使用してdhcpクライアントを変更します。
- 新しい動作を得るには、dhcpクライアントを修正してください。
- キル-9
Kill-9法は2つの競合条件を導入します。
- DHCPクライアントをシャットダウンした後にシャットダウンが完了する前にリースが期限切れになると、期限切れのリースが使用されます。
- 更新中に DHCP クライアントを終了する場合、動作は定義されません。
これが機能する理由:有効なリースを持つDHCPクライアントの一般的な動作は、ほとんどの時間休止状態にあり、リースが更新または解放されて終了したときにのみ目が覚めることです。終了信号を受信すると、リースを解除して終了します。シグナル-9は捕捉できず、クリーンアップせずにすぐに終了するため、リース解除をバイパスします。すべてではありませんが、ほとんどのdhcpクライアントは、キャッシュに有効なリースが開始された場合にのみリースを更新します。
答え2
DHCPリースを取得すると、リースは期限が切れるまで特定のMAC-IDにバインドされます。マシンがシャットダウンされるかどうかは問題ではありません。重要なのは、リースが期限切れになる前にIPアドレスを再要求するかどうかです。
また、最大DHCPサーバーは「ソフト」リースの有効期限を使用します。つまり、リースが正式に期限切れになると、その特定のアドレスを別の場所に積極的に転送する必要があるか、キャッシュを消去するように要求されるまでキャッシュに保存します。
(注:一部のISPはセキュリティ対策を使用してこの機能を積極的に無効にします。この機能の効率は、しばしば議論の余地がありますが、顧客が望まないときに自分のサーバーを安価に実行するのを防ぐためです。実装したい場合は、dyndnsを調べることをお勧めします。)
起動するたびに新しいIPアドレスを取得する場合は、DHCPサーバーの設定を確認するか(管理者アクセス権がある場合)、少なくともDHCPサーバーに連絡することをお勧めします(存在しない場合)。
答え3
ifconfig eth0 down
リース解除を防ぐために、DHCPクライアントをシャットダウンするのではなく、システムがシャットダウンする前に(つまり、同様のアクション)ネットワークインターフェイスをシャットダウンできます。