DHCP - みる会図書館


検索対象: UNIX MAGAZINE 1998年11月号
14件見つかりました。

1. UNIX MAGAZINE 1998年11月号

連載 / IJN Ⅸ知恵袋ー・ 図 9 dhcpc コマンドの書式 dhcpc [-d] ツれ可åce 図 10 dhcpm コマンドの書式 クライアントの要求を中継するには、次のように起動しま ・エージェントも同様です。 ed0 上の DHCP # dhcps edO 次のように起動します。 をもっている計算機で DHCP サーバーを運用する場合、 たとえば、ネットワーク・インターフェイスとして ed0 なら、 relay コマンドの一 f スイッチで変更します。 dhcpm 可åce [ 面 m 〃五砌 す。 # relay edO か設定されます。図 8 に示すパッチを当ててください。 されるときに新規作成とみなされるため、正しく経路清報 インターフェイスを削除すると、次に IP アドレスか、設定 めにバケットの送信ができないという事態が発生します。 すると、 IP アドレスは取得できても、糸習各情報がないた ません。そのため、カードをいったん抜いてから再度挿入 の IP アドレスのサプネットに対する経路情報か追加され イスに IP アドレスを追加したときに、インターフェイス 削除する必要があります。 FreeBSD では、インターフェ 用いる場合、カードカ黻かれたあとにインターフェイスを なお、 FreeBSD と PAO を使って Ethernet カードを て起動けるとよいでしよう。 ので、 rc ファイルなどのスタートアッフ・スクリプト中 通常は言算機カワ。ートした直後からサービスを開始する クライアントの起動 UNIX MAGAZINE 1998.11 # dhcpc feO ンターフェイスが fe0 なら次のようになります。 ク・インターフェイスを指定します。ネットワーク・イ face は DHCP を使ってアドレスを設定するネットワー -d はテンヾッグモードて起動するスイッチです。 inter- コマンドの書式を図 9 に示します。 DHCP クライアントのコマンドは dhcpc です。 dhcpc 起動後しばらくするとネットワーク・インターフェイス に IP アドレスが付きます。石忍のために ifconfig コマン ドて調べます ( 誌面の都合上、てオ斤り返しています ) 。 $ ifconfig feO feO: f1ags=843 く UP,BROADCAST,RUNNING> mtu 1500 inet 10 . 1 . 1 . 3 netmask Oxffffff00 broadcast 10 . 1 . 1 .255 ether 00 : e0 : 29 : Of : 04 : 6b IP アドレスが付いていない場合は、 DHCP クライア ントとサーバーがうまく通信できていない可能性がありま す。 dhcpm コマンドで DHCP メッセージを観測する ことで、正しくメッセージが飛んでいるかどうかを確認 できます。 dhcpm コマンドの書式を図 10 に示します。 面〃孕川 e を指定すると、 dhcpm コマンドは標準出力に 出力する代わりに、 dumpfile で指定したファイルに結果 を出力します。図 11 は正常にメッセージのやりとりがで きている状況を観測した結果です。図 1 に示したような メッセージの流れがみえれは正常です。 うまく IP アドレスかイ寸かない場合は、次の項目を石忍 してください。 ・ dhcps か起動されているか dhcps を起動した計算機でプロセスの状態をみて、 dhcps が実行中であることを確認します。 dhcps は、 起動に失敗しても画面にメッセージを出力しません。必 要であ川ま、以下の行を /etc/syslog. conf に追加して ログを石忍してください。 syslog の LOCALO ファシ リティに対してログカ咄力されます。 10Ca10. * /var/log/dhcp ・ 10g ・サーバーとクライアントか 1 司ーセグメント上にあるか DHCP はプロードキャストをベースにしたプロトコル です。サーバーとクライアントか 1 司ーセグメントに接続 しているかどうかを石忍してください。セグメントを越 えて DHCP を利用するのであれば、リレー・エージェ ントか動作していることを石忍します。 クライアントのバージョン 77 ジョンを揃えてみましよう。 とも Wff)E DHCP を使っているのであれは、 きない現象か起きていました。サーバー、クライアント のクライアントのあいだで正常にアドレスの割当てがで 私の↓竟では、 dhcp-l. 4P3 のサーバーと dhcp-l. 4P2

2. UNIX MAGAZINE 1998年11月号

連載 / IJN Ⅸ知恵袋ー み込まれていません。次に示す 1 行をカーネルの設疋ファ イルに追加し、カーネルの明冓築をおこないます。 pseudo-device bpfilter 4 こでは 4 つの bpf テンヾイスを追加しています。通常、 サーバーやクライアントを 1 つしか起動しないのであれ は、 1 つの bpf テンヾイスでも十分です。ネットワーク・イ ンターフェイスの数に合わせて変更してください。 次に、 bpf デバイスファイルの作成をおこないます。 FreeBSD 2.2.7 をインストールした直後は、 bpf デバイ スファイルが 1 つ (/dev/bpf0) だけ存在する状態です。 この例では 4 つの bpf デバイスを追加しましたから、デ ノヾイスファイルも 4 つ用意することにします。次のコマ ンドを実行して bpf デバイスファイルを作成します。 ・ /usr/local/man/man8/dhcps.8. gz ・ /usr/local/man man8/dhcpm.8. gz ・ /usr/local/sbin/dhcpm /usr/local/sbin/relay ・ /usr/local/sbin/dhcps ・ /usr/local/sbin/dhcpc 次のファイルがインストールされます。 # make OSTYPE=FreeBSD install 準備ができたら以下のようにインストールします。 # sh MAKEDEV bpf3 # sh MAKEDEV bpf 1 # cd /dev $ su ・ /usr/local/man/man5/dhcpdb. relay. 5. gz ・ /usr/local/man/man5/dhcpdb. P00L5. gz ・ /usr/local/man man5/dhcpdb. server. 5. gz /usr/local/man man8/dhcpc.8. gz ・ /usr/local/man man8/relay.8. gz UNIX MAGAZINE 1998.11 きるようにします。 dhcpm は DHCP メッセージ・モニ ントを越えて転送し、異なる LAN 上で DHCP か利用で でしか動きません。 relay は DHCP メッセージをセグメ て実現されます。よって、基本的に同一物理セグメント内 ーバーです。 DHCP は LAN のプロードキャストを用い dhcpc が DHCP クライアント、 dhcps が DHCP サ ターです。 DHCP が正しく重川しているかどうかをチェ ックする際に活躍します。 配布情報の決定 DHCP サーバーを運用するには、各クライアントに配 布する情報を言当した設定ファイルを用意しなければなり ません。設定ファイルの詳細はあとでイ列を示して解説し ます。ます、 DHCP サーバーから DHCP クライアン トに対してどのような情報を提供するかを決めましよう。 DHCP を用いて配ることができる情報は RFC2132 [ 3 ] に規定されています。ただし、 WIDE DHCP ですべての 項目か利用できるわけではありません。 WIDE DHCP サ ーを使って配布できる項目については、 dhcpdb. pool のオンライン・マニュアルに一一一覧があります。 DHCP サーバーはじつにさまざまな不鶤頁の情報を配布 できるように言されていますが、 DHCP クライアント は提供されるすべての情報を利用する義務はありません。 ですから、たとえは DHCP サーバー側で DHCP クライ アントの言 t 算機名を配るように設定しても、 DHCP クラ イアントがその計算機名を利用するとはかぎりません。技 勺な問題のために対応していない場合や、たんに要求仕 様に入っていないような場合があるでしよう。 ちなみに、 WIDE DHCP クライアントは以下の設定 値を処理します。 ・ IP アドレス ・サプネットマスク ・プロードキャスト・アドレス ・経路情報 今回はこれらの情報と、以下の情報を配る設定をし てみます。 ・ドメイン名 ・ネームサーバーの IP アドレス これらの情報は WIDE DHCP クライアントでは利用 できませんが 3 、 Windows 95/NT などでは設定に反映 されます。サーバーとして WIDE DHCP を使い、クラ イアントとして Windows を使う場合に役立つでしよう。 3 FreeBSD で ports を使ってインストールすると、これら窈報を利用 するための hack カされます。 73

3. UNIX MAGAZINE 1998年11月号

連載 / IJN Ⅸ知恵袋ーの 図 7 dhcps コマンドと relay コマンドの書式 dhcps [-d] [-b 碗れ市れ 9- ] [-a 佖 dd 叩 00Z - ] トて 7 ・ e リ記切 interface 巨 e 可åce . relay [-d] [-f se ロ肥ル db ] を襯 e 可佖 ce [interface 図 8 FreeBSD と PAO を吏う際に必要な Ethernet カード取出しスクリプトのパッチ Wed Apr 8 11 : 21 : 01 1998 * * * pccard—ether_remove—dist * * * 25 , 30 * * * * pccard—ether-remove Fri Oct 2 10 : 43 : 35 1998 25 , 31 十 kill $killarg f i f i ifconfig $interface delete ifconfig $interface delete else リレー・エージェント DHCP は 1 つの LAN ー E て新川乍することを前提とした プロトコルです。しかし、 DHCP メッセージを中継する リレー・エージェントを用いることで、複数の LAN の IP アドレスを 1 つの DHCP サーバーで管理することも できます。例として、図 4 に示すネットワーク構成を考 えてみましよう。 リレー・エージェントは、 DHCP クライアントから直 接 ( ルータを越えることなしには ) 通信できない DHCP サーバーへのメッセージを中継します。リレー・エージェ ントを起動するには、 DHCP サーバーの IP アドレスをリ レー・エージェントに与えなければなりません。コンパイ ル時にとくに変更していなければ、 /etc/dhcpdb. server がリレー・エージェントのサーバー定義ファイルになりま す。サーバー定義ファイルに DHCP サーバーのアドレス をしてください。図 5 に例を示します。 最初の行に DHCP サーバーの個数を、次の行に DHCP サーバーの IP アドレスを書きます。 リレー・エージェントの簡単な認証をおこなうために DHCP サーバー側にも設定が必要です。 /etc/dhcpdb. relay にリレー・エージェントの lP アドレスとサプネッ トマスクをします。図 6 に例を示します。 リレー・エージェント定義ファイルには、リレー・エ ージェントが中継する側の IP アドレスを指定しなけれ はなりません。図 4 では、 10.1.2 / 24 のネットワークを 10.1.2.10 の DHCP サーバーか直孑欝は当します。リレー 76 工ージェントは 10.1.1 / 24 の DHCP クライアントのメ ッセージを中継することになります。この場合、 DHCP サーバーのリレー・エージェント定義ファイルには、リ レー・エージェントカ甘旦当するネットワーク側の IP アド レスである 10.1.1.3 を書いてください。 サーバーの起動 以ーヒの設定か完了したら、 DHCP サーバーと、必喫な らリレー・エージェントを起動します。それぞ dhcps 、 relay というコマンドです。 dhcps コマンドと relay コマ ンドの書式を図 7 に示します。 dhcps コマンドからみていきましよう。ー d スイッチを 付けるとデバッグモードとして動作します。碗れ市れ 9- は DHCP サーバーと DHCP クライアントの接続状態を 言求するファイル名です。コンパイル時にとくに変更して いなけれ ti/var/db/dhcpdb. bind になりますが、 -b ス イッチを使って別のファイルを指定することもできます。 佖 d 市ァ 00 なは DHCP サーバーの配布情報設定ファイル です。通常は /etc/dhcpdb. pool ですが、 -a スイッチで 変更できます。 I 一はリレー・エージェント定義ファ イルです。 -r スイッチでデフォルト値の /etc/dhcpdb. relay 以外に設定できます。可“ e には DHCP サー ピスを提供するネットワーク・インターフェイスを指定し ます。 2 つ以 E のネットワークに対して DHCP サーピス を提供するのであれば、 interface を複旨定します。 server-db はリレー・エージェントのサーノヾ一定義ファ イルです。 /etc/dhcpdb. server 以外のファイルを使うの UNIX MAGAZINE 1998.11

4. UNIX MAGAZINE 1998年11月号

連載 / UN Ⅸ知恵袋ーの 図 2 デフォルトルート言諚問題を解決するパッチ * * * dhcpc_subr. C. orig dhcpc—subr. c * * * 1856 , 1861 * * * * Thu Sep 10 09 : 06 : 39 1998 Fri Oct 2 11 : 00 : 06 1998 m_rtmsg . m_space ; 1856 , 1866 ー register char *cp register int 1 ; If (param = = NULL) return; 十 十 十 if (ISSET(param->got—option , ROUTER) & & param—>router ! = NULL & & param¯>router—>addr ! ー ー NULL) { bzero(&so—gate, sizeof (struct sockaddr) ) ; bzero(&so—mask, sizeof (struct sockaddr) ) ; bzero(&so—dst , sizeof (struct sockaddr)) ; * * * 1894 , 1899 * * * * 1899 , 1905 write (s , (char * ) &m—rtmsg , close(s) ; #endif 1 ) ; これらの間題を解決するアイデアとして、はかに動的 DNS (Dynamic DNS) のイ」が公開されています。興 味のある方は末尾の参考文献 [ 4 ] を参照してください。 ・ WIDE DHCP のものがあります。 フリーで入手できる DHCP ソフトウェアとして、以下 D Ⅱ CP ソフトウェア ています。今回は WIDE DHCP をとりあげ、設定から ISC (lnternet Software Consortium) か帽発、公開し して公開されているソフトウェアです。 ISC DHCP は WIDE DHCP は WIDE プロジェクトの研究成果と ftp://ftp ・ isc.org/isc/dhcp/ ・ ISC DHCP ftp://sh.wide.ad.jp/WIDE/free-ware/dhcp/ 応 OS は、 SunOS 、 BSD/OS 、 FreeBSD 、ソニ WIDE DHCP の最辛斤ノヾージョンは 1.4P3 で、 インストール 運用までを角見します。 ーの 対 72 NEWS OS です。 ソースを展開したら、ます図 2 に示すパッチを当ててく ださい。バージョン 1.4P3 では、 DHCP サーバーからデ フォルトルートの設定か配布されなかった場合、 DHCP クライアントが正常に DHCP メッセージを処理できない 場合があります。この間題を修正するパッチです。 パッチを当てたら、 OS の種類に応じて次のように make コマンドを実行します。 $ make OSTYPE=ostype os には、 news 、 bsdi 、 sunos4 、 FreeBSD のいず れかを指定します。今回は FreeBSD 2.2.7 を例に解説し ます。なお、 FreeBSD には ports というイ督はみがあり 2 簡単にソフトウェアのコンパイルとインストールができま す。ここではすべて手作業でおこなうインストールを説明 しますが、 FreeBSD を利用しているなら ports を使って もかまいません。 WIDE DHCP は DHCP メッセージ・バケットの受 信に bpf (Berkeley packet Filter) を使います (BSD 系の場合 ) 。 FreeBSD は、標準ではカーネルに bpf が組 2 詳しくは、 http://www ・jp.freebsd.org/や「 FreeBSD ハンドプ ック」 ( アスキー、 1997 年 ) を参照してください。 UNIX MAGAZINE 1998.11

5. UNIX MAGAZINE 1998年11月号

連載 / IJN Ⅸ知恵袋ーの 図 11 dhcpm コマンドの出力結果 # dhcpm edO "Sep 14 14 : 24 : 32.194555 " DHCPDISCOVER src_haddr: 008098e05C89 , dst_haddr: ffffffffffff src_IP: 0 . 0 . 0 . 0 , dst_IP: 255 .255.255.255 requested_IP : None requested/assigned lease : 3600 dhcp—tl : 0 dhcp—t2 : 0 op: 1 , xid: 52210a16 , secs: 0 , BRDCST flag: 0 ciaddr : 0.0.0.0 , yiaddr : 0.0 . 0 . 0 , siaddr : 0.0.0.0 , giaddr : broadcast : None subnetmask : None server—id : None , default router : None , primary DNS server : 0 . 0 . 0 . 0 "Sep 14 14 : 24 : 32.718803 " DHCP 0 FFER src_haddr : 00C0f6b05Cd0 , dst_haddr : 008098e05C89 src_IP : 10 . 1 . 1 . 1 , dst_IP : 10 . 1 . 1 . 3 requested—IP : None requested/assigned lease : 3600 dhcp—tl : 0 dhcp—t2 : 0 op: 2 , xid: 52210a16 , secs: 0 , BRDCST flag: 0 ciaddr : 0.0.0.0 , yiaddr : 192 .168.1.65 , s iaddr : 0.0.0.0 , giaddr : 0.0.0.0 broadcast: 10 . 1 . 1 .255 subnetmask: 255.255.255.0 server—id: 10 . 1.1.1 , default router: 10.1.1.1 , primary DNS server: 10.1.1.1 "Sep 14 14 : 24 : 33 .212617 " DHCPREQUEST src_haddr: 008098e05C89 , dst_haddr: ffffffffffff src_IP: 0 . 0 . 0 . 0 , dst_IP: 255 .255.255.255 requested-IP: 192 .168 . 1 . 65 requested/assigned lease : 3600 dhcp—tl : 0 dhcp—t2 : 0 op: 1 , xid: 4a210a16 , secs: 0 , BRDCST flag: 0 ciaddr : 0.0.0.0 , yiaddr : 0.0 . 0 . 0 , siaddr : 0.0.0.0 , giaddr : 0.0.0.0 broadcast : None subnetmask : None server—id : 10.1.1.1 , default router : None , primary DNS server : None "Sep 14 14 : 24 : 33.214369 " DHCPACK src_haddr: 00C0f6b05Cd0 , dst_haddr: 008098e05C89 src_IP : 10 . 1 . 1 . 1 , dst_IP : 10 . 1 . 1 . 3 requested—IP : None requested/assigned lease : 3600 dhcp—t2 : 0 dhcp—tl : 0 op: 2 , xid: 4a210a16 , secs: 0 , BRDCST flag: 0 ciaddr : 0 . 0.0.0 , yiaddr : 10.1.1.3 , s iaddr : 0.0.0.0 , giaddr : 0.0.0.0 broadcast: 10 . 1 . 1 .255 subnetmask: 255.255.255.0 server—id: 10 . 1 . 1 . 1 , default router: 10 . 1 . 1 . 1 , primary DNS server: 10 . 1 . 1 . 1 インターネットは、多くの分野で実験から運用の段階へ と移りつつあります。引・算機の管理を専門の部門てやって ほしいと思う半面、小回りがきくようにつねに自分たちで 管理できるようにもしておきたい、というジレンマに陥る ことはないでしようか。 たしかに、多くの言機を管理するには日りも手間もか かります。とくにトラブルが発生すると : 歉リです。日常の 雑務を減らすには、すこしでも管理の手間を省いてくれる 技術を最大限に活用したいものです。 DHCP はすくなく とも、 IP アドレスの重複管理が自動化でき、各計算機の デフォルト設正を省くという点で、新しい引・算機をネット 78 ワークに接続するときの手間を軽減してくれるはすです。 ( しま・けいいちシャーフ ) [ 赭文献 ] [ 1 ] 富永明宏 dhcp. intro. jis", in 曲叩 - ノ . イ 3 , Sep. 1998 [ 2 ] Ralph Droms, 'Dynamic Host Configuration Proto- col ” RFC2131 , Mar. 1997 [ 3 ] Steve AIexander and Ralph Droms, "DHCP Options and BOOTP Vendor Extensions ” , RFC2132 , Mar. 1997 [ 4 ] Yakov Rekhter, Susan Thomson, Jim Bound and Paul Vixie, "Dynamic Updates in the Domain Name System ” RFC2136 , Apr. 1997 UNIX MAGAZINE 1998.11

6. UNIX MAGAZINE 1998年11月号

連載 / IJN Ⅸ知恵袋ーの 図 1 DHCP による IP アドレス確保の充れ ーバーの選択 クライアント サーバー 2 DHCPDISCOVER DHCPAOK 資源保護完了 DHCPREQUEST サ DHCPOFFER 提供値の決定 DHCPDISCOVER DHCPOFFER 提供値の決定 スを効率的に利用することができます。 D Ⅱ CP による IP アドレスの割当て DHCP のクライアントは、 DHCP サーバーにネット ワークの設定値を要求します。しかし、クライアントかプ ートした直後は、自分自身の IP アドレスも DHCP サー バーの IP アドレスも分かりません。このため、 DHCP クライアント計算機は、最初に DHCP サーバーの探索を おこないます。 DHCP サーバーがみつかると、設疋値の 要求、確保した IP アドレスの解放要求、再リース要求な どをその DHCP サーバーに対して発行します。 図 1 に DHCP サーバーとクライアントとのやりとり を示します。クライアントは、最初に DHCP サーバーを 探すために、リンク層のプロードキャスト・アドレスに対 して DHCPDISCOVER メッセージを送信します。そ の際、バケットの送信元 IP アドレスには 0.0.0.0 、送信 先 IP アドレスには 255.255.255.255 を設定します。 うすることで、これまでの IP の枠組みを壊さす、 LAN 上での DHCP サーバー探索ができるようになります。 DHCPDISCOVER メッセージを受信した DHCP サ ーバーは、返事として DHCPOFFER メッセージを返し ます。このメッセージには次の↑帯にか含まれています。 提供可能な設定情報 ()P アドレス、ネットマスク、プ ・ DHCP サーバーの IP アドレス ( サーハー ID) ・リース日 ロードキャストなど ) 70 クライアントは DHCPOFFER メッセージに含まれ ているサーバー ID を取得し、以後のメッセージのやりと りを続けます。 DHCP サーバーが決定したら、クライアントは次に DHCPREQUEST メッセージを送信し、実際に設定情 報を取得します。このメッセージを受信したサー 石忍として DHCPACK メッセージを返します。これら 4 つのメッセージのやりとりか終れば、割当ては完了です。 DHCPOFFER メッセージさえあれば、 DHCPRE- QUEST メッセージと DHCPACK メッセージは不要 だと思われるかもしれません。 DHCPOFFER メッセー ジに提供可能な設圜青報か含まれているのですから、クラ イアントが DHCPOFFER メッセージを受信した段階 で設定してしまうガ去も考えられます。しかし、このな去 では LAN 上に複数の DHCP サーノヾーがあるときに矛盾 か生じることになります。 DHCPDISCOVER メッセー ジは LAN にプロードキャストされることを思い出してく ださい。その際、送信先 IP アドレスは 255.255.255.255 に設定されます。ですから、複数の DHCP サー DHCPDISCOVER メッセージを受信し、それぞれが DHCPOFFER メッセージを返信することになります。 DHCPOFFER メッセージを発行した点で割当てを完 了すると、利用されていないにもかかわらす、割当て済み になる IP アドレスができてしまいます。 D Ⅱ CP による再リースの仕組み DHCP は IP アドレスの動的な割当てができるところ に最大の利点があります。そのため、使われなくなった IP アドレスを回収する枠組みが必要です。 DHCP では、 IP アドレスの回収方法として次の 2 つを提供しています。 ・ DHCPRELEASE メッセージによる明カ勺解放 ・リース日判り切れによる日韶の解放 DHCPRELEASE メッセージは、クライアントがネ ットワークから離れるときに自主的に発行するメッセージ です。 DHCPRELEASE を受信した DHCP サーバー は、解放された IP アドレスを空きアドレスリストに加え、 次のリース要求に利用します。 DHCPRELEASE メッ セージによる解放は、クライアントか明カ勺に要求しない ーは、 UNIX MAGAZINE 1998.11

7. UNIX MAGAZINE 1998年11月号

UN Ⅸ知恵袋 島慶ー DHCP 社内 ( 部内 ) ネットワークといえば、いまではインター ネット技術を使って構築されたものが大半を占めるように なりました。技術の優位性よりも、マーケティング能力の ある製品のほうが広まっていくことの多いこの業界では、 稀にみる成功例だと思います。 インターネットの発展は、多くの人たちの無賞の貢献に よって支えられています。社内、学内ネットワークの開設 時に、一部の先駆的な技赭が寸暇を惜しんでイ 1 璞をした ところも多いはすです。いまでもネットワークの管理は、 その多くをボランティアの力に頼っています。 LAN 管理者の多くはアドレス管理に頭を悩ませます。 インターネット黎明期とは異なり、現在では 100 台を超 える LAN を複数管理しているところも増えています。ポ ランティアでネットワークを運用しているサイトならばと くに、管理の手間をすこしでも減らすことが急務になって いるのではないでしようか。 今回は、大規模ネットワークを管理する際の人手に頼る イ′ド業を減らす技術として、 DHCP (Dynamic Host Con- figuration Protocol) をとりあげます。 DHCP とは DHCP は、各引機に設定しなけ川まならないネット ワーク関連の情報を 1 カ所て管理し、設定を自動化する ためのプロトコルです。言 - 算機をネットワークに接続する ときに設定する項目を思い出してください。 IP アドレス、 サプネットマスク、プロードキャスト・アドレス、デフォ ルトルータ、ホスト名、ドメイン名といった項目を入力す るはすです。 これらの 1 帯には、基本的に LAN 内で集中管理され、計 UNIX MAGAZINE 1998.11 算機のユーザーが任意に選択することはできません。 IP アドレスやホスト名は、ユーサーの選択に任せてもいい ように思えますが、重複を避けるため、実際はかならず LAN 全体を見渡す必要があります。 DHCP は、これらの清報を DHCP サーバーて管理し、 DHCP クライアント引・算機からの要求に応じて適切に配 送します。 DHCP クライアント計算機は、 DHCP サー バーからの情報をもとに、ネットワーク関連の設定をおこ ないます。 DHCP の先駆けとして BOOTP (BOOTstrap Pro- tocol) があります。 DHCP と BOOTP の最大の違いは、 重加勺 (dynamic) な IP アドレスの管理ができるか否かに あります。 DHCP には、割り当てた IP アドレスについ て、、リース嗤 " という概念があります。通常、クライア ントはリース時間が切れる前に再リースを要求します。再 リースがおこなわれると、いったん確保した IP アドレ スを必要な時間 ( 通常はクライアントか稼動しているあい だ ) 使い続けることができます。 IP アドレスが必要なく なったら、クライアントは IP アドレスを解放します。解 放された IP アドレスは、 DHCP サーバーの空きアドレ スに登録さクライアントから次回要求があったときに 再利用されます。 BOOTP にはアドレスの自動店リ当ての機能はあります が、このようなアドレス再利用の仕組みはありません。し たがって、 BOOTP を利用するクライアントの数と同し 数だけ、事前に IP アドレスを石何呆しておく必要がありま す。これに対して、 DHCP では同時に運用するのでない かぎり、複数のクライアントか 1 司し IP アドレスを使えま す。ですから、同時に運用する可能性のあるクライアント の最大数だけ IP アドレスを石呆すればよく、 IP アドレ 69

8. UNIX MAGAZINE 1998年11月号

連載 / UN Ⅸ知恵袋ー・ かぎり発行されません。しかし、リース時間のほうはサー バーで管理されるため、クライアント側て軻もしないでい ると、 IP アドレスは一定時間後に回収されてしまいます。 DHCP クライアントか現在取得している IP アドレスを 使い続けるには、再リースをおこなう必要があります。 再リースのための特別なメッセージはありません。 DHCPREQUEST か再リースメッセージを兼ねていま す。とくに指定しないかぎり、クライアントはリース時間 の 50 % か過したときに再リース要求を発行します。 リース時間中に DHCP サーバーが別のコンピュータ に移動するような場合があるかもしれません。そうする と、リースの延長ができなくなってしまいます。リース時 間の 50 % か経過したときに発行した再リースメッセージ に DHCP サーバーか応えなかった場合、クライアントは リース時間の 87.5 % か経過した時点で DHCP サーバー の明架索を開始します。それでもサーバーがみつからない と、残念ながらクライアントの IP アドレスは DHCP か らみた場合には無効になります ( その際にも、この IP ア ドレスを用いた通信はできます ) 。 リース時間、再リースを開始する時間、サーバーの叫 索を開始する時間は、 DHCP で値を設定して配布するこ とができますから、ネットワークの工竟に合わせて細かく 設定することが可能です。 DHCP と DNS DHCP は、 IP アドレスの割当て、各計算機の LAN 接 続設定などを完全に自動化します。管理者にとっては有用 な技術ですが、 DNS (Domain Name System) との相 性か、間題です。 DNS は、もともと IP アドレスが頻繁に変わったり、 重加勺に割り当てられることを想定してデサインされてはい ません。 DNS では、言 - 算機名と IP アドレスの対応 ( 資 源レコード : Resource Record) を間い合わせるプロトコ ルは定義されていますが、資源レコードの更新や追加のた めのプロトコルは存在しません。ですから、 DHCP クラ イアントに IP アドレスを割り当てたとしても、 DNS の 本咎はみを使って言 t 算機名から IP アドレスを検索できない のです。当然、 IP アドレスから計算機名を検索する逆引 きに関しても同様です。 UNIX MAGAZINE 1998 ユ 1 この間題は、完全なネットワーク・クライアント計算 機、すなわち、ネットワークに対してなんのサービスも提 供しない言 1 算機であれば無視して運用できます。サーバー としてサーピスを提供しない計算機については、計算機名 から IP アドレスを検索する必要がないからです。ところ が、 DHCP クライアントが Web サーバーやファイルサ ーを兼ねる場合には、とたんに問題が表面化します。 DHCP で IP アドレスを取得した Web サー ーにアク セスするために、 Web クライアントはどんな URL を指 定すればよいのでしようか。 現在ではどうしようもありません。回避策として以下の 2 通りが考えられます。 ・重加リ当てをやめる。 ・ Microsoft の WINS (Windows lnternet Name Ser- vice) を用いる。 重加リ当てをやめ、特定の言 t 算機に特定の IP アドレス を付けるようにすれば、あらかじめ DNS の資源レコー ドに登録しておくことができます。重加リ当ては DHCP の最大の特徴ですが、たとえ動的割当てができなくても DHCP を使うメリットは十分にあります。サプネットマ スクやプロードキャスト・アドレス、糸幇旨定などは、静 的に IP アドレスを割り当てる場合にも利用できるからで す。ただし、 IP アドレスの有抔リ用はできません。 2 番目の WINS を使う方法は、 DNS と DHCP の 問題の多くを鮹夬しますが、クライアントからサーバーま で、すべて Microsoft の製品で揃える必要があります。 WINS とは言 - 算機名の重加勺割当てを可能にするためのプ ロトコル 1 です。各クライアントは、自分か利用する名前 を WINS サーバーに中請し、名前の利用権を取得します。 名前の衝突は WINS サーバー側で管理され、重複した名 前が LAN 上に存在しないことを一正します。 Microsoft の Windows NT Server には、 WINS と DHCP を連 携させる仕組みがあります。また、 DNS を用いて WINS や DHCP で割り当てられた計算機名、 IP アドレスを探 索するイ督はみも提供されています。もし、 DNS 、 DHCP 、 クライアントがすべて Microsoft Windows て漣用され ているのなら、一考の価値はあるでしよう。 1 確には、計機名にかぎらす、さまざまな源の名前を動的に管理しま す。 71

9. UNIX MAGAZINE 1998年11月号

表 1 値 1 6 11 17 20 DHCP サーパーのリレー・エージェント定義ファイル 連載 / UN Ⅸ知恵袋ー・ メディア動リ メディア Ethernet (IOMB) IEEE802 Networks LocalTalk HDLC Serial Line 1 図 6 図 4 図 5 リレー・エージェントが要となるネットワーク構成 DHCP 10.1.2.10 DHCP クライアント IO. 1.2 / 24 10.1.2. Ⅱ リレー 工ーンエント Ⅱ). 1.1.3 10. l. レ 24 での時間の割合です。 DHCP クライアントは曲 tl で 指定した時間か経過すると、現在の IP アドレスを割り 当てた DHCP サーバーに対して DHCPREQUEST メッセージを送信して再リースをおこないます。 DHCP- REQUEST に対する返事が dht2 で指定した時間まで 待っても受信できないと、 DHCP クライアントはサー バーがいなくなったと仮定し、リース時間の延長のために DHCPREQUEST メッセージをプロードキャストしま す。 dhtl と dht2 を指定しなかった場合はデフォルト値 カ甘采用されます。それぞれのデフォルト値は 500 と 875 、 すなわち 50 % 、 87.5 % です。 brda はサプネットのプロー ドキャスト・アドレスです。 r 。 ut はルータの IP アドレ スです。複数のルータがサプネット上に存在する場合は、 スペースで区切って IP アドレスを複数記述します。 以降は、各アドレスに対する個別の設定です。 WIDE DHCP では次の 4 つの割当てガ去から選択できます。 ・手重丿当て ・重加轄リ当て 重加勺 ( 無限 ) 割当て ・ BOOTP 互換割当て ラベル tn002 と tn003 は手重嬬リ当ての例です。 ipad か割り当てる IP アドレスの指定です。 clid は DHCP クライアントの識別値を指定します。仕様では、 DHCP サーバーが個別のクライアントを識別することさえでき れは・、何を使ってもよいことになっています。 WIDE DHCP クライアントの場合は識別値に MAC アドレスを 用います。識別値の形式は、 media-type:media-address です。 Ethernet の場合、 media-type は 1 で、 media- 佖a市℃ ss には Ethernet アドレスを指定します。 media- 匆には IANA か規定する値を使用します。表 1 に代 表的な値を示します。詳しくは RFC1700 の ARP (Ad- dress Resolution ProtocoI) の章を参照してください。 tn002 では、 MAC アドレスとして 0X008098e05C89 UNIX MAGAZINE 1998.11 リレー・エージェントのサーパー言聢ファイル 10 . 1 . 2 . 10 10 . 1 . 1 . 10 255 . 255 . 255.0 75 ニュアルを参照し、キーワードと値を追加してください。 値を配布したいときは、 dhcpdb. pool のオンライン・マ 多くの場合、これらの情報だけで一ト分でしよう。牛未な るはうか望ましいと書かれています。 るには、 albp キーワードを使うよりも、手重丿店リ当てにす ドキュメントによると、 BOOTP クライアントに対応す 割り当てることができます。ただし、 WIDE DHCP の にすると、 BOOTP クライアントに重加勺に IP アドレスを tn030 、 tn031 は BOOTP の設定です。 albp を true maxl を 0x 仕仕仕仕にするとリース時間が無限になります。 当てとほば同しですが、リース時間の制限がありません。 tn020 、 tn021 は重加勺 ( 無限 ) 割当て刎列です。重加リ 要求はできません。最長でも 3 , 600 秒となります。 ますから、クライアントは 3 , 600 秒を超えるリース時間の ス時間は 3 , 600 秒になります。 maxl も 3600 になってい ており、クライアントがとくに指定してこない場合、リー 大リース時間の指定です。例では、 dfll が 3600 になっ 当てます。 dfll はリース時間のデフォルト値、 maxl は最 アントからの要求に対し、 10.1.1.10 と 10.1.1.11 を割り tn010 、 tn011 は轄リ当ての例です。 DHCP クライ しても有効です。 えられます。手重糖リ当ては、 BOOTP クライアントに対 の値をもつ DHCP クライアントに対して、 10.1.1.2 が与

10. UNIX MAGAZINE 1998年11月号

連載 / IJN Ⅸ知恵袋ーの 図 3 WIDE DHCP サーパーの言聢ファイル # define a g10ba1 entry which specifies the stuff every host uses . : ! snmk=255.255.255.0 : tmof = 32400 : \ global : :dnsd=sharp. co ・ jp:dnsv=10.1.1.1: # define different master entries for each subnet . = global : dhtl = 500 : dht2 = 850 : brda = 10.1.1.255 : rout = 10.1.1.1 : :tblc net01 : # entries for manual allocation (DHCP , BOOTP) : ipad=IO. 1 . 1 . 2 :tb1c=net01: clid = " 1 : 0X008098e05C89 ” : tn002 : 10 . 1 . 1 . 3 :tb1c=net01 : clid = ” 1 : 0X00C0f6b05Cd0 " : ipad= tn003 : dynamic allocation (DHCP) # entries for : ipad=10.1.1.10 : dfll = 3600 : maxl = 3600 :tblc=net01 : t Ⅱ 010 : ー 10 . 1 . 1 . 11 : dfll = 3600 : maxl = 3600 :tbIc=netOI : t Ⅱ 011 : : ipad— dynamic / automatic allocation (DHCP) # entries for =Oxffffffff : ipad=10.1.1.20 :tbIc=netOI : : maxl t Ⅱ 020 : =Oxffffffff:ipad=10.1.1.21:tb1c=net01: tn021 : :maxl automatic allocation (BOOTP) # entries fO て : ipad=10.1.1.30:a1bp=true:tb1c=net01 : t Ⅱ 030 : : ipad=10.1.1.31 : a1bp=true:tb1c=net01 : tn031 : たように、 WIDE DHCP のクライアントでは利用され 設定ファイルの詳細 ませんが、 Windows など他の DHCP クライアントて利 用されることがあります。 s k の前に、 ! " カ咐いていま コンパイル時に明示的に変史していなけれは、設疋ファ す。各キーワードの : 寬こ、、 ! " を付けると、クライアント イル名は /etc/dhcpdb. pool になります。図 3 に設疋フ カイ直を要求してこなくても強制的にサーバーからの応答に ァイルの例を示します。 挿入されるようになります。これは、 RFC2131 に以下の いきなり謎の文字列か現れて戸惑うかもしれませんが、 当があるためです。 意眛カ吩かれば簡単です。設定ファイルは行単位で記述さ かならす次の書式になっています。 The server MUST return to the client: ( 中略 ) : ん e 囮 0 = ゼ佖ん e : [ ん e 司 = ゼ佖ん e : ・ Parameters with non-default values on the label は各行を識別するためのラベルです。設疋行中で、 client's subnet 他の行を参照する際に利用します。ん囮。は DHCP で 図 3 の例では、 IP アドレスとして 10.1.1. xx を用いて 配布する情報に 1 対 1 て対応したキーワードです。 value います。通常、 10. xx. xx. xx のネットワークのサプネット はキーワードに対応した値です。たとえは、キーワードが こでは 255.255.255.0 を マスクは 255.0.0.0 ですが、 リース時間であれは、ん e には秒数を書きます。なお、 使っています。 DHCP クライアントカ墹違ってサプネッ バックスラッシュを行末に付けれは、 1 つのラベルに対す トマスクを設定しないように、強制的にサプネットマスク る設定を複数行にわたって書くことができます。 を提供しなけ川まなりません。 上から順にみていきます。 global ラベルでは、すべて net01 ラベルでは、サプネット単位の設定を記述して の配布情報に共通なキーワードを指定します。 snmk はサ います。 tblc は他の設定行の挿入です。 global ラベル プネットマスクの指定です。ここでは 255.255.255.0 を の設定を各サプネットの設定に反映させるため、 tblc を 設疋しています。 tmof は世界標寺からのオフセットを 使って引用します。曲 tl は再リースを開始するまでの時 秒で指定します。日本は 9 日罸制すれているので、 3 , 600 x 間の割合です。需 % 単位で指定します。 50 % ならば 500 32 , 400 です。 dnsd 、 dnsv はそれぞれ、 DNS の 9 になります。曲 t2 は DHCP サーバーの再探索開始ま ドメイン名と DNS サーバーの IP アドレスです。前述し = 二ロ bel : 74 UNIX MAGAZINE 1998.11