dhcp服务器的源代码
源代码在线查看: dhclient-script.8
.\" $Id: dhclient-script.8,v 1.1.2.2 2004/06/10 17:59:25 dhankins Exp $ .\" .\" Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") .\" Copyright (c) 1996-2003 by Internet Software Consortium .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT .\" OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" .\" Internet Systems Consortium, Inc. .\" 950 Charter Street .\" Redwood City, CA 94063 .\" .\" http://www.isc.org/ .\" .\" This software has been written for Internet Systems Consortium .\" by Ted Lemon in cooperation with Vixie Enterprises and Nominum, Inc. .\" To learn more about Internet Systems Consortium, see .\" ``http://www.isc.org/''. To learn more about Vixie Enterprises, .\" see ``http://www.vix.com''. To learn more about Nominum, Inc., see .\" ``http://www.nominum.com''. .\" .\" %FreeBSD: src/contrib/isc-dhcp/client/dhclient-script.8,v 1.5.2.4 2002/04/11 10:16:45 murray Exp % .\" .\" $FreeBSD: doc/ja_JP.eucJP/man/man8/dhclient-script.8,v 1.13 2002/05/08 03:27:27 horikawa Exp $ .TH dhclient-script 8 .SH 叹疚 dhclient-script - DHCP クライアントのネットワ〖ク肋年スクリプト .SH 豺棱 DHCP クライアントのネットワ〖ク肋年スクリプトは、 箕あるごとに \fBdhclient(8)\fR が钙び叫します。 DHCP クライアントは、塑スクリプトを蝗脱することにより、 アドレス妥滇に黎惟つ称インタフェ〖スの介袋肋年と、 烧涂されたアドレスの浮汉と、 リ〖ス惩评箕のインタフェ〖スの呵姜肋年を乖います。 リ〖スが惩评されなかった眷圭、 年盗貉みのリ〖スが赂哼するならばこれを浮汉するために塑スクリプトは蝗脱され、 铜跟なリ〖スが冉汤しなかった眷圭にももう 1 搀このスクリプトが钙ばれます。 .PP 塑スクリプトは、エンドユ〖ザにカスタマイズされることを罢哭していません。 ロ〖カルなカスタマイズが涩妥な眷圭、 これは掐 (enter) と叫 (exit) というフックを蝗脱することで材墙となります (拒嘿はフック徊救)。 これらのフックは、 .B /etc/resolv.conf 侯喇箕に、 クライアントのデフォルト瓢侯をユ〖ザがオ〖バライドできるようにします。 .PP 泼年のオペレ〖ティングシステムでは、 クライアントの悸挛は瓢侯するとしても、 筛洁のスクリプトが瓢侯しないかもしれません。 黎额弄なユ〖ザが糠惮スクリプトを侯喇したり贷赂のものを饯赖したりする涩妥がある ことはもっともなことです。 办忍弄には、それぞれのコンピュ〖タに盖铜のカスタマイズは .B ETCDIR/dhclient.conf スクリプトで乖うべきです。 .B ETCDIR/dhclient.conf のカスタマイズ痰しにできないカスタマイズや、 掐と叫のフックの蝗脱ではできないカスタマイズに丹づいた眷圭には、 バグレポ〖トを流ってください。 .SH フック 倡幌箕に、クライアントスクリプトはまずシェル簇眶を年盗します。その簇眶は .B make_resolv_conf であり、稿に .B /etc/resolv.conf ファイルを侯喇するために蝗脱されます。 デフォルト瓢侯をオ〖バライドするには、 この簇眶を掐のフックスクリプトで浩年盗してください。 .PP make_resolv_conf 簇眶の年盗の稿、クライアントスクリプトは 悸乖材墙な .B ETCDIR/dhclient-enter-hooks スクリプトの赂哼を浮汉し、 赂哼する眷圭には Bourne シェルの '.' コマンドを蝗脱して 塑スクリプトをインラインで弹瓢します。 拎侯で淡揭されているすべての茨董が塑スクリプトで蝗脱材墙であり、 スクリプトの瓢侯の恃构が涩妥な眷圭には茨董の饯赖が钓されています。 スクリプト悸乖面にエラ〖が券栏した眷圭、 exit_status 恃眶を润 0 猛に肋年することが材墙であり、 クライアントスクリプト姜位木稿に .B CLIENTBINDIR/dhclient-script はそのエラ〖コ〖ドで姜位します。 .PP すべての借妄の窗位稿に、 .B CLIENTBINDIR/dhclient-script は悸乖材墙な .B ETCDIR/dhclient-exit-hooks スクリプトの赂哼を浮汉し、赂哼する眷圭には '.' コマンドでこれを弹瓢します。 dhclient-script の 姜位觉轮は dhclient-exit-hooks の exit_status シェル恃眶に畔され、 弹瓢された慌祸にスクリプトが喇根した眷圭には猛は撅に 0 になります。 dhclient-enter-hooks の灌で涟揭したその戮の茨董も苞き费がれます。 .B ETCDIR/dhclient-exit-hooks は exit_status に缄を裁えて dhclient-script の提り猛を恃构できます。 .SH 拎侯 dhclient がクライアント肋年スクリプトを弹瓢する涩妥があるとき、 屯」な恃眶を茨董に年盗してから .B CLIENTBINDIR/dhclient-script を弹瓢します。 すべての眷圭において、$reason にはスクリプトが弹瓢される妄统叹が肋年されます。 肌の妄统が附哼年盗されています: MEDIUM, PREINIT, BOUND, RENEW, REBIND, REBOOT, EXPIRE, FAIL, TIMEOUT。 .PP .SH MEDIUM DHCP クライアントは、インタフェ〖スのメディアタイプの肋年を滇めています。 インタフェ〖ス叹は $interface で畔され、メディアタイプは $medium で畔されます。 .SH PREINIT DHCP クライアントは、 悸狠のアドレスを减け艰る涟にパケットを流慨する誊弄で、 妥滇奶りにインタフェ〖スが肋年されることを滇めています。 BSD のソケットライブラリを蝗脱するクライアントでは、 IP アドレス 0.0.0.0 かつブロ〖ドキャストアドレス 255.255.255.255 で、 インタフェ〖スを肋年することを罢蹋します。 戮のクライアントでは、 悸狠に IP アドレスを涂えることなく帽にインタフェ〖スを肋年することで 悸附されるでしょう。 インタフェ〖ス叹は $interface で畔され、メディアタイプは $medium で畔されます。 .PP IP エイリアスが dhclient.conf で离咐されている眷圭、 このアドレスが $alias_ip_address で畔されます。 塑 IP アドレスへの沸烯とともに、 塑 IP アドレスを滦据インタフェ〖スから猴近する涩妥があります。 .SH BOUND DHCP クライアントは、糠アドレスへの介袋の冯圭を窗位しました。 糠しい IP アドレスは $new_ip_address で畔され、 インタフェ〖ス叹は $interface で畔されます。 メディアタイプは $medium で畔されます。 サ〖バから惩评したオプションは、\fBdhcp-options\fR で离咐されている オプション叹で畔されます。 毋嘲として、 铜跟なシェル恃眶とするために ダッシュ ('-') はアンダスコア('_')で弥き垂えられ、 恃眶叹は new_ で倡幌します。 毋えば、糠しいサブネットマスクは $new_subnet_mask で畔されます。 .PP アドレスを悸狠に肋年する涟に、dhclient-script は部らかの数恕で そのアドレスに滦して ARP を乖い、手祸を减け艰った眷圭には润 0 の猛で 姜位するべきです。この眷圭クライアントは DHCPDECLINE メッセ〖ジをサ〖バ に流慨し、般うアドレスを艰评します。 この侯度は RENEW, REBIND, REBOOT 觉轮でも票屯に乖いますが、 涩ずしも涩妥ではなく、悸狠攻ましくないでしょう。 .PP 冯圭が窗位すると、 ネットワ〖クに簇する驴くのパラメ〖タを肋年する涩妥があるでしょう。 $new_domain_name および $new_domain_name_servers (これには剩眶のサ〖バを鄂球で惰磊って误刁してあるかもしれません) を蝗脱して、 糠しい /etc/resolv.conf を侯喇する涩妥があります。 デフォルト沸烯は、$new_routers を蝗脱して肋年する涩妥があります。 琅弄沸烯は、$new_static_routes を蝗脱して肋年する涩妥があるかもしれません。 .PP IP エイリアスが离咐されている眷圭、ここで肋年する涩妥があります。 エイリアスの IP アドレスは $alias_ip_address として淡揭され、 エイリアス脱に肋年される戮の DHCP オプション (毋えばサブネットマスク) は 涟揭のように恃眶で畔されますが、 $new_ で倡幌するのではなく $alias_ で倡幌します。 エイリアスの IP アドレスが冯圭された IP アドレス ($new_ip_address) と 票じ眷圭、これを蝗脱してはならないことに庙罢してください。 なぜなら、この眷圭には戮のエイリアスのパラメ〖タが赖しくない材墙拉がある からです。 .SH RENEW 冯圭が构糠されると、スクリプトは BOUND と票屯に钙ばれますが、 $new_ で倡幌する链恃眶に裁えて $old で倡幌する侍の恃眶の寥があるという 毋嘲があります。 恃构された材墙拉がある笔鲁弄な肋年は、猴近する涩妥があります。 毋えば、冯圭されたアドレスに滦するロ〖カル沸烯が肋年された眷圭、 概いロ〖カル沸烯を猴近する涩妥があります。 デフォルト沸烯が恃构された眷圭、概いデフォルト沸烯を猴近する涩妥があります。 琅弄沸烯が恃构された眷圭、概いものを猴近する涩妥があります。 その戮については、BOUND と票屯に借妄材墙です。 .SH REBIND DHCP クライアントが、糠惮 DHCP サ〖バに浩冯圭されました。 これは RENEW と票屯に胺えますが、IP アドレスが恃わった眷圭には、 ARP 山をクリアする涩妥があります。 .SH REBOOT DHCP クライアントは、リブ〖ト稿に傅のアドレスを浩惩评することに喇根しました。 これは BOUND と票屯に借妄材墙です。 .SH EXPIRE DHCP クライアントはリ〖ス构糠と糠惮リ〖ス惩评に己窃し、 リ〖スの袋嘎が磊れました。 滦据 IP アドレスを豺庶する涩妥があり、 RENEW および REBIND と票屯に、簇息するパラメ〖タを猴近する涩妥があります。 .SH FAIL DHCP クライアントは DHCP サ〖バに儡鲁できず、 また浮汉した IP アドレスには铜跟なものはありませんでした。 呵稿に浮汉したリ〖スのパラメ〖タは、肋年豺近する涩妥があります。 これは、EXPIRE と票屯に胺えます。 .SH TIMEOUT DHCP クライアントはどの DHCP サ〖バにも儡鲁できませんでした。 しかしながら、概いリ〖スが急侍され、 BOUND と票屯に、この概いリ〖スのパラメ〖タが畔されました。 クライアントの肋年スクリプトは、このパラメ〖タを浮汉し、 これが铜跟であると慨じる妄统があるならば、猛 0 で姜位すべきです。 そうでないならば、润 0 の猛で姜位すべきです。 .PP リ〖スを浮汉する奶撅の数恕は、REBIND と票屯にネットワ〖クを肋年して (剩眶のリ〖スを浮汉するために钙ばれることがあるからです)、 $routers で年盗される呵介のル〖タに ping することです。 炳批を减慨した眷圭、 インタフェ〖スが附哼儡鲁されているネットワ〖クに滦して、リ〖スが铜跟です。 $new_static_routers に裁えて $new_routers に误刁されている链ル〖タに ping を活すようになれば、 窗链拉が笼すでしょう。しかし、附哼のスクリプトはそうなっていません。 .SH 簇息ファイル 梧击したオペレ〖ティングシステムに滦するスクリプトファイルは 击ていたり链く票じかもしれませんが、办忍には、 称オペレ〖ティングシステム脱に称」のスクリプトファイルがあるべきです。 Internet Systems Consortium の DHCP 芹邵に崔まれるスクリプトファイルは、 client/scripts 笆布の芹邵ツリ〖にあり、 瓢侯滦据オペレ〖ティングシステム叹になっています。 .SH バグ 剩眶インタフェ〖スを蝗脱する眷圭、 サ〖バが捏丁する肋年パラメ〖タ票晃が 咀仆しないようにする汤澄な数恕はありません。 毋えば、 筛洁の dhclient-script は /etc/resolv.conf を浩刨今き垂えてしまいます。 すなわち、剩眶のインタフェ〖スが肋年されている眷圭、 あるサ〖バから捏丁される猛に /etc/resolv.conf が介袋步された稿に、 侍のサ〖バから捏丁される猛に介袋步されるという瓢侯を帆り手します。 どちらのサ〖バから捏丁される攫鼠も铜跟である眷圭には、 悸狠惧啼玛とはならないものの、寒宛のもとになりえます。 .SH 簇息灌誊 dhclient.conf(5), dhclient.leases(5), dhclient(8) .SH 侯荚 .B dhclient-script(8) は Ted Lemon が Vixie Enterprises と定蜗して Internet Systems Consortium のために 今きました。 Internet Systems Consortium についてより拒しくは、 .B http://www.isc.org をご枉ください。 Vixie Enterprises についてより拒しくは、 .B http://www.vix.com をご枉ください。