TIPS/udhcpd

Last-modified: 2009-01-26 (月) 23:51:31

README.udhcpc

./udhcpc -i eth1 -f -q --script=./samples/dhcpc_info.sh

udhcp クライアント (udhcpc)


本udhcpクライアントはDHCPサーバからリースを行い、リース時と開放時にスクリプトを
呼びます(訳注:-sで指定したスクリプトが呼ばれます)。

コマンドラインオプション


udhcp用コマンドラインオプション:
-c, --clientid=CLIENTID         Client identifier
-H, --hostname=HOSTNAME         クライアントホスト名
-h,                  エイリアス -H と同意
-f, --foreground                リース取得後にフォークしません。
-b, --background                すぐにリースできない場合、バックグラウンドに
                                移行します。
-i, --interface=INTERFACE       対象となるイーサデバイス (初期値:eth0)
-n, --now                       すぐにリースできない場合、終了します。
-p, --pidfile=file              プロセスIDファイルの保存先パス
-q, --quit                      リース取得後に終了します。
-r, --request=IP                要求するIPアドレス (初期値:なし)
-s, --script=file               dhcpイベントで呼ばれるファイル (初期値:
                                /usr/share/udhcpc/default.script)
-v, --version                   バージョンを表示します。
もし要求したIPアドレスが取得できなかった場合、サーバが提示したIPアドレスに
設定されます(訳注:-rオプションの説明と思われます)。

README.udhcpd

udhcpサーバ (udhcpd)


udhcpdに唯一指定できるコマンドラインオプションはコンフィグファイルのパスです。
もしコンフィグファイルが指定されない場合、udhcpdはデフォルトのコンフィグファイル
/etc/udhcpd.confを使用します。例:

udhcpd /etc/udhcpd.eth1.conf

udhcpサーバはいくつかのシンプルな設定ファイルを使用します:

udhcpd.leases


udhcpd.leaseの振舞いは組込みシステム向けにデザインされています。
このファイルは定期的な時間おきに、またはSIGUSR1シグナルを受信したときに
書かれます (SIGUSR1シグナルを受け取ると、定期的な時間のカウントはリセット
されます)。もしSIGUSR1のあとにudhcpdディレクトリへSIGTERMを送ると、
udhcpdはリースファイルへの書き込みを完了し、後述のスクリプトを呼び出して、
スクリプトが終了するのを待ってから終了します。シグナルを送っている間、待つ
必要はありません。ファイルに書き込む際、ファイルに書き込むための任意の
スクリプトが呼ばれます。リースタイムはリースの残り時間か(システムクロックが
ない環境への考慮です)、またはシステムが起動してからの時刻がファイルに書かれます。
リースタイムが終了したリースはゼロが書かれます。

ファイルフォーマット:

16バイト MACアドレス
4バイト IPアドレス
符号無し32ビット 期限
16バイト MACアドレス
4バイト IPアドレス
符号無し32ビット 期限
.
etc.

例: hexdump udhcpd.leases

0000000 1000 c95a 27d9 0000 0000 0000 0000 0000
0000010 a8c0 150a 0d00 2d29 5000 23fc 8566 0000
0000020 0000 0000 0000 0000 a8c0 140a 0d00 4e29
0000030

udhcpd.conf


このフォーマットは非常にシンプルです。samples/udhcpd.confで全ての利用可能な
オプションについてコメントで説明してあります。

コンパイル時のオプション


dhcpd.h には二つのコンパイル時のオプションがあります:
	LEASE_TIME: コンフィグファイルに指定がなかった場合のデフォルトリースタイム。
	DHCPD_CONFIG_FILE: デフォルトのコンフィグファイルパス。