カーネルのどのモジュールがDHCPクライアントにDHCPネゴシエーションを開始するように指示しますか?

カーネルのどのモジュールがDHCPクライアントにDHCPネゴシエーションを開始するように指示しますか?

DHCP クライアントはカーネルコードではなくプロセスです。 DHCPクライアントは、DHCP検索メッセージの送信を開始するタイミングをどのように知っていますか? DHCPクライアントに通知するのはカーネルのIPモジュールですか?

答え1

DHCPクライアントデーモン(dhcpdcなどdhclient)は、initプロセス中に起動されるプログラムです。これらのプログラムは常にinitによって直接呼び出されるわけではありませんが、インターフェイスがdhcpを使用するように設定されている場合、ネットワークを処理するプログラムはこれを行います。

たとえば、netctlディストリビューションはネットワークインターフェイスを管理するために使用されるプログラムです。このプログラムは、固定アドレスまたはdhcp(他のオプションのうち)を指定できる設定ファイルを使用します。 dhcpを有効にした設定ファイルがある場合、netctlinitシステムがそれを呼び出すと、アドレスを取得するためにdhcpクライアントが起動します。 dhcp クライアントの起動時に最近のリースがない場合は、DHCPDISCOVER メッセージの送信を開始し、リースのアドレスを DHCPREQUEST に置き換えます。

デフォルトのinitシステムプロセス(sysvinit / systemd / etc)の初期生成を除いて、カーネルは実際にはこのプロセスの一部ではありません。 dhcpクライアントを直接呼び出すinitスクリプトがあるか、それを処理するネットワーク管理サービスがあります。

関連情報