DHCPOFFER - みる会図書館


検索対象: UNIX MAGAZINE 2004年12月号
13件見つかりました。

1. UNIX MAGAZINE 2004年12月号

図 12 ルータが送出した DHCPOFFER バケット (a) ユニキャストで酬言された DHCPOFFER メッセージ ファイル ( E ) 偏集 ( 日キャプチャ 0 モニタオプション 0 ワークスペース匿 ) ウインドウヘルプ ( 旦 ) ニ」亘」」 ・お当ー↑■ は l' LAN ロは可言囲ー多引」観↓」印 255 .255 .255 .255 DHCPD I SCOVER 255.255.255.255 DHCPOFFER 2 5 5 . 255 . 255 . 2 5 5 DHCPREQUEST を・ ASTEO Eyes ー [ キャプチャデータく dhcp. enc> ] 回ロ DHCP DHCP DHCP 0.000000 0 . 3 囲 053 い 0 . 000 541 2 0 0 0 リ・Ⅱ・ OHCPOFFER ー 1 DHCP 卩 92 : 1 . 正 2 0 .005741 5 132. 1 圏 . 0 . ロ 1 1 ロ身 n ワ n 1 nprp 凵「 P 宛先はホスト B (DHCPDISCOVER を送ったホスト ) の MAC アドレス 4 Data L ink Cont rol 00 : OB : ー . DF Dest i nati on Address 00 : 07 : ー : D0 Sou r08 Add ress 0X0800 (IPv4) Type lnternet ProtocoI Version 4 (IPv4) Sou rce I P Add ress Dest i nat i on I P Add ress Opt i on ワークスペース 1 192.1 . 0 . 1 132.168.0.2 No I Pv4 opti ons DHCP サーバーが割り 当てる旧アドレス 4 ID : 5 192.169 Ⅱ 1 ー > 192168.02 / (b) DHCP の / ヾケットにはトランザクションを区別するための言リ子か含まれる Dynam iC HOSt Conf i gurat ion Protorol 2 ( BOOTREPLY) Opcode 1 (Ethernet ( 1 b ) ) Ha rdwa re Type rdwa re Add ress Lengt h oct ( s ) トランザクションを区別するための識別子 ( DHCP クライアントが選んだランダムな数値 ) IP アドレスの重複の検査 れていないので、 この IP アドレスからはそのバケットが 自分宛かどうかカ斗リ別できません。 DHCP の仕様によると、 DHCP サーバーは提供する IP アドレスが使用中でないかどうかを確認することにな Transaction ID っています。そのため DHCP サーバーは、 DHCPDIS- DHCP クライアントは、 DHCPOFFER の配信がプ COVER を受け取って提供する IP アドレスの候補を決め ロードキャストとユニキャストのどちらであっても、 IP ア たら、 DHCPOFFER を返す前に確認作業をします。 ドレスが割り当てられていない状態で自分宛のバケットを 図 13 は、 DHCPDISCOVER から DHCPACK まで 判別して処理する必要があります。 に流れたすべてのバケットを表示したものです。 DHCP- DHCP?S ケットのなかには、一連のやりとり ( トランザ 、、 ICMP DISCOVER と DHCPOFFER のあいだに クション ) を関連づける識別子として Transaction ID が Echo Request" が 2 回流れています。これらのバケット 含まれています ( 図 12 ー b ) 。 DHCP クライアントは、 DH ー の送信元は 2 台の DHCP サーバーで、 CPDISCOVER メッセージを送信するときに、ランダム に選んだ数値を Transaction ID としてバケットに埋め ・ 192.168.0.1 ( ルータ ) は 192.168.0.2 のアドレスが使 込みます。以後は、この識別子を使用して DHCP クライ われていないこと ・ 192.168.0.201 ( インターネット家電 ) は 192.168.0. アントと DHCP サーバー間のトランザクションを区別し ます。 211 のアドレスカ吏われていないこと 2324623336 ー Transact ion ID 136 UNIX MAGAZINE 2004. 12

2. UNIX MAGAZINE 2004年12月号

図 2 DHCP で IP アドレスを取得 DHCP クライアント プロードキャスト プロードキャスト DHCP DHCP サーバー 2 DHCP サーノヾー n DHCPDISCOVER 「ほい、どーぞ」 DHCPACK アドレスをください」 「 DHCP サーバー1 さん DHCPREQUEST 「このアドスではどな 0 、や ? 」 DHCPOFFER 「誰か旧アドレスをください」 各サーバーカそれぞれ DHCPOFFER メッセージを返し ます。 DHCPOFFER メッセージは、、提供の申し出 " にすぎ ないので、この時点ではまだ IP アドレスは決定しません。 DHCPOFFER メッセージを受け取った DHCP クライ アントは、申し出のあったネットワーク情報から好みのも のを選び、、、これを使わせてほしい " ということを知らせる DHCPREQUEST メッセージを返します。 DHCPREQUEST メッセージはプロードキャストで 配信しますが、バケット内にはどの DHCP サーバーへの 応答かを示す識別子 (DHCP サーバーのアドレス。彳も ) カ鯉め込まれています。これにより、複数の DHCP サー バーが DHCPOFFER メッセージを送った場合でも、ど のサーバーに対する応答なのかが区別できます。さらに、 DHCPREQUEST メッセージがプロードキャストで配 信されることで、他の DHCP サーバーもリソースを解放 するタイミングを知ることができます。 DHCPREQUEST を受け取った DHCP サーバーは、 DHCP クライアントに対して、、アドレスを使ってもよい " ということを最糸寉認する DHCPACK メッセージを送 ります ( アドレスの使用を拒否する場合は、 DHCPNAK 128 メッセージを送ります ) 。 これで、 IP アドレスの取得が完了します。 2 台の DHCP サーバー 図 3-a は、ホスト B が IP アドレスを取得する際にや りとりされた DHCP のバケットを表示したものです。パ ケットの流れを図示すると、図 3-b のようになります。分 かりやすくするため、 DHCP のバケットだけを取り出して 表示しています。 図 3 をみると、ホスト B がプロードキャストした DH ー CPDISCOVER に対して、 ・ルータ ( 192.168.0.1 ) ・インターネット家電 ( 192.168.0.201 ) の 2 つが DHCPOFFER を送って応答していることが分 かります。しかし、図 1 のネットワークでは、 DHCP サ ーバーはルータだけのはずです。それなのに、インターネ ット家電が DHCP サーバーとして返事をしているところ ・ DHCPREQUEST ・ DHCPOFFER さらに、 に問題がありそうです。 が流れたタイミングから、ホスト B はインターネット家電 UN 工 X MAGAZINE 2004. 12

3. UNIX MAGAZINE 2004年12月号

ク・ミニ実験室① ネットワー 図 16 IP アドレスの取彳台から割当てまでに流れた DHCP バケット 。自ファイル集 ( 印キャプチャ 0 モユオプション 0 ワークスペースウインドウへ ) け⑧、」劃凶 ロⅡ朝目ー〇 & 91 ↓ーユ 255.255.255.255 紀 P 255.255.255.255 DHCP DHCP 255.255.255 55 HP 255.255.255.255 132.1 圏 . 0.5 紀 P ・・ ASTEO Eyes - [ キャプチャデータく面 c enc 月 0.000000 2004 / 10 / 12 1 .00 給 94 2004 / 10 / 12 3.998053 2004 / 10 / 12 1 .002575 2004 / 10 / 12 8.000338 2004 / 10 / 12 0.003777 2004 / 10 / 12 0.000332 2004 / 10 / 12 0.0 囲 013 2004 / 10 / 12 DHCPD 旧 COVER の送信を繰り返して も希望する旧アドレスの提供がなかった ので、 3 回目に提供された旧アドレスを使う DHCPDI SCOVER DHCPOFFER C*CPDI SCOVER DHCPOFFER ! 囲 C 印 COV 田 C}{CPOFFER DHCPÆQLEST DHCPÅCK OHCP ワークスペース 1 DHCP サーバーから提供の申し出があった旧アドレス バケット中で希望する旧アドレス ( 192.168.0.211 ) を宣 ない。 ・ 2 回目の DHCPDISCOVER は 1 回目の DHCPDIS- COVER の 5 秒後 3. DHCP サーバーは、 DHCPREQUEST が送られてこ ないので、 IP アドレスを割り当てない。 ・ 3 回目の DHCPDISCOVER は 2 回目の 9 秒後 4. 希望する IP アドレスの提供 (DHCPOFFER) がなか となっています。これらは、 DHCP クライアントが希望す ったので、 DHCP クライアントは 2 回目の DHCPDIS - る IP アドレスを提供してもらうために待つ時間です。た COVER を送信し、再度希望する IP アドレスの取得を ったの 2 回ですが、それでもすこしずっ待ち時間を延ばし 試みる。 ていることが分かります。 5. DHCP サーバーは、今度は 192.168.0.2 のアドレスの もう 1 つ興味深いのは、 DHCPDISCOVER から DH- 提供を申し出る ( 2 回目の DHCPOFFER)0 CPOFFER までの時間です。 6. しかし、このアドレスも DHCP クライアントの希望に そえす、 DHCPREQUEST は週言されない。 ・ 1 回目の DHCPOFFER ( 192.168.0.5 ) までは約 1 秒 7.3 回目の DHCPDISCOVER が送イ言される。 ・ 2 回目の DHCPOFFER ( 192.168.0.2 ) までは約 1 秒 8. DHCP サーバーはふたたび 192.168.0.5 のアドレスの ・ 3 回目の DHCPOFFER ( 192.168.0.5 ) までは約 4 ミ 提供を申し出る ( 3 回目の DHCPOFFER)0 リ秒 ( 0.004 秒 ) 9. DHCP クライアントは、 DHCPDISCOVER を繰り 「 IP アドレスの重複の検査」の項で触れたように、 DHCP 返しても IP アドレスを取得できない可能性があるので、 サーバーは、 DHCPOFFER で提供を申し出る IP アド 3 回目で妥協して DHCPREQUEST を週言する。 レスが未使用かどうかを確認しています。 1 回目と 2 回目 10. DHCPREQUEST を受け取った DHCP サーバーは は異なる IP アドレスを提供しようとしているので、アド DHCPACK を返し、 IP アドレスの取得力院了する。 レスが囀吏用かを確認するために、それぞれ 1 秒の待ち時 図 16 では、 DHCP のメッセージの流れだけでなく、各 間が生じています。これに対して、 3 回目は 1 回目と同じ バケットが j 当言されるまでの時間にも着目してください。 IP アドレスなので、検査を省略して DHCPOFFER を 139 UN 工 X MAGAZINE 2004. 12

4. UNIX MAGAZINE 2004年12月号

図 15 DHCPOFFER と DHCPREQUEST バケットに言ホされたサーバー識別届 (a) インターネット家電か送信した DHCPOFFER バケット 192.168.0.201 ←サーバー識別子 ( DHCP サーバーの旧アドレス ) (b) ルータが送信した DHCPOFFER バケット Magic C00kie r SS e8. S Server ldent if ier Server ldent ifier DHCP 0pti ons DHCP 0pti ons 132.168.0.201 ← 対する応答であることを示す インターネット家電の DHCPOFFER に 3 ( DHCPREQUEST) Mag i 0 C00k i e (c) ホスト B か送信した DHCPREQUEST バケット 192.168.0.1 ・←サーバー識別子 ( DHCP サーバーの旧アドレス ) 引 c C00kie Server ldent ifier 引 ient ldent if ier DHCP Message Type DHCP 0p い ons QUEST をプロードキャストして IP アドレスの割当てを 正式に要求します。複数の DHCP サーバーから DHCP- OFFER が送られたときのため、 DHCPOFFER と DH- CPREQUEST バケットには DHCP サーバーを区別す るための識別子である Server ldentifier が含まれてい ます。 図 15 は、 DHCPOFFER と DHCPREQUEST バケ ットに記述されたサーバー識別子です。 DHCPOFFER では、各 DHCP サーバーの IP アドレスを Server lden- tifier に設疋しています。 DHCP クライアントは、 IP ア ドレスの割当てを受ける DHCP サーバーと同じ識別子を Server ldentifier にセットし、 DHCPREQUEST ノヾケ ットを送り出します。 DHCP サーバーは、受け取った DHCPREQUEST パ ケットの Server ldentifier が自分の識別子 ()P アドレス ) と一致したら、実際に IP アドレスを割り当てます。 希望する IP アドレスが返されないとき DHCP クライアントから IP アドレスカ腰求されても、 ・使用済み ・割当て可能なアドレスの範囲外 などの理由で、どの DHCP サーバーもその IP アドレス を返せないことがあります。このような場合に、希望する IP アドレスを優先する DHCP クライアントがどのように 振る舞うかを、さきほどの図 1 のネットワークとホスト B 138 を使った簡単な実験で確かめてみましよう。 手順は次のとおりです。 1. ホスト B に対してインターネット家電から IP アドレス を割り当てる。 2. インターネット家電の DHCP サーバーを停止する。 3. DHCP で取得したホスト B の IP アドレスを解放する。 4. ホスト B の IP アドレスを DHCP で再取得する。 DHCP クライアントは手順 4 で以前と同じ 192.168.0. 211 のアドレスを希望しますが、ルータの DHCP サーバ ーカ甘是供可能なアドレスの範囲ではないため、割当てを受 けられません。 図 16 は、ホスト B が手順 4 で IP アドレスの取得を 始めてから、 IP アドレスが割り当てられるまでに流れた DHCP バケットの様子です。 この図をみると、 DHCP クライアントが DHCPDIS- COVER メッセージを 3 回送信しています。いすれのメ ッセージにも、希望する IP アドレスを宣言した、 Requested IP Address: 192 .168.0.211 が含まれています。 UNIX MAGAZINE 2004. 12 ではなかったので、返事 (DHCPREQUEST) を返さ 2. しかし、 DHCP クライアントは希望する IP アドレス 回目の DHCPOFFER)0 して 192.168.0.5 のアドレスの提供を申し出ている ( 1 1. DHCP サーバーは 1 回目の DHCPDISCOVER に対

5. UNIX MAGAZINE 2004年12月号

ク・ミニ実験室① ネットワー 図 13 DHCPDISCOVER から DHCPACK までのバケット ー自ファイル 0 偏集住キャプチャ 0 モニタオプション 0 ワーりスペスウインドウヘルプ ( 旦 ) 」」一 ロ 1 朝目巨 1 な目 91 ロロ↓」副 発作ーア " 信先アドレスマロ IDv フ ICMP ICMP ・を ASTEO Eyes ー [ キャプチャデタく dhcpenc> ] 夕日門 0 . 圓 0 圓 0 20 0 .002412 20 0 . 0 圓 623 20 0 . 33 30 1 8 20 0 . 圓 0 5 41 20 0 . 圓 5741 20 0 . 0 圓 303 20 ママリ Type: 8 Echo Request Type: 8 Echo Request 1 3 2 . 1 . 0 . 2 1 3 2 . 1 . 0 . 2 1 1 1 32 . 168.0. 1 2 1 32 . 1 . 0 . 2 0 1 ! DHCPREQLIEST DHCPOFFER DHCPACK DHCP DHCP DHCP 「リ 0 こ L.n れ 0 Ln LC> 《 C ・、 Ln 「リ 0 こ Ln 「リ - リリ L.n 0 と 1 ーっー」 ・日・ 0 リ 0 リ 0 1 ー ( 1 ー ワークスペース 1 提供しようとしている旧アドレスが 使われていないかを確認している 図 14 ICMP Echo Request のル待ち (a) インターネット家電の DHCP サーバーが待つ時間 レム ID マ発信元ア ... マ受信先つド .. マプロト - 、 - マサマー 0 255.255.255.255 DHCP DHCPD I SCOVER 2 1 32 . 1 . 0 . 20 1 1 3 2 . 1 』 . 2 1 1 I CMP Type:8 Echo Request 3 1 3 2 . 1 68 』 . 2 0 1 255.255.255.255 DHCP DHCPOFFER 回図 キャプチャデータく dhcp. enc> ー " ルタ時問 0 』圓 0 圓 0 . 圓 3 0 35 ℃ MP バケットと DHCP バケットの時間 差 ( 秒 ) 。約 1 秒待っても Echo RepIy が 返されなければ DHCPOFFER を送信 (b) ルータの DHCP サーバーが待つ時間 ロ 1 朝巨巨ー一 019 。 1 ↓ 1 印 フし一ムⅢマ発作 . マゴロトコルマサマリ 0 0 』 . 0 . 0 255.255.255.255 DHCP DHCPD I SCOVER Type: 8 Echo Request 1 32 . 1 . 0 . 1 1 3 2 . 1 63 . 0 . 2 ICMP DHCPOFFER 5 1 32 . 1 』 . 1 1 3 2 . 1 圏 . 0 . 2 DHCP 国回区 キャプチャデータく dhcp. enc> 0 . 0 圓圓 0 0 . 圓 2412 ロ . 3 3 3 3 2 3 DHCPOFFER メッセージを送信していました ( 図 14 ) 。 を確認しています。 DHCP サーバーは ICMP Echo Request の送信後、し DHCP では IP アドレスを取得する際に多少時間がか ばらく待っても応答がなければ、そのアドレスを利用でき かるような感じがしますが、その時間は IP アドレスの重 ると判断して DHCPOFFER を送ります。もしも Echo 複検査に必要なのです。 Request に応答があれば、別の IP アドレスの候補を選ん DHCPREQUEST で重複を検査します。 ICMP Echo Request の応答を待っ時間はこれまた実 DHCP クライアントは、 DHCPOFFER で提供される 装に依存しますが、今回のケースでは、 1 秒ほと彳寺ってから IP アドレスのなかに気に入ったものがあれば、 DHCPRE- 137 UNIX MAGAZ 工 NE 2004. 12

6. UNIX MAGAZINE 2004年12月号

ク・ミニ実験室① ネットワー 図 10 DHCPOFFER をプロードキャスト 自ファイル編集 ( 日キャプチャ 0 モニタオプション 0 ワーりスペースウインドウ咽 ) ヘルプ ( 旦 ) 、凵劃 . 凶 は - LAN ロ」朝囲 1 一〇 01 = 」ロ↓↓印 ーム ID マ タ時問 愛 55 .255 .255.255 0 .000000 2 ーを ASTEO Eyes ー [ キャプチャデータ <dhcp. enc> ] - 三 0 マロ DHCP 2 5 5 . 2 5 5 . 255.255 ;DHCPD I SCOVER 0 0 . 0 . 0 . 0 は旧 [ : P 3 は当 2.1 』 . 1 0 . 3 囲 053 DHCPOFFER DHCPREQUEST DHCPOFFER 凵「 PA 「 0 .000541 ′ 0 .005741 ・Ⅱ・れ 0 ・ⅱ - れこワ ・Ⅱ・ -1 ー一 1 255.255.255.255 DHCP 1 32 . 1 . 0 . 2 DHCP 「 iPf'P Data L ink Control 同じセグメント上のすべて FF:FF:FF:FF:FF:FF ( Bro 記 c い Dest i nat i on Add ress のホストにプロードキャスト 08 : 00 : ー : 04 ( ー ) Source Add ress 0X0800 (IPv4) Type lnternet Protocol Version 4 (IPv4) Heaae r l-:neCkSl-Jff1 Sou rce I P Add ress Dest i nat i on I P Add ress Opt i on ワクスペース 1 UXföö4 1,correct} 1 32 . 168.0.201 第 255.255.255.255 No I Pv4 opti ons TCP / 旧レベルでも プロードキャストで配 ニ = ロ / 5 ] 皿 3 1 , 1 Ⅱ 2 ロ 1 つ 25525 図 11 ホスト B カ壅言した DHCPDISCOVER バケット ( 一部 ) Dynam ic Ho Conf igurat ion Protorol 1 ( BOOTREQUEST ) Opcode 1 (Ethernet (10Mb)) Ha rdware Type 6 0 戓社 ( s ) Ha rdware Add ress Lengt h Hop Count 0 T ransact i on I D 2324623336 DHCP クライアントが Bloadcast Flag を TRUE ( 1 ) 0 ーにした場合、 DHCP サーバーはバケットをプロード Broadcast 臼 キャストで送信する必要がある ress 次に、ルータが出した DHCPOFFER バケットをみて DHCP クライアントがあります。これは想像ですが、イン ターネット家電の DHCP サーバーは、このような DHCP みましよう ( 図 12- a ) 。こちらのバケットは、 クライアントにも DHCPOFFER メッセージが届くよう ・ Ethernet ヘッダの Destination Address は、、 00 : OB : に、プロードキャストを使っているのでしよう。 眦 : 眦 : 眦 : DF DHCP には、 DHCPOFFER と DHCPACK をプロ ・ IP ヘッダの Destination IP Address は、、 192.168.0. ードキャストで送るように要求する仕組みもあります。図 11 は、ホスト B が配信した DHCPDISCOVER バケ となっています。 ットの一部です。、、 Broadcast Flag" の値が、、 0 " ではな いとき ( 正確には、フラグに割り当てられた 1 バイトの最 Ethernet の宛先アドレスはホスト B の MAC アドレ 上位ビットが 1 のとき ) 、 DHCP サーバーは DHCP クラ スです。ュニキャストで配信されるので、ホスト B だけが イアントに対してプロードキャストでバケットを送信しな このメッセージを受け取って処理します。したがって、関 ければなりません。 係のないホストには DHCPOFFER を処理する負荷はか かりません。 今回のホスト B はプロードキャストを要求していないの IP の宛先アドレスは提供予定の IP アドレスです。もち で、インターネット家電の DHCP サーバーが気を利かせ すぎたというところでしよう。 ろん、 DHCP クライアントにはまだ IP アドレスが設疋さ 135 UNIX MAGAZINE 2004. 12

7. UNIX MAGAZINE 2004年12月号

ミニ実験室① ネットワーク・ 図 3 ホスト B が IP アドレスを取得したときの D HCP バケット (a) ホスト B の IP アドレス取彳寺にやりとりされた DHCP バケット ー自ファイル編集住キャプチャ 0 モニタ ( M ) オプション 0 ワりスペース、ウインドウ ( 迎ヘルプ ( 旦 ) = 恆」 . 凶 ロⅡ面目国 1 1 @ 多住↑」ロ↓「む副 作ーア " レマ受作 フーム ID• マロコ丿マ 255.255.255.255 iDHCP 愛 55 . 255.255.255 DHCP 255.255.255.255 DHCP 1 92 . 1 68 . 0 . 2 DHCP 255.255.255.255 DHCP 4 DHCP 0 を ASTEO E ー [ キャプチャデータく dhcp enc> ] ーレ時問 0 . 圓圓 00 2 圓 0 .336053 200 0 . 圓 0541 2 圓 0 . 005741 2 圓 0 .000303 200 DHCPD I SCOVER DHCPOFFER DHCPREQUEST DHCPOFFER DHCPACK ・Ⅱ・ 0 こ - Ⅱ・ 0 ここ (b) DHCP タ里の流れ ホスト B ( アドレスはまだない ) インターネット家電 ( 192.168.0.201 ) ( 192.168.0.1 ) DHCPDISCOVER DHCPOFFER DHCPREQUEST DHCPOFFER DHCPACK ・ホスト B は偽の DHCP サーバーから誤った経路情報 から取得した誌定を利用していると考えられます。 を受け取った。 次に、インターネット家電が送った DHCPOFFER パ ・ホスト B は誤った経路情報を使ったために LAN の外 ケットの中身を調べてみましよう ( 図 4 ) 。 と通信できなかった。 ・ IP アドレス (Your IP Address) とサプネットマスク こまで分かれば解決するのは簡単です。インターネッ (Subnet Mask) には問題はない。 ・デフォルトルートのアドレスカ呉っている (Router の ト家電の DHCP サーバーを停止し、ホスト B に正しい 値が、、 192.168.0.201 " になっている ) 。 DHCP サーバーから IP アドレスとデフォルトルート情 報を再取得させたところ、インターネットに接続できるよ つまり、インターネット家電力ったデフォルトルート うになりました。 を返しているため、この定を受け取ったホスト B は通信 できなくなったのです。 今回のネットワーク・トラブルの原因をまとめると、次 のようになります。 今回のトラブルにも出てきたように、ルータやインター ネット家電など、 DHCP 機能を備えたネットワーク機器が 偽の DHCP サーバー ( インターネット家電の DHCP 増えています。このような機器が 1 つのサプネットに 1 台 サーバー ) か起動していた。 DHCP の振舞いの調査 129 UN 工 X MAGAZINE 2004. 12

8. UNIX MAGAZINE 2004年12月号

図 9 イ立の決定 (a) インターネット家電の DHCP サーバーがさきに苔 インターネット家電 ロ日朝白囲 1 一〇い 14 観↓」朝副 からの応答 マ越信先 ド 255.255.255.255 255.255.255.255 255.255.255.255 1 3 2 . 1 68 . 0 . 2 255.255.255.255 キャプチャテータく dhcp enc> マロコ DHCP DHCP ! DHCP DHCP DHCP 4 ーれこ 0 リ・Ⅱ - 0 リれ 0 、ト・ CD ・ーー・Ⅱ・りと - Ⅱ・つれこ ム DHCPD I SCOVER DHCPOFFER DHCPREOUEST DHCPOFFER DHCPACK インターネット家電から 旧アドレスを取得 ルータからの応答 (b) ルータの DHCP サーバーがさきに若 ルータからの応答 ロ物目国」↓@ 在↓」↓ = 1 巫副 ID•作 " レスマ信 インターネット家電 255.255.255.255 からの応答 132. 1 68 . 0 . 1 32 . 1 圏』 . 2 と 192. 1 圏 . 0 . 20 1 255.255.2 5 5 . 2 5 5 インターネット家電から 3 0 . 0 . 0 . 0 255.255.255.255 旧アドレスを取得 4 1 3 2 . 1 68 . 0 . 20 1 255.255.255.255 回ロ キャプチャデータく dhcp2. enc> マロトコルマ DHCP DHCP DHCP DHCP DHCP を DHCPD I SCOVER DHCPOFFER DHCPOFFER DHCPREQUEST DHCPACK DHCPOFFER の配信方法 早い者勝ちではないのか 図 9 をみると、 DHCP サーバーによって DHCPOF- 前項で、、ホスト B は希望した IP アドレスを提供してく FER メッセージの配信方法が異なっています。 れる DHCP サーバーを優先する " と書きましたが、アド レス選択のルールは実際には DHCP の実装に依存するた ・インターネット家電 ( 192.168.0.201 ) : プロードキャス め、たとえは図 9 ー a のやりとりだけでは、 ト ・ルータ ( 192.168.0.1 ) : ユニキャスト ・希望した IP アドレスを返す DHCP サーバーを優先 ・最初に応答した DHCP サーバーを優先 このように、 DHCP クライアントだけでなく、 DHCP サーバーの動作にも違いがあります。 のどちらなのかは判別できません。 インターネット家電の DHCP サーバーは、 DHCPOF- アドレス選択のルールをみつけるには、何度か IP アド FER メッセージをプロードキャストで返します。 Ether- レスを取得しなおしたり、竟を変えて DHCP のやりと net ヘッダと IP ヘッダの部分をみると ( 図 10 ) 、 りの様子を調べる必要があります。 ・ Ethernet ヘッダの Destination Address は、、 FF:FF: 図 9-b は、同じ環境で IP アドレスを取得しなおしたと FF:FF:FF:FF" きに流れたバケットの様子です。インターネット家電から ・ IP ヘッダの、、 Destination IP Address" は、、 255.255. の応答がルータからの応答よりあとに届いているにもかか 255.255 " わらす、インターネット家電から IP アドレスを取得して います。 のように、 Ethernet の宛先アドレス、 IP の宛先アドレス のどちらもプロードキャストを指定しています。 図 9- a と図 9-b の 2 つの結果から、ホスト B は希望し TCP/IP の実装によっては、 IP アドレスカリり当てら た IP アドレスを割り当ててくれる DHCP サーバーを優 れるまでプロードキャスト以外のバケットを受け取れない 先していることカ認できます。 134 UNIX MAGAZINE 2004. 12

9. UNIX MAGAZINE 2004年12月号

ク・ミニ実験室① ネットワー トラブルが起きたネットワーク 図 1 インターネット ルータ兼 DHCP サーバー 192.168.0.1 LAN 192.168.0.0 / 24 インターネット家電 192.168.0.201 ( 固定旧アドレス ) ホスト B 192.168.0.211 (DHCP で割当て ) ホスト A 192.168.0.3 (DHCP で割当て ) 表 1 ホスト A とホスト B のネットワークの言綻 ワーク上に DHCPDISCOVER メッセージを、、プロー ホスト A ホスト B ドキャスト " する。 IP アドレス 192.168.0.3 192.168.0.211 2. DHCPOFFER : DHCP サーバーは、 DHCP クライ サプネットマスク 255.255.255.0 255.255.255.0 アントに DHCPOFFER メッセージを送信する。 デフォルトルート 192.168.0.1 192.168.0.201 3. DHCPREQUEST : DHCP クライアントは、 DHCP- 図 1 のネットワークのデフォルトルートは、インター不 REQUEST メッセージを、、プロードキャスト " する。 ットと接続するためのルータ ( 192.168.0.1 ) です。と一 4. DHCPACK : DHCP サーバーは、 DHCP クライアン が、ホスト B のデフォルトルートは 192.168.0.201 にな トに DHCPACK メッセージを j 言する。 っています。これが、インターネットと通信できなかった まず最初に、 DHCP クライアントがネットワーク上に 直接の原因です。 DHCPDISCOVER メッセージをプロードキャストしま ホスト A とホスト B は IP アドレスのほか、デフォル す。これは DHCP クライアントが DHCP サーバーを探 トルートや DNS サーバーのアドレスなども DHCP で取 すためのメッセージです。 得しています。そこで、ホスト B が IP アドレスを取得す DHCP サーバーは、ネットワーク上に DHCPDIS- る際の DHCP のやりとりを解析し、トラブルの本質を探 COVER メッセージが流れると、 DHCP クライアントに ってみることにします。 提供できるネットワーク情報、 DHCP の概要 . IP アドレス 実際に流れたバケットを調べる前に、 DHCP クライア . サプネットマスク ントが IP アドレスを取得するまでの手順を簡単に説明し ・デフォルトルートのアドレス ておきます。 ・ DNS サーバーのアドレス 図 2 は、 IP アドレスの取得に成功した場合の DHCP の処理の流れを示しています。 を書いた DHCPOFFER メッセージを返します。 1. DHCPDISCOVER: DHCP クライアントは、ネット ネットワーク上に複数の DHCP サーバーがある場合は、 127 UN 工 X MAGAZINE 2004. 12

10. UNIX MAGAZINE 2004年12月号

ミニ実験室① ネットワーク・ 図 8 DHCPDISCOVER に対する DHCP サーバーからのル (a) ルータ ( 192.168.0.1 ) は 192.168.0.2 のアドレスを割り当てようとする ファイル ( E ) 編集 ( 印キャプチャ 0 モニタオプション 0 ワーりスペース 6 ) ウインドウヘルプ凹 LAN ロ 1 睡巨ー ! 〇 & 」司ユ T ransact i on I D E laped Seconds 日 roadcast 日 引 ient IP Address Yo リ r I P Add ress Server IP Add ress Gateway IP Address DHCP を・ ASTEO Eyes ー [ キャプチャデタく dh 叩印 c 〉 ] ■ロロ ・Ⅱ - 0 リれ 0 ・・ DHCP サーバー : 192.168.0.1 割り当てる旧アドレス : 192.168.0.2 4 / 司 ID:5 192.168 Ⅱ 1 192.168.02 (b) インターネット家電 ( 192.168.0.201 ) は 192.168.0.211 のアドレスを割り当てようとする ファイル ( 日偏集 ) キャプチャ 0 モニタオプション 0 ワりスべスーウインドウヘルプ ( 旦 ) . 」司」 , イ・物当ー 1 ■ は「 LAN インタフェースの選択 : ↓」龜副 ・・ ASTEO Eyes ー [ キャプチャデータく dh 叩 . e 舵〉 ] 0 00 0 リ 0 1 ー 1 ー— れこ Transa. ct ion ID 日 8. psed Seconds B ro 記 c & 日 Client IP Address Yo リ r IP Add ress Se rve r I P Add ress Gateway IP Address DHCP ンタフェースの析 DHCP サーバー : 192.168.0.201 割り当てる旧アドレス : 192.168.0.211 / 5 D.3 192168 Ⅱ 201 今 255.255. : 出た ( 図 8-a)0 トラブルか起きたネットワーク上の 2 つの DHCP サー バーは、たまたま次のような誌定になっていました。 ・インターネット家電 : DHCPOFFER で 192.168.0. 211 の提供を申し出た ( 図 8-b)0 ・ルータ ( 本物の DHCP サーバー) : 192.168.0.2 ~ 192. その結果、ホスト B は希望した IP アドレスを提供し 168.0.100 の範囲の IP アドレスを割り当てる。 てくれる DHCP サーバー、つまりインターネット家電の ・インターネット家電 ( 偽の DHCP サーバー) : 192.168. DHCPOFFER を受け入れて DHCPREQUEST を送 0.202 ~ 192.168.0.250 の範囲の IP アドレスを割り当 信しました。 てる。 このように、以前と同じ IP アドレスを使いたがる DH- ホスト B は、トラブルカ起きたネットワークに接続した CP クライアントの場合、いったんどこかのネットワーク 際に、 DHCP サーバーから通常の手川頁で IP アドレスを で 192.168.0.211 のアドレスを割り当てられると、何度取 取得しようとします。そのため、直前まで使っていた 192. 得しなおしてもインターネット家電力働作しているかぎり 168.0.211 を希望する DHCPDISCOVER メッセージを はつねに誤った情報を選択してしまい、ネットワーク・ト 送信しました。 ラブルから抜け出せません。 これに対して、 2 台の DHCP サーバーはそれぞれ次の 一方、ルータから 192.168.0.3 のアドレスを割り当てら ように動作しました。 れたホスト A は、アドレスを取得しなおしてもつねに正し いものを選択します。 ・ルータ : DHCPOFFER で 192.168.0.2 の提供を申し 133 UN 工 X MAGAZINE 2004. 12