dhcpcd(8)

名前
dhcpcd - DHCP クライアントデーモン

書式
dhcpcd [-dknrBCDHNRSTY] [-t <timeout>] [-c <ExecFilePath>] [-h <hostname>] [-i <vendorClassID>] [-I <clientID>] [-l <leasetime>] [-s [ipaddr]] [-G [gateway]] [-w <windowsize>] [-L <ConfigDir>] [interface]

説明
dhcpcd は RFC2131 (-r オプションが指定されなかった場合) と RFC1541 (-r オプションが指定された場合) に基づく DHCP クライアントの実装である。

DHCP サーバからホストの情報 (IP アドレス、ネットマスク、 ブロードキャストアドレスなど) を取得し、 そのマシンのネットワークインタフェースを設定する。 また、 RFC2131 または RFC1541 (obsolete;すでに廃止された) に基づく貸し出し期間 (lease time) を 更新しようと試みる。

オプション

-d  このフラグにより dhcpcd は、各実行ステップごとに syslog(LOG_DEBUG,...) でログを出力する。 あまり多くの出力は行わないが、 何か問題が起きた場合には解決の大きな助けとなるので、 このオプションの利用が推奨される。 dhcpcd は、その出力に syslog 機能分類 (facility) LOCAL0 を使う。 dhcpcd のデバッグ出力を捕捉するには、 /etc/syslog.conf ファイルに

    local0.* /var/log/dhcpcd.log

    という行を追加し、

    kill -1 `cat /var/run/syslogd.pid`

    によって syslogd デーモンをリフレッシュすること。

-k  現在動いている dhcpcd プロセスへ SIGHUP シグナルを送る。 SIGHUP シグナルを dhcpcd が受け取ると、 DHCP_RELEASE メッセージをサーバへ送り、dhcpcd のキャッシュを破棄する。 SIGTERM シグナルは、普通、システムを再起動する時に shutdown(8) が送るが、そのシグナルを dhcpcd が受け取った場合は、 dhcpcd は DHCP_RELEASE メッセージを送らず、キャッシュを破棄しない。 そしてシステムが起動する時に dhcpcd は、システムが落ちる前に DHCP サーバから割り当てられていたのと 同じ IP アドレスを要求するために、キャッシュを用いる。

-n  現在動いている dhcpcd プロセスに SIGALRM シグナルを送り、貸し出し期間を更新させる。 dhcpcd が稼働していない場合は、このフラグは無視され、通常の起動手順で dhcpcd が起動される。

-r  dhcpcd を RFC1541 (obsolete) 準拠で動かす。 dhcpcd はこのオプションが指定されない限り RFC2131 に準拠する。

-B  DHCP サーバにブロードキャストでの応答を要求する。

-C  dhcpcd に受信したパケットのチェックサム (checksum) を計算させる。

-D  dhcpcd に対して、そのマシンのドメイン名を、 DHCP サーバから提供されるドメイン名オプション (domainname option) に設定させる。

-H  dhcpcd に対して、そのマシンのホスト名を、 DHCP サーバから提供されるホスト名オプション (hostname option) に設定させる。 デフォルトでは dhcpcd はそのマシンのホスト名を、 DHCP サーバから受け取ったホスト名オプションには設定しない。

-L <ConfigDir>
    dhcpcd は、設定情報を格納するために、デフォルトの /etc/dhcpc ではなく <ConfigDir> ディレクトリを使う。

-S  dhcpcd が最初の DHCP_DISCOVER メッセージに対して DHCP_OFFER メッセージを受信した後であっても、 2 回目の DHCP_DISCOVER メッセージを送信させる。 「クライアントは DHCP_REQUEST を返答する前に 2 回目の DHCP_DISCOVER を送信する」と仮定している DHCP サーバもある。

-R  すでに存在するファイル /etc/resolv.conf を dhcpcd が置き換えないようにする。

-Y  dhcpcd が既存の /etc/yp.conf ファイルを置き換えないようにする。 -D を指定しない限り、ドメイン名は更新されない。

-N  dhcpcd が既存の /etc/ntp.conf ファイルを置き換えないようにする。

-T  テスト用。 dhcpcd は DHCP ネゴシエーションシーケンスに入るが、 実際にはインターフェースを設定しない。 しかし、ファイル <ConfigDir>/dhcpcd-<interface>.info と <ConfigDir>/dhcpcd-<interface>.cache を書き込み、 <ConfigDir>/dhcpcd.exe スクリプトを実行しようとする。 実行可能スクリプト dhcpcd.exe のパス名は、 -c <ExecFilePath> オプションで変更できる。 -T オプションは主に DHCP サーバのテストに使われる。 同じダミーインタフェースのための複数の IP アドレスを取得したり、 -L <ConfigDir> や -I <ClientID> オプション

-t <timeout>
    どれくらいの時間 dhcpcd が IP アドレスを取得しようと試みるかを (秒数で) 指定する。 デフォルトは 60 秒。 dhcpcd は使用可能な IP アドレスを取得し、親プロセスへ 0 を返すまでは バックグラウンドへと fork しない。 dhcpcd が使用可能な IP アドレスを DHCP サーバから受け取る前にタイムアウトした場合は、 dhcpcd は親プロセスへ終了コード 1 を返す。

-c <ExecFilePath>
    dhcpcd はインタフェースが設定または落される度に、 デフォルトの <ConfigDir>/dhcpcd.exe スクリプトではなく、 <ExecFilePath> スクリプトを実行しようとする。 下記の「ファイル」セクションにおけるスクリプト dhcpcd.exe についての説明を参照すること。

-h <hostname>
    dhcpcd が送る DHCP メッセージのホスト名オプションに使われる文字列を指定する。 クライアントからの DHCP メッセージの中で、 ホスト名オプションが指定されていることを要求する DHCP サーバもある (特に家庭内ネットワークで使われる DHCP サーバ)。

-i <vendorClassID>
    ベンダークラス識別子 (vendor class identifier) を指定する。 何も指定されなかった場合、 dhcpcd はデフォルトのベンダークラス識別子 (システム名、システムリリース、 マシンタイプ) を用いる。

-I <ClientID>
    クライアント識別子 (client identifier) を指定する。 何も指定されなかった場合、 dhcpcd はデフォルトのクライアント識別子 (ネットワークインタフェースの MAC アドレス) を用いる。

-l <leasetime>
    サーバへ推奨する貸し出し時間を (秒数で) 指定する。 (サーバはこの値を、適切な値へと上書きできることに注意)。 この値は DHCP_DISCOVER メッセージに使われる。デフォルトは無限大 (0xffffffff)。

-s [ipaddr]
    DHCP_INFORM メッセージを ipaddr を使って DHCP サーバへ送る。 省略可能なパラメータ ipaddr は xxx.xxx.xxx.xxx という形式でなければならない。 もし、コマンドラインで ipaddr パラメータが与えられなければ、 dhcpcd は現在インタフェースに割り当てられている IP アドレスを用いる。 もし現在、インタフェースに IP アドレスが割り当てられていなければ、 dhcpcd はファイル <ConfigDir>/dhcpcd-<interface>.cache に記録されている、以前に獲得した IP アドレスを用いる。

-G [gateway]
    DHCP サーバによって提供されたデフォルトの経路を dhcpcd にインストールさせないようにする。 オプションでゲートウェイ ip アドレスパラメータが指定された場合、 それをデフォルトの経路として使う。

-w <windowsize>
    ゲートウェイ経路のウインドウサイズを指定する。 デフォルトは 32768 である。

interface
    ネットワークインタフェースの名前 (eth0, eth1 など) を指定する。 名前が明示されなかった場合、 dhcpcd はネットワークインタフェースとして eth0 を用いる。

ファイル
/etc/dhcpc
    dhcpcd によって作成されたファイルを保存するのに用いられるデフォルトの <ConfigDir> ディレクトリ。 上記の -L <ConfigDir> オプションを参照すること。

<ConfigDir>/dhcpcd-<interface>.info
    dhcpcd がホスト情報を記録するファイル。 interface は、実際には eth0 のような、dhcpcd で管理されている ネットワークインタフェースの名前で置き換えられる。

<ConfigDir>/dhcpcd.exe
    インタフェースを設定または落す度に、 dhcpcd が実行しようとするスクリプトファイル。 この実行可能スクリプトへのパスは、 -c <ExecFilePath> オプションで変更できる。 dhcpcd は dhcpcd.exe スクリプトに 3 つのパラメータを渡す。

dhcpcd.exe <HostInfoFilePath> <up|down|new> [-d]
    最初のパラメータ <HostInfoFilePath> は dhcpcd-<interface>.info ファイルへのパスである。 <interface> は、実際には "eth0" のような dhcpcd で管理されている ネットワークインタフェースの名前で置き換えられる。 2 番目のパラメータ値 <up|down|new> は、前と同じ IP アドレスでインタフェースを上げる ("up")、 新しい IP アドレスでインタフェースを上げる ("new")、 インタフェースを落す ("down") という意味である。 パラメータ -d は、 dhcpcd をデバッグフラグ -d で起動する場合に渡す。

<ConfigDir>/dhcpcd-<interface>.cache
    以前に割り当てられた IP アドレスなどを含むキャッシュファイル。 <interface> は、実際には eth0 のような、dhcpcd で管理されている ネットワークインタフェースの名前で置き換えられる。

/etc/resolv.conf
    クライアントが DNS とドメイン名オプションを受け取った時に dhcpcd が作成するファイル。 既に /etc/resolv.conf が存在する場合、元のファイルは /etc/resolv.conf.sv という名前に変更され、何らかの理由で dhcpcd が終了した時には元に戻される。

/etc/yp.conf
    クライアントが NIS オプションを受信した場合に、 dhcpcd によって作成されるファイル。 既に /etc/yp.conf が存在する場合、元のファイルは /etc/yp.conf.sv という名前に変更され、何らかの理由で dhcpcd が終了した時には元に戻される。

/etc/ntp.conf
    クライアントが NTP オプションを受信した場合に、 dhcpcd によって作成されるファイル。 既に /etc/ntp.conf が存在する場合、元のファイルは /etc/ntp.conf.sv という名前に変更され、何らかの理由で dhcpcd が終了した時には元に戻される。

<ConfigDir>/dhcpcd-<interface>.pid
    dhcpcd のプロセス ID を格納するファイル。 <interface> は、実際には eth0 のような、dhcpcd で管理されている ネットワークインタフェースの名前で置き換えられる。

関連項目
Dynamic Host Configuration Protocol, RFC2131 および RFC1541 (obsolete) DHCP Options and BOOTP Vendor Extensions, RFC2132

バグ
dhcpcd は貸し出しの終了期限を計算するのに time(3) を用いる。クライアントの実行中にシステム時刻が変更されると、 貸し出しの終了期限は予測不可能となる。

著者
バージョン 1.3 未満
Yoichi Hariguchi <yoichi@fore.com>
バージョン 1.3
Sergei Viznyuk <sv@phystech.com>