Manpages

名 称

dhclient-script - DHCP ク ラ イ ア ン ト の ネ ッ ト ワ ー ク 設 定 ス ク リ プ ト

解 説

DHCP ク ラ イ ア ン ト の ネ ッ ト ワ ー ク 設 定 ス ク リ プ ト は 、 時 あ る ご と に dhclient(8) が 呼 び 出 し ま す 。 DHCP ク ラ イ ア ン ト は 、 本 ス ク リ プ ト を 使 用 す る こ と に よ り 、 ア ド レ ス 要 求 に 先 立 つ 各 イ ン タ フ ェ ー ス の 初 期 設 定 と 、 付 与 さ れ た ア ド レ ス の 検 査 と 、 リ ー ス 獲 得 時 の イ ン タ フ ェ ー ス の 最 終 設 定 を 行 い ま す 。 リ ー ス が 獲 得 さ れ な か っ た 場 合 、 定 義 済 み の リ ー ス が 存 在 す る な ら ば こ れ を 検 査 す る た め に 本 ス ク リ プ ト は 使 用 さ れ 、 有 効 な リ ー ス が 判 明 し な か っ た 場 合 に も も う 1 回 こ の ス ク リ プ ト が 呼 ば れ ま す 。 本 ス ク リ プ ト は 、 エ ン ド ユ ー ザ に カ ス タ マ イ ズ さ れ る こ と を 意 図 し て い ま せ ん 。 ロ ー カ ル な カ ス タ マ イ ズ が 必 要 な 場 合 、 こ れ は 入 (enter) と 出 (exit) と い う フ ッ ク を 使 用 す る こ と で 可 能 と な り ま す (詳 細 は フ ッ ク 参 照 )。 こ れ ら の フ ッ ク は 、 /etc/resolv.conf 作 成 時 に 、 ク ラ イ ア ン ト の デ フ ォ ル ト 動 作 を ユ ー ザ が オ ー バ ラ イ ド で き る よ う に し ま す 。 特 定 の オ ペ レ ー テ ィ ン グ シ ス テ ム で は 、 ク ラ イ ア ン ト の 実 体 は 動 作 す る と し て も 、 標 準 の ス ク リ プ ト が 動 作 し な い か も し れ ま せ ん 。 先 駆 的 な ユ ー ザ が 新 規 ス ク リ プ ト を 作 成 し た り 既 存 の も の を 修 正 し た り す る 必 要 が あ る こ と は も っ と も な こ と で す 。 一 般 的 に は 、 そ れ ぞ れ の コ ン ピ ュ ー タ に 固 有 の カ ス タ マ イ ズ は ETCDIR/dhclient.conf ス ク リ プ ト で 行 う べ き で す 。 ETCDIR/dhclient.conf の カ ス タ マ イ ズ 無 し に で き な い カ ス タ マ イ ズ や 、 入 と 出 の フ ッ ク の 使 用 で は で き な い カ ス タ マ イ ズ に 気 づ い た 場 合 に は 、 バ グ レ ポ ー ト を 送 っ て く だ さ い 。

フ ッ ク

開 始 時 に 、 ク ラ イ ア ン ト ス ク リ プ ト は ま ず シ ェ ル 関 数 を 定 義 し ま す 。 そ の 関 数 は make_resolv_conf で あ り 、 後 に /etc/resolv.conf フ ァ イ ル を 作 成 す る た め に 使 用 さ れ ま す 。 デ フ ォ ル ト 動 作 を オ ー バ ラ イ ド す る に は 、 こ の 関 数 を 入 の フ ッ ク ス ク リ プ ト で 再 定 義 し て く だ さ い 。

make_resolv_conf 関 数 の 定 義 の 後 、 ク ラ イ ア ン ト ス ク リ プ ト は 実 行 可 能 な ETCDIR/dhclient-enter-hooks ス ク リ プ ト の 存 在 を 検 査 し 、 存 在 す る 場 合 に は Bourne シ ェ ル の ’.’ コ マ ン ド を 使 用 し て 本 ス ク リ プ ト を イ ン ラ イ ン で 起 動 し ま す 。 操 作 で 記 述 さ れ て い る す べ て の 環 境 が 本 ス ク リ プ ト で 使 用 可 能 で あ り 、 ス ク リ プ ト の 動 作 の 変 更 が 必 要 な 場 合 に は 環 境 の 修 正 が 許 さ れ て い ま す 。 ス ク リ プ ト 実 行 中 に エ ラ ー が 発 生 し た 場 合 、 exit_status 変 数 を 非 0 値 に 設 定 す る こ と が 可 能 で あ り 、 ク ラ イ ア ン ト ス ク リ プ ト 終 了 直 後 に CLIENTBINDIR/dhclient-script は そ の エ ラ ー コ ー ド で 終 了 し ま す 。 す べ て の 処 理 の 完 了 後 に 、 CLIENTBINDIR/dhclient-script は 実 行 可 能 な ETCDIR/dhclient-exit-hooks ス ク リ プ ト の 存 在 を 検 査 し 、 存 在 す る 場 合 に は ’.’ コ マ ン ド で こ れ を 起 動 し ま す 。 dhclient-script の 終 了 状 態 は dhclient-exit-hooks の exit_status シ ェ ル 変 数 に 渡 さ れ 、 起 動 さ れ た 仕 事 に ス ク リ プ ト が 成 功 し た 場 合 に は 値 は 常 に 0 に な り ま す 。 dhclient-enter-hooks の 項 で 前 述 し た そ の 他 の 環 境 も 引 き 継 が れ ま す 。 ETCDIR/dhclient-exit-hooks は exit_status に 手 を 加 え て dhclient-script の 戻 り 値 を 変 更 で き ま す 。

操 作

dhclient が ク ラ イ ア ン ト 設 定 ス ク リ プ ト を 起 動 す る 必 要 が あ る と き 、 様 々 な 変 数 を 環 境 に 定 義 し て か ら CLIENTBINDIR/dhclient-script を 起 動 し ま す 。 す べ て の 場 合 に お い て 、 $reason に は ス ク リ プ ト が 起 動 さ れ る 理 由 名 が 設 定 さ れ ま す 。 次 の 理 由 が 現 在 定 義 さ れ て い ま す : MEDIUM, PREINIT, BOUND, RENEW, REBIND, REBOOT, EXPIRE, FAIL, TIMEOUT。

MEDIUM

DHCP ク ラ イ ア ン ト は 、 イ ン タ フ ェ ー ス の メ デ ィ ア タ イ プ の 設 定 を 求 め て い ま す 。 イ ン タ フ ェ ー ス 名 は $interface で 渡 さ れ 、 メ デ ィ ア タ イ プ は $medium で 渡 さ れ ま す 。

PREINIT

DHCP ク ラ イ ア ン ト は 、 実 際 の ア ド レ ス を 受 け 取 る 前 に パ ケ ッ ト を 送 信 す る 目 的 で 、 要 求 通 り に イ ン タ フ ェ ー ス が 設 定 さ れ る こ と を 求 め て い ま す 。 BSD の ソ ケ ッ ト ラ イ ブ ラ リ を 使 用 す る ク ラ イ ア ン ト で は 、 IP ア ド レ ス 0.0.0.0 か つ ブ ロ ー ド キ ャ ス ト ア ド レ ス 255.255.255.255 で 、 イ ン タ フ ェ ー ス を 設 定 す る こ と を 意 味 し ま す 。 他 の ク ラ イ ア ン ト で は 、 実 際 に IP ア ド レ ス を 与 え る こ と な く 単 に イ ン タ フ ェ ー ス を 設 定 す る こ と で 実 現 さ れ る で し ょ う 。 イ ン タ フ ェ ー ス 名 は $interface で 渡 さ れ 、 メ デ ィ ア タ イ プ は $medium で 渡 さ れ ま す 。

IP エ イ リ ア ス が dhclient.conf で 宣 言 さ れ て い る 場 合 、 こ の ア ド レ ス が $alias_ip_address で 渡 さ れ ま す 。 本 IP ア ド レ ス へ の 経 路 と と も に 、 本 IP ア ド レ ス を 対 象 イ ン タ フ ェ ー ス か ら 削 除 す る 必 要 が あ り ま す 。

BOUND

DHCP ク ラ イ ア ン ト は 、 新 ア ド レ ス へ の 初 期 の 結 合 を 完 了 し ま し た 。 新 し い IP ア ド レ ス は $new_ip_address で 渡 さ れ 、 イ ン タ フ ェ ー ス 名 は $interface で 渡 さ れ ま す 。 メ デ ィ ア タ イ プ は $medium で 渡 さ れ ま す 。 サ ー バ か ら 獲 得 し た オ プ シ ョ ン は 、 dhcp-options で 宣 言 さ れ て い る オ プ シ ョ ン 名 で 渡 さ れ ま す 。 例 外 と し て 、 有 効 な シ ェ ル 変 数 と す る た め に ダ ッ シ ュ (’-’) は ア ン ダ ス コ ア (’_’)で 置 き 換 え ら れ 、 変 数 名 は new_ で 開 始 し ま す 。 例 え ば 、 新 し い サ ブ ネ ッ ト マ ス ク は $new_subnet_mask で 渡 さ れ ま す 。 ア ド レ ス を 実 際 に 設 定 す る 前 に 、 dhclient-script は 何 ら か の 方 法 で そ の ア ド レ ス に 対 し て ARP を 行 い 、 返 事 を 受 け 取 っ た 場 合 に は 非 0 の 値 で 終 了 す る べ き で す 。 こ の 場 合 ク ラ イ ア ン ト は DHCPDECLINE メ ッ セ ー ジ を サ ー バ に 送 信 し 、 違 う ア ド レ ス を 取 得 し ま す 。 こ の 作 業 は RENEW, REBIND, REBOOT 状 態 で も 同 様 に 行 い ま す が 、 必 ず し も 必 要 で は な く 、 実 際 好 ま し く な い で し ょ う 。 結 合 が 完 了 す る と 、 ネ ッ ト ワ ー ク に 関 す る 多 く の パ ラ メ ー タ を 設 定 す る 必 要 が あ る で し ょ う 。 $new_domain_name お よ び $new_domain_name_servers (こ れ に は 複 数 の サ ー バ を 空 白 で 区 切 っ て 列 挙 し て あ る か も し れ ま せ ん ) を 使 用 し て 、 新 し い /etc/resolv.conf を 作 成 す る 必 要 が あ り ま す 。 デ フ ォ ル ト 経 路 は 、 $new_routers を 使 用 し て 設 定 す る 必 要 が あ り ま す 。 静 的 経 路 は 、 $new_static_routes を 使 用 し て 設 定 す る 必 要 が あ る か も し れ ま せ ん 。

IP エ イ リ ア ス が 宣 言 さ れ て い る 場 合 、 こ こ で 設 定 す る 必 要 が あ り ま す 。 エ イ リ ア ス の IP ア ド レ ス は $alias_ip_address と し て 記 述 さ れ 、 エ イ リ ア ス 用 に 設 定 さ れ る 他 の DHCP オ プ シ ョ ン (例 え ば サ ブ ネ ッ ト マ ス ク ) は 前 述 の よ う に 変 数 で 渡 さ れ ま す が 、 $new_ で 開 始 す る の で は な く $alias_ で 開 始 し ま す 。 エ イ リ ア ス の IP ア ド レ ス が 結 合 さ れ た IP ア ド レ ス ($new_ip_address) と 同 じ 場 合 、 こ れ を 使 用 し て は な ら な い こ と に 注 意 し て く だ さ い 。 な ぜ な ら 、 こ の 場 合 に は 他 の エ イ リ ア ス の パ ラ メ ー タ が 正 し く な い 可 能 性 が あ る か ら で す 。

RENEW

結 合 が 更 新 さ れ る と 、 ス ク リ プ ト は BOUND と 同 様 に 呼 ば れ ま す が 、 $new_ で 開 始 す る 全 変 数 に 加 え て $old で 開 始 す る 別 の 変 数 の 組 が あ る と い う 例 外 が あ り ま す 。 変 更 さ れ た 可 能 性 が あ る 永 続 的 な 設 定 は 、 削 除 す る 必 要 が あ り ま す 。 例 え ば 、 結 合 さ れ た ア ド レ ス に 対 す る ロ ー カ ル 経 路 が 設 定 さ れ た 場 合 、 古 い ロ ー カ ル 経 路 を 削 除 す る 必 要 が あ り ま す 。 デ フ ォ ル ト 経 路 が 変 更 さ れ た 場 合 、 古 い デ フ ォ ル ト 経 路 を 削 除 す る 必 要 が あ り ま す 。 静 的 経 路 が 変 更 さ れ た 場 合 、 古 い も の を 削 除 す る 必 要 が あ り ま す 。 そ の 他 に つ い て は 、 BOUND と 同 様 に 処 理 可 能 で す 。

REBIND

DHCP ク ラ イ ア ン ト が 、 新 規 DHCP サ ー バ に 再 結 合 さ れ ま し た 。 こ れ は RENEW と 同 様 に 扱 え ま す が 、 IP ア ド レ ス が 変 わ っ た 場 合 に は 、 ARP 表 を ク リ ア す る 必 要 が あ り ま す 。

REBOOT

DHCP ク ラ イ ア ン ト は 、 リ ブ ー ト 後 に 元 の ア ド レ ス を 再 獲 得 す る こ と に 成 功 し ま し た 。 こ れ は BOUND と 同 様 に 処 理 可 能 で す 。

EXPIRE

DHCP ク ラ イ ア ン ト は リ ー ス 更 新 と 新 規 リ ー ス 獲 得 に 失 敗 し 、 リ ー ス の 期 限 が 切 れ ま し た 。 対 象 IP ア ド レ ス を 解 放 す る 必 要 が あ り 、 RENEW お よ び REBIND と 同 様 に 、 関 連 す る パ ラ メ ー タ を 削 除 す る 必 要 が あ り ま す 。

FAIL

DHCP ク ラ イ ア ン ト は DHCP サ ー バ に 接 続 で き ず 、 ま た 検 査 し た IP ア ド レ ス に は 有 効 な も の は あ り ま せ ん で し た 。 最 後 に 検 査 し た リ ー ス の パ ラ メ ー タ は 、 設 定 解 除 す る 必 要 が あ り ま す 。 こ れ は 、 EXPIRE と 同 様 に 扱 え ま す 。

TIMEOUT

DHCP ク ラ イ ア ン ト は ど の DHCP サ ー バ に も 接 続 で き ま せ ん で し た 。 し か し な が ら 、 古 い リ ー ス が 識 別 さ れ 、 BOUND と 同 様 に 、 こ の 古 い リ ー ス の パ ラ メ ー タ が 渡 さ れ ま し た 。 ク ラ イ ア ン ト の 設 定 ス ク リ プ ト は 、 こ の パ ラ メ ー タ を 検 査 し 、 こ れ が 有 効 で あ る と 信 じ る 理 由 が あ る な ら ば 、 値 0 で 終 了 す べ き で す 。 そ う で な い な ら ば 、 非 0 の 値 で 終 了 す べ き で す 。 リ ー ス を 検 査 す る 通 常 の 方 法 は 、 REBIND と 同 様 に ネ ッ ト ワ ー ク を 設 定 し て (複 数 の リ ー ス を 検 査 す る た め に 呼 ば れ る こ と が あ る か ら で す )、 $routers で 定 義 さ れ る 最 初 の ル ー タ に ping す る こ と で す 。 応 答 を 受 信 し た 場 合 、 イ ン タ フ ェ ー ス が 現 在 接 続 さ れ て い る ネ ッ ト ワ ー ク に 対 し て 、 リ ー ス が 有 効 で す 。 $new_static_routers に 加 え て $new_routers に 列 挙 さ れ て い る 全 ル ー タ に ping を 試 す よ う に な れ ば 、 完 全 性 が 増 す で し ょ う 。 し か し 、 現 在 の ス ク リ プ ト は そ う な っ て い ま せ ん 。

関 連 フ ァ イ ル

類 似 し た オ ペ レ ー テ ィ ン グ シ ス テ ム に 対 す る ス ク リ プ ト フ ァ イ ル は 似 て い た り 全 く 同 じ か も し れ ま せ ん が 、 一 般 に は 、 各 オ ペ レ ー テ ィ ン グ シ ス テ ム 用 に 各 々 の ス ク リ プ ト フ ァ イ ル が あ る べ き で す 。 Internet Software Consortium の DHCP 配 布 に 含 ま れ る ス ク リ プ ト フ ァ イ ル は 、 client/scripts 以 下 の 配 布 ツ リ ー に あ り 、 動 作 対 象 オ ペ レ ー テ ィ ン グ シ ス テ ム 名 に な っ て い ま す 。

バ グ

複 数 イ ン タ フ ェ ー ス を 使 用 す る 場 合 、 サ ー バ が 提 供 す る 設 定 パ ラ メ ー タ 同 士 が 衝 突 し な い よ う に す る 明 確 な 方 法 は あ り ま せ ん 。 例 え ば 、 標 準 の dhclient-script は /etc/resolv.conf を 再 度 書 き 換 え て し ま い ま す 。 す な わ ち 、 複 数 の イ ン タ フ ェ ー ス が 設 定 さ れ て い る 場 合 、 あ る サ ー バ か ら 提 供 さ れ る 値 に /etc/resolv.conf が 初 期 化 さ れ た 後 に 、 別 の サ ー バ か ら 提 供 さ れ る 値 に 初 期 化 さ れ る と い う 動 作 を 繰 り 返 し ま す 。 ど ち ら の サ ー バ か ら 提 供 さ れ る 情 報 も 有 効 で あ る 場 合 に は 、 実 際 上 問 題 と は な ら な い も の の 、 混 乱 の も と に な り え ま す 。

関 連 項 目

dhclient.conf(5), dhclient.leases(5), dhclient(8)

作 者

dhclient-script(8) は Ted Lemon が Vixie Enterprises と 協 力 し て Internet Software Consortium の た め に 書 き ま し た 。 Internet Software Consortium に つ い て よ り 詳 し く は 、 http://www.isc.org を ご 覧 く だ さ い 。 Vixie Enterprises に つ い て よ り 詳 し く は 、 http://www.vix.com を ご 覧 く だ さ い 。