DHCP クライアントはカーネルコードではなくプロセスです。 DHCPクライアントは、DHCP検索メッセージの送信を開始するタイミングをどのように知っていますか? DHCPクライアントに通知するのはカーネルのIPモジュールですか?
答え1
DHCPクライアントデーモン(dhcpdc
などdhclient
)は、initプロセス中に起動されるプログラムです。これらのプログラムは常にinitによって直接呼び出されるわけではありませんが、インターフェイスがdhcpを使用するように設定されている場合、ネットワークを処理するプログラムはこれを行います。
たとえば、netctl
ディストリビューションはネットワークインターフェイスを管理するために使用されるプログラムです。このプログラムは、固定アドレスまたはdhcp(他のオプションのうち)を指定できる設定ファイルを使用します。 dhcpを有効にした設定ファイルがある場合、netctl
initシステムがそれを呼び出すと、アドレスを取得するためにdhcpクライアントが起動します。 dhcp クライアントの起動時に最近のリースがない場合は、DHCPDISCOVER メッセージの送信を開始し、リースのアドレスを DHCPREQUEST に置き換えます。
デフォルトのinitシステムプロセス(sysvinit / systemd / etc)の初期生成を除いて、カーネルは実際にはこのプロセスの一部ではありません。 dhcpクライアントを直接呼び出すinitスクリプトがあるか、それを処理するネットワーク管理サービスがあります。