Guest

IP : IP アドレッシング サービス

Catalyst スイッチまたは企業ネットワークにおける DHCP の説明とトラブルシューティング

機械翻訳のご利用について
機械翻訳版 - November 17, 2008
ライター翻訳版 - May 8, 2008
英語版 - November 17, 2008
Document ID: 27470


目次

概要
前提条件
      要件
      使用するコンポーネント
      表記法
      キーコンセプト
      シナリオ例
      背景説明
DHCP の理解
      現在の DHCP RFC 参照
      DHCP メッセージ表
      リースの更新
      DHCP パケット
      クライアントおよびDHCPサーバが同じサブネットで常駐するDHCPアドレスを得ているクライアントのためのクライアント−サーバ対話
      DHCP/BootP リレー エージェントの役割
Cisco IOS ルータでの DHCP/BootP リレー エージェント機能の設定
      手動バインディングの設定
      セカンダリIPセグメントでDHCP作業を作る方法
      DHCP リレー機能を使用した DHCP クライアント サーバ間のやり取り
Pre-Execution Environment(PXE)ブートアップ DHCP の注意事項
スニファ トレースを使用した DHCP の理解とトラブルシューティング
      同一の LAN セグメントにある DHCP クライアントとサーバのスニファ トレースの解読
      DHCP リレー エージェントとして設定されているルータによって分けられた DHCP クライアントとサーバのスニファ トレースの解読
DHCP のトラブルシューティング:クライアント ワークステーションが DHCP アドレスを取得できない場合
      事例 1: DHCPクライアントと同じLAN セグメントまたはVLAN上のDHCPサーバ
      事例 2: DHCP/BootP リレー エージェント機能は設定されたルータによって、DHCP サーバと DHCP クライアントが機能的に分けられる
      ルータのDHCPサーバはプールによって排出されるエラーによってAdressesを割り当てません
DHCP のトラブルシューティング モジュール
      DHCP 問題の発生箇所について
      ip dhcp poolコマンドのオプション{option_number}の後でASCII入るキーワードは二重引用符にあります
付録 A: IOS DHCP の設定例
関連情報

概要

この文書は、Cisco Catalyst スイッチ ネットワークで発生する可能性のある一般的な Dynamic Host Configuration Protocol (DHCP)問題のトラブルシューティング方法について説明しています。 この資料はCisco IOSの使用を解決することが含まれていますか。 DHCP/BootPリレーエージェント機能。

前提条件

要件

この文書に関して特定の前提条件はありません。

使用するコンポーネント

この文書は特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。

この文書の情報は、特定のラボ環境にあるデバイスに基づいて作成されています。 この文書で使用するデバイスは、すべて初期(デフォルト)の設定で起動しています。 実稼動中のネットワークで作業をしている場合、実際にコマンドを使用する前に、その潜在的な影響について理解しておく必要があります。

表記法

文書の表記法の詳細は、「シスコ テクニカル ティップスの表記法」を参照してください。

キーコンセプト

DHCP の主なコンセプトを次に示します。

  • DHCP クライアントには、最初は IP アドレスが設定されていないため、ブロードキャスト要求を送信して DHCP サーバから IP アドレスを取得する必要があります。

  • デフォルトでは、ルータはブロードキャストを転送しません。 DHCP サーバが別のブロードキャスト ドメイン(レイヤ 3(L3)ネットワーク)にある場合は、クライアントの DHCP ブロードキャスト要求に対応する必要があります。 これには、DHCP リレー エージェントを使用します。

  • Cisco ルータでの DHCP リレーの実装は、インターフェイス レベルの ip helper コマンドによって提供されます。

シナリオ例

シナリオ 1: DHCPクライアントとサーバのネットワーク間のCiscoルータのルーティング

/image/gif/paws/27470/100a.gif

上記の図のように設定すると、インターフェイス Ethernet1 は、クライアントがブロードキャストした DHCPDISCOVER を、インターフェイス Ethernet0 経由で 192.168.2.2 に転送します。 DHCP サーバは、ユニキャストによって要求に応答します。 この例では、ルータにこれ以上の設定は必要ありません。

シナリオ 2: DHCPクライアントとサーバのネットワーク間のL3モジュールルーティングのCisco Catalystスイッチ

100b.jpg

上記の図のように設定すると、インターフェイス VLAN20 は、クライアントがブロードキャストした DHCPDISCOVER を、インターフェイス VLAN10 経由で 192.168.2.2 に転送します。 DHCP サーバは、ユニキャストによって要求に応答します。 この例では、ルータにこれ以上の設定は必要ありません。 スイッチ ポートはホスト ポートとして設定し、Spanning-Tree Protocol(STP; スパニング ツリー プロトコル)PortFast を有効に、トランキングとチャネリングを無効にする必要があります。

背景説明

DHCP が提供するメカニズムにより、TCP/IP を使用するコンピュータは、ネットワークを通じて自動的にプロトコル設定パラメータを取得できます。 DHCPはインターネット技術特別調査委員会(IETF)Dynamic Host Configuration-Working Group (DHC-WG)によって発達したleavingcisco.com オープンスタンダードですleavingcisco.com

DHCP はクライアント サーバ パラダイムをベースにしており、DHCP クライアント(デスクトップ コンピュータなど)は設定パラメータを得るために DHCP サーバに要求を出します。 DHCP サーバは、通常、中央に配置されており、ネットワーク管理者によって操作されます。 ネットワーク管理者によってサーバが運用されているため、DHCP クライアントには、現在のネットワーク アーキテクチャに固有のパラメータが確実かつ動的に設定されます。

ほとんどの企業ネットワークは、Virtual LAN(VLAN; 仮想 LAN)と呼ばれるサブネットワークに分割された複数のサブネットから構成されており、ルータはサブネットワークの間をルーティングしています。 デフォルトでは、ルータはブロードキャストを通過させないため、DHCP リレー エージェント機能を使用して DHCP ブロードキャストを転送するようにルータを設定しない限り、サブネットごとに DHCP サーバが必要となります。

DHCP の理解

DHCP は当初 Requests for Comments (RFCs) 1531 で定義され、その後 RFC 2131 に置き換えられました。leavingcisco.com leavingcisco.com DHCP は、RFC 951 で定義されている Bootstrap Protocol(BootP; ブートストラップ プロトコル)に基づいています。leavingcisco.com

DHCP は、IP アドレス、サブネット マスク、デフォルト ゲートウェイなどの初期設定情報を起動時に取得するために、ワークステーション(ホスト)によって使用されます。 IP ネットワークで通信するためには、すべてのホストに IP アドレスが必要です。DHCP を使用すれば、各ホストに IP アドレスを手動で設定するという管理上の負担が軽減されます。 また、ホストが別の IP サブネットに移動した場合は、それまで使用していたものと異なる IP アドレスを使用しなければなりません。 DHCP では、ホストが適切な IP サブネット内の IP アドレスを選択できるので、サブネット間の移動にも自動的に対処できます。

現在の DHCP RFC 参照

  • RFC 2131 - DHCP

  • RFC 2132 - DHCP Options and BootP Vendor Extensions

  • RFC 1534 - Interoperation between DHCP and BootP

  • RFC 1542 - Clarifications and Extensions for the BootP

  • RFC 2241 - DHCP Options for Novell Directory Services

  • RFC 2242 - Netware/IP Domain Name and Information

  • RFC 2489:Procedure for Defining New DHCP Options

DHCP ではクライアント サーバ モデルが採用されており、1 台以上のサーバ(DHCP サーバ)が、クライアントの起動時に、IP アドレスやその他のオプション設定パラメータをクライアント(ホスト)に割り当てます。 これらの設定パラメータは、サーバからクライアントに一定時間リースされます。 ホストが起動する際、ホストの TCP/IP スタックは、各種設定パラメータの中から特に IP アドレスとサブネット マスクを取得するために、ブロードキャスト(DHCPDISCOVER)メッセージを送信します。 これにより、DHCP サーバとホストの間で交換が開始されます。 この交換処理中に、クライアントは、次に示す明確に規定された状態を遷移します。

  1. Initializing

  2. Selecting

  3. Requesting

  4. Bound

  5. Renewing

  6. Rebinding

上記の状態を遷移する際、クライアントとサーバは、次の DHCP メッセージ表に示されたタイプのメッセージを交換します。

DHCP メッセージ表

参照

メッセージ

使用方法

0x01

DHCPDISCOVER

クライアントが使用可能な DHCP サーバを探しています。

0x02

DHCPOFFER

サーバがクライアントの DHCPDISCOVER に応答します。

0x03

DHCPREQUEST

クライアントは、パケット内の定義に従ってサーバに対してのブロードキャストを行い、特定の 1 台のサーバから提供されたパラメータを要求します。

0x04

DHCPDECLINE

クライアントがサーバに、与えられたネットワーク アドレスがすでに使用中であることを伝えます。

0x05

DHCPACK

サーバがクライアントに、割り当てられたネットワーク アドレスなどの設定パラメータを送信します。

0x06

DHCPNAK

サーバがクライアントに、設定パラメータの要求を拒否することを伝えます。

0x07

DHCPRELEASE

クライアントがサーバに、ネットワーク アドレスを解放し、残りのリースをキャンセルすることを伝えます。

0x08

DHCPINFORM

クライアントにアドレスがすでに外部的に設定されている場合に、クライアントがサーバに対してローカル設定パラメータのみを要求します。

DHCPDISCOVER

クライアントは初めて起動するときに(Initializing 状態)、ローカルの物理サブネット上の User Datagram Protocol(UDP)ポート 67(BootP サーバ)宛てに DHCPDISCOVER メッセージを送信します。 クライアントは自身が所属するサブネットを知る手段を持たないため、DHCPDISCOVER は、送信元 IP アドレス 0.0.0.0 を使用してすべてのサブネットにブロードキャスト(宛先 IP アドレス 255.255.255.255)されます。 送信元 IP アドレスが 0.0.0.0 であるのは、クライアントに IP アドレスが設定されていないためです。 このローカル サブネット上に、適切に設定されて正常に稼働している DHCP サーバがある場合、その DHCP サーバはブロードキャストを受信し、DHCPOFFER メッセージで応答します。 ローカル サブネット上に DHCP サーバがない場合は、DHCP サーバがあるサブネットに DHCPDISCOVER メッセージを転送する DHCP/BootP リレー エージェントが、このローカル サブネット上に存在する必要があります。

このリレー エージェントは、専用ホスト(Microsoft Windows サーバなど)またはルータ(インターフェイス レベルで ip helper 文が設定された Cisco ルータなど)のどちらでもかまいません。

DHCPOFFER

DHCPDISCOVER メッセージを受信した DHCP サーバは、UDP ポート 68(BootP クライアント)の DHCPOFFER メッセージで応答します。 クライアントは DHCPOFFER を受信すると、Selecting 状態に移行します。 この DHCPOFFER メッセージには、クライアント用の初期設定情報が含まれています。 たとえば、DHCP サーバは、DHCPOFFER メッセージの yiaddr フィールドに、要求された IP アドレスを設定します。 サブネット マスクとデフォルト ゲートウェイは、それぞれオプション フィールドの subnet mask と router options に指定されます。 DHCPOFFER メッセージに含まれるその他の一般的なオプションには、IP アドレスのリース時間、更新時間、ドメイン ネーム サーバ、NetBIOS ネーム サーバ(WINS)などがあります。 DHCP サーバは DHCPOFFER をブロードキャスト アドレスに送信しますが、オファーの chaddr フィールドにクライアントのハードウェア アドレスを設定します。 そのため、クライアントはその DHCPOFFER の宛先が自分自身であるかどうかがわかります。DHCP サーバがローカル サブネット上にない場合、DHCP サーバは、DHCPDISCOVER の転送元である DHCP/BootP リレー エージェントに、ユニキャスト パケットとして UDP ポート 67 の DHCPOFFER を送信します。 その後、HCP/BootP リレー エージェントは、Bootp クライアントによって設定されるブロードキャスト フラグに応じて、DUDP ポート 68 のローカル サブネットに DHCPOFFER をブロードキャストまたはユニキャストします。

DHCPREQUEST

クライアントは DHCPOFFER を受信した後、DHCPOFFER のパラメータを受け入れる意向を示すために DHCPREQUEST メッセージで応答し、Requesting 状態に移行します。 クライアントが最初に送信した DHCPDISCOVER メッセージを複数の DHCP サーバが受信し、各 DHCP サーバがそれぞれメッセージを返信してきた場合、クライアントは複数の DHCPOFFER メッセージを受信することになります。 この場合、クライアントは 1 つの DHCPOFFER を選択してその DHCP サーバのみに応答し、その他すべての DHCPOFFER メッセージを暗黙的に辞退します。 クライアントは、選択したサーバを明確にするために、Server Identifier オプション フィールドに DHCP サーバの IP アドレスを設定します。 DHCPREQUEST もブロードキャストされるため、DHCPOFFER を送信した DHCP サーバすべてが DHCPREQUEST を確認し、自身が返答した DHCPOFFER が受け入れられたかどうかを知ることができます。 DHCPREQUEST メッセージのオプション フィールドには、クライアントが要求するその他の設定オプションも含まれています。 クライアントは IP アドレスをオファーされた場合でも、送信元 IP アドレスに 0.0.0.0 を指定して DHCPREQUEST メッセージを送信します。 これは、この時点ではまだクライアントがその IP アドレスを使用してよいという明確な確認を受信していないためです。

DHCPACK

DHCP サーバは DHCPREQUEST を受信すると、その要求に対して DHCPACK メッセージで確認応答します。これによって初期化プロセスが完了します。 DHCPACK メッセージには、送信元アドレスとして DHCP サーバの IP アドレス、宛先アドレスとして再びブロードキャストが指定され、DHCPREQUEST メッセージでクライアントから要求されたすべてのパラメータが含まれています。 クライアントは DHCPACK を受信すると Bound 状態に移行し、割り当てられた IP アドレスを自由に使用してネットワーク上で通信できるようになります。 一方、DHCP サーバはリース情報をデータベースに格納し、client identifier または chaddr と、対応する IP アドレスを使用してリースを一意に識別します。 クライアントとサーバはどちらも、この識別情報の組み合せを使用してリースを参照します。 クライアント識別子はメディアタイプとデバイスのMACアドレスです。

DHCP クライアントは、新しいアドレスの使用を開始する前に、リースされたアドレスに関連する時間パラメータ、つまり Lease Time(LT; リース時間)、Renewal Time(T1; 更新時間)、および Rebind Time(T2; 再バインド時間)を計算します。 標準的なデフォルト LT は 72 時間です。 必要であれば、一定量のアドレスを維持するために、リース時間を短縮できます。

DHCPNAK

選択された DHCP サーバは、DHCPREQUEST メッセージの要求に応えられない場合、DHCPNAK メッセージで応答します。 クライアントは、DHCPNAK メッセージを受信するか、または DHCPREQUEST メッセージへの応答が受信されないと、Requesting 状態に移行して設定プロセスを再び開始します。 クライアントは、60 秒以内に最低 4 回 DHCPREQUEST を再送信しても応答がない場合、Initializing 状態に戻ります。

DHCPDECLINE

クライアントは DHCPACK を受信すると、オプションでパラメータの最終チェックを実行します。 クライアントはこの手順を実行するために、DHCPACK で提供された IP アドレスの Address Resolution Protocol(ARP)要求を送信します。 クライアントが ARP 要求への応答を受信し、指定したアドレスが使用中であることが判明した場合、クライアントはサーバに DHCPDECLINE メッセージを送信し、Requesting 状態に移行して設定プロセスを再び開始します。

DHCPINFORM

クライアントが他の手段によってすでにネットワーク アドレスを取得している場合、または IP アドレスが手動で設定されている場合には、クライアント ワークステーションは、DHCPINFORM 要求メッセージを使用して、ドメイン名や Domain Name Server(DNS; ドメイン ネーム サーバ)といったその他のローカル設定パラメータを取得できます。 DHCPINFORM メッセージを受信した DHCP サーバは、そのクライアントに応じた適切なローカル設定パラメータで DHCPACK メッセージを構成します。その際、新たに IP アドレスは割り当てません。 DHCPACK はユニキャストでクライアントに送信されます。

DHCPRELEASE

DHCP クライアントは、DHCPRELEASE メッセージを DHCP サーバに送信することで、ネットワーク アドレスに関するリースを解放できます。 クライアントは DHCPRELEASE メッセージの client identifier フィールドとネットワーク アドレスによって、解放するリースを指定します。 現在の DHCP プール範囲を拡張する必要がある場合は、現在のアドレス プールを削除して、DHCP プールの下で新しい IP アドレスの範囲を指定します。 特定の IP アドレスまたは DHCP プールに含めるアドレスの範囲を削除するには、ip dhcp excluded-address コマンドを使用します。

注: デバイスがBOOTPを使用する場合、無限長さのリースはルータのDHCPのバインディングで示されています。

リースの更新

IP アドレスはサーバからリースされているだけなので、ときどきリースを更新する必要があります。 リース時間の半分(T1=0.5 x LT)が経過すると、クライアントはリースの更新を試みます。 クライアントは Renewing 状態に移行し、現在のリースの継続を要求する DHCPREQUEST メッセージをサーバに送信します。 サーバは、リースの更新を許可する場合、更新要求に対して DHCPACK メッセージで応答します。 前のリース時間中にサーバに変更が加えられた場合、DHCPACK メッセージには新しいリースと新しい設定パラメータが含められます。 クライアントがリースを保持しているサーバになんらかの理由で到達できず、時間 T2 以内にその DHCP サーバから更新要求への応答が得られなかった場合は、任意の DHCP サーバからアドレスの更新を試みます。 T2 のデフォルト値は(7/8 x LT)です。 これは、T1 < T2< LT を意味します。

DHCP によって IP アドレスを割り当てられていたクライアントが再起動した場合、そのクライアントは DHCPREQUEST パケットを使用し、以前にリースされていた IP アドレスを明確に要求します。 この DHCPREQUEST には、送信元 IP アドレスとして 0.0.0.0、宛先 IP アドレスとしてブロードキャスト アドレス 255.255.255.255 が含まれています。

リブート時に DHCPREQUEST を送信するクライアントは、server indentifier フィールドに値を設定する必要はありませんが、その代わりに IP address オプション フィールドに要求する IP アドレスを設定する必要があります。 RFC に厳密に準拠したクライアントでは、DHCP オプション フィールドではなく、ciaddr フィールドに要求するアドレスが設定されます。 DHCP サーバはどちらの方法にも対応します。 DHCP サーバの動作は、多数のファクタに基づいて決まります。たとえば Windows NT DHCP サーバでは、使用されているオペレーティング システム バージョンなどのファクタがあり、その他にもスーパースコープなどのファクタが関係します。 DHCP サーバは、クライアントから要求された IP アドレスがまだ使用できると判断した場合、DHCPREQUEST に対して何も応答しないか、または DHCPACK を送信します。 クライアントから要求された IP アドレスが使用できないと判断した場合は、クライアントに DHCPNACK を返信します。 この場合、クライアントは Initializing 状態に移行し、DHCPDISCOVER メッセージを送信します。

DHCP パケット

DHCP メッセージは可変長で、次の表に示すフィールドから構成されています。

注: このパケットは、オリジナルの BootP パケットの変更バージョンです。

フィールド

バイト

名前

説明

op

1

Opcode

要求か応答としてパケットを識別します: 1=BOOTREQUEST、2=BOOTREPLY

htype

1

ハードウェア タイプ

ネットワーク ハードウェア アドレスのタイプを指定します。

hlen

1

ハードウェア長

ハードウェア アドレス長を指定します。

hops

1

ホップ

クライアントが 0 を設定し、要求がルータを経由して転送されるたびに値がインクリメントされます。

xid

4

トランザクション ID

クライアントによって選択されたランダムな数字。 特定の DHCP トランザクションで交換される DHCP メッセージにはすべて同じ ID(xid)が設定されます。

secs

2

DHCP プロセスが始まってから経過した秒数を指定します。

flags

2

フラグ

メッセージがブロードキャストとユニキャストのいずれであるかを指定します。

ciaddr

4

クライアント IP アドレス

Bound、Renew、または Rebinding 状態の場合のように、クライアントが自身の IP アドレスを知っているときのみ使用されます。

yiaddr

4

相手先 IP アドレス

クライアント IP アドレスが 0.0.0.0 の場合、DHCP サーバはオファーされたクライアント IP アドレスをこのフィールドに設定します。

siaddr

4

サーバ IP アドレス

クライアントが DHCP サーバの IP アドレスを知っている場合は、このフィールドに DHCP サーバのアドレスが設定されます。 それ以外では、DHCP サーバからの DHCPOFFER および DHCPACK で使用されます。

giaddr

4

ルータ IP アドレス(GI ADDR)

ゲートウェイ IP アドレス。DHCP/BootP リレー エージェントによって設定されます。

chaddr

16

クライアント MAC アドレス

DHCP クライアントの MAC アドレス。

sname

64

サーバ名

オプションのサーバ ホスト名。

file

128

ブート ファイル名

ブート ファイル名。

options

可変

オプション パラメータ

DHCP サーバが提供できるオプションのパラメータ。 RFC 2132 に、使用可能なすべてのオプションが記載されています。

DHCP サーバと同じサブネットにあるクライアントが DHCP アドレスを取得する場合のクライアント サーバ間のやり取り

パケット

送信元 MAC アドレス

宛先 MAC アドレス

送信元 IP アドレス

宛先 IP アドレス

DHCPDISCOVER

クライアント

Broadcast

0.0.0.0

255.255.255.255

DHCPOFFER

ブロードキャスト

Broadcast

ブロードキャスト

255.255.255.255

DHCPREQUEST

クライアント

Broadcast

0.0.0.0

255.255.255.255

DHCPACK

ブロードキャスト

Broadcast

ブロードキャスト

255.255.255.255

DHCP/BootP リレー エージェントの役割

デフォルトでは、ルータはブロードキャスト パケットを転送しません。 DHCP クライアント メッセージは宛先 IP アドレスとして 255.255.255.255(全ネットワークへのブロードキャスト)を使用するため、ルータに DHCP/BootP リレー エージェントが設定されていない限り、DHCP クライアントの要求をサブネットが異なる DHCP サーバに送信できません。 DHCP/BootP リレー エージェントは、DHCP クライアントの代わりに DHCP サーバに DHCP 要求を転送します。 DHCP/BootP リレー エージェントは、DHCP サーバに転送する DHCP フレームの送信元 IP アドレスの最後に自身の IP アドレスを付加します。 これにより、DHCP サーバは DHCP/BootP リレー エージェントにユニキャストで応答できます。 また、DHCP/BootP リレー エージェントは、ゲートウェイ IP アドレス フィールドに、クライアントからの DHCP メッセージを受信したインターフェイスの IP アドレスを設定します。 DHCP サーバは、ゲートウェイ ip address フィールドを使用して、DHCPDISCOVER、DHCPREQUEST、または DHCPINFORM メッセージの発信元のサブネットを特定します。

Cisco IOS ルータでの DHCP/BootP リレー エージェント機能の設定

BootP または DHCP 要求を転送するための Cisco ルータの設定は簡単で、IP ヘルパー アドレスを、DHCP/BootP サーバ、またはサーバが存在するネットワークのサブネット ブロードキャスト アドレスを指すように設定するだけです。 たとえば、次のようなネットワーク ダイアグラムについて考えてみます。

/image/gif/paws/27470/100a.gif

クライアントから DHCP サーバに BootP/DHCP 要求を転送するには、ip helper-address interface コマンドを使用します。 IP ヘルパー アドレスは、UDP ポート番号に基づいて任意の UDP ブロードキャストを転送するように設定できます。 デフォルトでは、IP ヘルパー アドレスは次の UDP ブロードキャストを転送します。

  • Trivial File Transfer Protocol(TFTP)(ポート 69)

  • DNA(ポート 53)、時刻サービス(ポート 37)

  • NetBIOS ネーム サーバ(ポート 137)

  • NetBIOS データグラム サーバ(ポート 138)

  • Boot Protocol(DHCP/BootP)クライアントおよびサーバのデータグラム(ポート 67 と 68)

  • Terminal Access Control Access Control System(TACACS)サービス(ポート 49)

  • IEN-116 ネーム サーバ(ポート 42)

IP ヘルパー アドレスは、UDP ブロードキャストをユニキャストまたはブロードキャスト IP アドレスに直接送信できます。 ただし、IP ヘルパー アドレスを使用して、UDP ブロードキャストをあるサブネットから別のサブネットのブロードキャスト アドレスに転送することはお勧めできません。これを行うと、大量のブロードキャスト フラッディングが発生するおそれがあるためです。 次の例のように、1 つのインターフェイスに対して IP ヘルパー アドレスのエントリを複数設定することもできます。

!
version 12.0
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname router
!
!
!
interface Ethernet0
ip address 192.168.2.1 255.255.255.0
no ip directed-broadcast
! 
interface Ethernet1
ip address 192.168.1.1 255.255.255.0
ip helper-address 192.168.2.2 
ip helper-address 192.168.2.3 

!--- IP helper-address pointing to DHCP server

no ip directed-broadcast
!
!
!
line con 0
exec-timeout 0 0
transport input none
line aux 0
line vty 0 4
login
!
end 

Cisco ルータは、DHCP リレー エージェントとして設定された DHCP サーバのロード バランシングをサポートしていません。 Cisco ルータは、そのインターフェイスに関して言及されているすべてのヘルパー アドレスに、DHCPDISCOVER メッセージを転送します。 サブネットをサポートするために複数の DHCP サーバを使用すると、DHCPDISCOVER、DHCPOFFER および DHCPREQUEST/DHCPDECLINE メッセージが DHCP クライアントとサーバの各ペアの間で交換されるため、DHCP トラフィックが増加します。

手動バインディングの設定

手動バインディングを設定する2つの方法があります; 1つはWindowsのホストのためであり、他は非Windowsのホストのためです。 設定するのに使用される2つの異なるコマンドがあります; 1つはMicrosoft DHCPのクライアントのためであり、他はMicrosoft以外DHCPのクライアントのためです: DHCPのclient-identifier (手動バインディング- Microsoft DHCPのクライアント)およびDHCPのハードウェアアドレス(手動バインディング- Microsoft以外DHCPのクライアント)。 2つの異なるコマンドの理由はWindowsと動作するPCがMACを修正する、01はアドレスの始めに追加されますことであり。 設定例を次に示します。

  • 以下はMicrosoft DHCPのクライアントのための設定です

    configuration terminal
    ip dhcp pool new_pool
    host ip_address subnet_mask
    client-identifier 01XXXXXXXXXXXX
    
    !--- xxxxxx represents 48 bit MAC address prepended with 01
    
    
  • 以下はMicrosoft以外DHCPのクライアントのための設定です

    configuration terminal
    ip dhcp pool new_pool
    host ip_address subnet_mask
    hardware-address XXXXXXXXXXXX
    
    !--- xxxxxx represents 48 bit MAC address
    
    

セカンダリIPセグメントでDHCP作業を作る方法

デフォルトで要求がプライマリIPアドレスで設定されるインターフェイスから届くときだけリプライパケットが送信されること、DHCPに制限があります。 DHCPのトラフィックはブロードキャスト・アドレスを使用します。 DHCP要求がルータ・インターフェイスによって受け取られるとき、DHCPサーバにどのIPプールをDHCP応答のパケットで(クライアントのために)使用する必要があるか知らせることをインターフェイスで設定されるプライマリIPの送信元アドレスとのDHCPサーバにそれを(Ip helper-addressが設定されるとき)転送します。

DHCPブロードキャストの要求がインターフェイスで設定されるセカンダリIPネットワークにあるデバイスから来るかどうか確認するルータのための方法がありません。 対応策として、2つのサブネットを分けるサブインターフェイス設定は(ルータに接続されるデバイスがdot1qのタギングをサポートすれば)設定することができます従って両方は対応したIPアドレスをきちんと取得します。

セカンダリアドレスが好ましい方法である場合、global configurationコマンドip dhcpのスマートリレーを有効にすることもう一つの対応策があります。 これはDHCPサーバから無応答がプライマリアドレスのプールのための3つの連続した要求の後にない場合その時だけDHCP要求を中継で送るのにセカンダリIPを使用すること制限を有します。

DHCP リレー機能を使用した DHCP クライアント サーバ間のやり取り

次の表は、DHCP クライアントが DHCP サーバから IP アドレスを取得するプロセスを示しています。 この表は、上記のネットワーク ダイアグラムに基づいています。 ダイアグラム上の数値は、下表で説明されているパケットを表します。 この表は、DHCP クライアント サーバ間のやり取りにおけるパケット フローを理解するためのリファレンス ポイントです。 また、DHCP の問題発生箇所を特定する上でも役立ちます。

パケット(Packet)

クライアント IP アドレス

サーバ IP アドレス

GI アドレス

パケットの送信元 MAC アドレス

パケットの送信元 IP アドレス

パケットの宛先 MAC アドレス

パケットの宛先 IP アドレス

1. DHCPDISCOVERはクライアントから送られます。

0.0.0.0

0.0.0.0

0.0.0.0

0005.DCC9.C640

0.0.0.0

ffff.ffff.fffff(ブロードキャスト)

255.255.255.255

2。 2. ルータの E1 インターフェイスで DHCPDISCOVER が受信されます。 ルータはこのパケットが DHCP UDP ブロードキャストであると認識します。 ここからルータは DHCP/BootP リレー エージェントとして動作します。ゲートウェイ IP アドレス フィールドに着信インターフェイスの IP アドレスを設定し、送信元 IP アドレスを着信インターフェイスの IP アドレスに変更して、要求を DHCP サーバに直接転送します。

0.0.0.0

0.0.0.0

192.168.1.1

インターフェイス E2 の MAC アドレス

192.168.1.1

DHCP サーバの MAC アドレス

192.168.2.2

3。 3. DHCP サーバは DHCPDISCOVER を受信し、DHCP リレー エージェントに対して DHCPOFFER を送信します。

192.168.1.2

192.168.2.2

192.168.1.1

DHCP サーバの MAC アドレス

192.168.2.2

インターフェイス E2 の MAC アドレス

192.168.1.1

4。 4. DHCP リレー エージェントは DHCPOFFER を受信し、DHCPOFFER ブロードキャストをローカル LAN に転送します。

192.168.1.2

192.168.2.2

192.168.1.1

インターフェイス E1 の MAC アドレス

192.168.1.1

ffff.ffff.ffff(ブロードキャスト)

255.255.255.255

5.クライアントから送られるDHCPREQUEST。

0.0.0.0

0.0.0.0

0.0.0.0

0005.DCC9.C640

0.0.0.0

ffff.ffff.fffff(ブロードキャスト)

255.255.255.255

6。 6. ルータの E1 インターフェイスで DHCPREQUEST が受信されます。 ルータはこのパケットが DHCP UDP ブロードキャストであると認識します。 ここからルータは DHCP リレー エージェントとして動作します。ゲートウェイ IP アドレス フィールドに着信インターフェイスの IP アドレスを設定し、送信元 IP アドレスを着信インターフェイスの IP アドレスに変更して、要求を DHCP サーバに直接転送します。

0.0.0.0

0.0.0.0

192.168.1.1

インターフェイス E2 の MAC アドレス

192.168.1.1

DHCP サーバの MAC アドレス

192.168.2.2

7。 7. DHCP サーバは DHCPREQUEST を受信し、DHCP/BootP リレー エージェントに対して DHCPACK を送信します。

192.168.1.2

192.168.2.2

192.168.1.1

DHCP サーバの MAC アドレス

192.168.2.2

インターフェイス E2 の MAC アドレス

192.168.1.1

8。 8. DHCP/BootP リレー エージェントは DHCPACK を受信し、DHCPACK ブロードキャストをローカル LAN に転送します。 クライアントは ACK を受け入れて、クライアント IP アドレスを使用します。

192.168.1.2

192.168.2.2

192.168.1.1

インターフェイス E1 の MAC アドレス

192.168.1.1

ffff.ffff.ffff(ブロードキャスト)

255.255.255.255

Pre-Execution Environment(PXE)ブートアップ DHCP の注意事項

Pre-Execution Environment(PXE)を使用すると、ローカル ハード ドライブでオペレーティング システムをブートする前に、ネットワーク上でサーバからワークステーションをブートすることができます。 ネットワーク管理者は、特定のワークステーションがある実際の場所まで出向いて、手動でワークステーションをブートする必要がなくなります。 オペレーティング システムや診断プログラムなどのソフトウェアを、ネットワーク経由でサーバからデバイスにロードできます。 PXE 環境では DHCP を使用してその IP アドレスを設定します。

DHCP サーバがネットワークの別のルーティング セグメントに存在する場合は、ルータで DHCP/BootP リレー エージェントの設定を行う必要があります。 ローカル ルータ インターフェイスでは、ip helper address コマンドを設定する必要があります。 設定の詳細は、このドキュメントの「Cisco IOS ルータでの DHCP/BootP リレー エージェント機能の設定」のセクションを参照してください。

スニファ トレースを使用した DHCP の理解とトラブルシューティング

同一の LAN セグメントにある DHCP クライアントとサーバのスニファ トレースの解読

/image/gif/paws/27470/100d.jpg

次のスニファ トレースは 6 つのフレームから構成されています。 これら 6 つのフレームは、DHCP クライアントおよびサーバが同じ物理セグメントまたは論理セグメントに存在する場合の、DHCP の動作シナリオを示しています。 DHCP のトラブルシューティングを行うときは、取得したスニファ トレースを次のトレースと照合してください。 次のトレースと一部異なる点があるかもしれませんが、一般的なパケット フローはほぼ同じです。 パケット トレースは、DHCP の動作の仕組みに関する前述の説明に従います。

- - - - - - - - - - - - - - - - - - - - Frame 1 - DHCPDISCOVER - - - - - - - - - - - - - - - - - - - -

Frame Status Source Address Dest. Address Size Rel. Time Delta Time Abs. Time Summary
1[0.0.0.0] [255.255.255.255] 618 0:01:26.810 0.575.244 05/07/2001 11:52:03 AM DHCP: Request, 
 Message type: DHCP Discover
DLC: ----- DLC Header -----
DLC: 
DLC: Frame 1arrived at 11:52:03.8106; frame size is 618 (026A hex) bytes.
DLC: Destination = BROADCAST FFFFFFFFFFFF, Broadcast
DLC: Source = Station 0005DCC9C640
DLC: Ethertype = 0800 (IP)
DLC: 
IP: ----- IP Header -----
IP: 
IP: Version = 4, header length = 20 bytes
IP: Type of service = 00
IP: 000. .... = routine
IP: ...0 .... = normal delay
IP: .... 0... = normal throughput
IP: .... .0.. = normal reliability
IP: .... ..0. = ECT bit - transport protocol will ignore the CE bit
IP: .... ...0 = CE bit - no congestion
IP: Total length = 604 bytes
IP: Identification = 9
IP: Flags = 0X
IP: .0.. .... = may fragment
IP: ..0. .... = last fragment
IP: Fragment offset = 0 bytes
IP: Time to live = 255 seconds/hops
IP: Protocol = 17 (UDP)
IP: Header checksum = B988 (correct)
IP: Source address = [0.0.0.0]
IP: Destination address = [255.255.255.255]
IP: No options
IP: 
UDP: ----- UDP Header -----
UDP: 
UDP: Source port = 68 (BootPc/DHCP)
UDP: Destination port = 67 (BootPs/DHCP)
UDP: Length = 584
UDP: No checksum
UDP: [576 byte(s) of data]
UDP: 
DHCP: ----- DHCP Header -----
DHCP: 
DHCP: Boot record type = 1 (Request)
DHCP: Hardware address type = 1 (10Mb Ethernet)
DHCP: Hardware address length = 6 bytes
DHCP: 
DHCP: Hops = 0
DHCP: Transaction id = 00000882
DHCP: Elapsed boot time = 0 seconds
DHCP: Flags = 8000
DHCP: 1... .... .... .... = Broadcast IP datagrams
DHCP: Client self-assigned IP address = [0.0.0.0]
DHCP: Client IP address = [0.0.0.0]
DHCP: Next Server to use in bootstrap = [0.0.0.0]
DHCP: Relay Agent = [0.0.0.0]
DHCP: Client hardware address = 0005DCC9C640
DHCP: 
DHCP: Host name = ""
DHCP: Boot file name = ""
DHCP: 
DHCP: Vendor Information tag = 63825363 
DHCP: Message Type = 1 (DHCP Discover)
DHCP: Maximum message size = 1152
DHCP: Client identifier = 00636973636F2D303030352E646363392E633634302D564C31
DHCP: Parameter Request List: 7 entries
DHCP: 1 = Client's subnet mask
DHCP: 66 = TFTP Option
DHCP: 6 = Domain name server
DHCP: 3 = Routers on the client's subnet
DHCP: 67 = Boot File Option
DHCP: 12 = Host name server
DHCP: 150 = Unknown Option
DHCP: Class identifier = 646F63736973312E30
DHCP: Option overload =3 (File and Sname fields hold options)
DHCP: 

- - - - - - - - - - - - - - - - - - - - Frame 2 - DHCPOFFER - - - - - - - - - - - - - - - - - - - -

Frame Status Source Address Dest. Address Size Rel. Time Delta Time Abs. Time Summary
2[192.168.1.1] [255.255.255.255] 331 0:01:26.825 0.015.172 05/07/2001 11:52:03 AM DHCP: Reply, 
	Message type: DHCP Offer
DLC: ----- DLC Header -----
DLC: 
DLC: Frame 2 arrived at 11:52:03.8258; frame size is 331 (014B hex) bytes.
DLC: Destination = BROADCAST FFFFFFFFFFFF, Broadcast
DLC: Source = Station 0005DCC42484
DLC: Ethertype = 0800 (IP)
DLC: 
IP: ----- IP Header -----
IP: 
IP: Version = 4, header length = 20 bytes
IP: Type of service = 00
IP: 000. .... = routine
IP: ...0 .... = normal delay
IP: .... 0... = normal throughput
IP: .... .0.. = normal reliability
IP: .... ..0. = ECT bit - transport protocol will ignore the CE bit
IP: .... ...0 = CE bit - no congestion
IP: Total length = 317 bytes
IP: Identification = 5
IP: Flags = 0X
IP: .0.. .... = may fragment
IP: ..0. .... = last fragment
IP: Fragment offset = 0 bytes
IP: Time to live = 255 seconds/hops
IP: Protocol = 17 (UDP)
IP: Header checksum = F901 (correct)
IP: Source address = [192.168.1.1]
IP: Destination address = [255.255.255.255]
IP: No options
IP: 
UDP: ----- UDP Header -----
UDP: 
UDP: Source port = 67 (BootPs/DHCP)
UDP: Destination port = 68 (BootPc/DHCP)
UDP: Length = 297
UDP: No checksum
UDP: [289 byte(s) of data]
UDP: 
DHCP: ----- DHCP Header -----
DHCP: 
DHCP: Boot record type = 2 (Reply)
DHCP: Hardware address type = 1 (10Mb Ethernet)
DHCP: Hardware address length = 6 bytes
DHCP: 
DHCP: Hops = 0
DHCP: Transaction id = 00000882
DHCP: Elapsed boot time = 0 seconds
DHCP: Flags = 8000
DHCP: 1... .... .... .... = Broadcast IP datagrams
DHCP: Client self-assigned IP address = [0.0.0.0]
DHCP: Client IP address = [192.168.1.2]
DHCP: Next Server to use in bootstrap = [0.0.0.0]
DHCP: Relay Agent = [0.0.0.0]
DHCP: Client hardware address = 0005DCC9C640
DHCP: 
DHCP: Host name = ""
DHCP: Boot file name = ""
DHCP: 
DHCP: Vendor Information tag = 63825363 
DHCP: Message Type = 2 (DHCP Offer)
DHCP: Server IP address = [192.168.1.1]
DHCP: Request IP address lease time = 85535 (seconds)
DHCP: Address Renewel interval = 42767 (seconds)
DHCP: Address Rebinding interval = 74843 (seconds)
DHCP: Subnet mask = [255.255.255.0]
DHCP: Domain Name Server address = [192.168.1.3]
DHCP: Domain Name Server address = [192.168.1.4]
DHCP: Gateway address = [192.168.1.1]
DHCP: 

- - - - - - - - - - - - - - - - - - - - Frame 3 - DHCPREQUEST - - - - - - - - - - - - - - - - - - -

Frame Status Source Address Dest. Address Size Rel. Time Delta Time Abs. Time Summary
3[0.0.0.0] [255.255.255.255] 618 0:01:26.829 0.003.586 05/07/2001 11:52:03 AM DHCP: Request, 
	Message type: DHCP Request
DLC: ----- DLC Header -----
DLC: 
DLC: Frame 56 arrived at 11:52:03.8294; frame size is 618 (026A hex) bytes.
DLC: Destination = BROADCAST FFFFFFFFFFFF, Broadcast
DLC: Source = Station 0005DCC9C640
DLC: Ethertype = 0800 (IP)
DLC: 
IP: ----- IP Header -----
IP: 
IP: Version = 4, header length = 20 bytes
IP: Type of service = 00
IP: 000. .... = routine
IP: ...0 .... = normal delay
IP: .... 0... = normal throughput
IP: .... .0.. = normal reliability
IP: .... ..0. = ECT bit - transport protocol will ignore the CE bit
IP: .... ...0 = CE bit - no congestion
IP: Total length = 604 bytes
IP: Identification = 10
IP: Flags = 0X
IP: .0.. .... = may fragment
IP: ..0. .... = last fragment
IP: Fragment offset = 0 bytes
IP: Time to live = 255 seconds/hops
IP: Protocol = 17 (UDP)
IP: Header checksum = B987 (correct)
IP: Source address = [0.0.0.0]
IP: Destination address = [255.255.255.255]
IP: No options
IP: 
UDP: ----- UDP Header -----
UDP: 
UDP: Source port = 68 (BootPc/DHCP)
UDP: Destination port = 67 (BootPs/DHCP)
UDP: Length = 584
UDP: No checksum
UDP: [576 byte(s) of data]
UDP: 
DHCP: ----- DHCP Header -----
DHCP: 
DHCP: Boot record type = 1 (Request)
DHCP: Hardware address type = 1 (10Mb Ethernet)
DHCP: Hardware address length = 6 bytes
DHCP: 
DHCP: Hops = 0
DHCP: Transaction id = 00000882
DHCP: Elapsed boot time = 0 seconds
DHCP: Flags = 8000
DHCP: 1... .... .... .... = Broadcast IP datagrams
DHCP: Client self-assigned IP address = [0.0.0.0]
DHCP: Client IP address = [0.0.0.0]
DHCP: Next Server to use in bootstrap = [0.0.0.0]
DHCP: Relay Agent = [0.0.0.0]
DHCP: Client hardware address = 0005DCC9C640
DHCP: 
DHCP: Host name = ""
DHCP: Boot file name = ""
DHCP: 
DHCP: Vendor Information tag = 63825363 
DHCP: Message Type = 3 (DHCP Request)
DHCP: Maximum message size = 1152
DHCP: Client identifier = 00636973636F2D303030352E646363392E633634302D564C31
DHCP: Server IP address = [192.168.1.1]
DHCP: Request specific IP address = [192.168.1.2]
DHCP: Request IP address lease time = 85535 (seconds)
DHCP: Parameter Request List: 7 entries
DHCP: 1 = Client's subnet mask
DHCP: 66 = TFTP Option
DHCP: 6 = Domain name server
DHCP: 3 = Routers on the client's subnet
DHCP: 67 = Boot File Option
DHCP: 12 = Host name server
DHCP: 150 = Unknown Option
DHCP: Class identifier = 646F63736973312E30
DHCP: Option overload =3 (File and Sname fields hold options)
DHCP: 

- - - - - - - - - - - - - - - - - - - - Frame 4 - DHCPACK - - - - - - - - - - - - - - - - - - - -

Frame Status Source Address Dest. Address Size Rel. Time Delta Time Abs. Time Summary
4[192.168.1.1] [255.255.255.255] 331 0:01:26.844 0.014.658 05/07/2001 11:52:03 AM DHCP: Reply, 
 Message type: DHCP Ack
DLC: ----- DLC Header -----
DLC: 
DLC: Frame 57 arrived at 11:52:03.8440; frame size is 331 (014B hex) bytes.
DLC: Destination = BROADCAST FFFFFFFFFFFF, Broadcast
DLC: Source = Station 0005DCC42484
DLC: Ethertype = 0800 (IP)
DLC: 
IP: ----- IP Header -----
IP: 
IP: Version = 4, header length = 20 bytes
IP: Type of service = 00
IP: 000. .... = routine
IP: ...0 .... = normal delay
IP: .... 0... = normal throughput
IP: .... .0.. = normal reliability
IP: .... ..0. = ECT bit - transport protocol will ignore the CE bit
IP: .... ...0 = CE bit - no congestion
IP: Total length = 317 bytes
IP: Identification = 6
IP: Flags = 0X
IP: .0.. .... = may fragment
IP: ..0. .... = last fragment
IP: Fragment offset = 0 bytes
IP: Time to live = 255 seconds/hops
IP: Protocol = 17 (UDP)
IP: Header checksum = F900 (correct)
IP: Source address = [192.168.1.1]
IP: Destination address = [255.255.255.255]
IP: No options
IP: 
UDP: ----- UDP Header -----
UDP: 
UDP: Source port = 67 (BootPs/DHCP)
UDP: Destination port = 68 (BootPc/DHCP)
UDP: Length = 297
UDP: No checksum
UDP: [289 byte(s) of data]
UDP: 
DHCP: ----- DHCP Header -----
DHCP: 
DHCP: Boot record type = 2 (Reply)
DHCP: Hardware address type = 1 (10Mb Ethernet)
DHCP: Hardware address length = 6 bytes
DHCP: 
DHCP: Hops = 0
DHCP: Transaction id = 00000882
DHCP: Elapsed boot time = 0 seconds
DHCP: Flags = 8000
DHCP: 1... .... .... .... = Broadcast IP datagrams
DHCP: Client self-assigned IP address = [0.0.0.0]
DHCP: Client IP address = [192.168.1.2]
DHCP: Next Server to use in bootstrap = [0.0.0.0]
DHCP: Relay Agent = [0.0.0.0]
DHCP: Client hardware address = 0005DCC9C640
DHCP: 
DHCP: Host name = ""
DHCP: Boot file name = ""
DHCP: 
DHCP: Vendor Information tag = 63825363 
DHCP: Message Type = 5 (DHCP Ack)
DHCP: Server IP address = [192.168.1.1]
DHCP: Request IP address lease time = 86400 (seconds)
DHCP: Address Renewel interval = 43200 (seconds)
DHCP: Address Rebinding interval = 75600 (seconds)
DHCP: Subnet mask = [255.255.255.0]
DHCP: Domain Name Server address = [192.168.1.3]
DHCP: Domain Name Server address = [192.168.1.4]
DHCP: Gateway address = [192.168.1.1]
DHCP: 

- - - - - - - - - - - - - - - - - - - - Frame 5 - ARP - - - - - - - - - - - - - - - - - - - -

Frame Status Source Address Dest. Address Size Rel. Time Delta Time Abs. Time Summary
5 0005DCC9C640 Broadcast 60 0:01:26.846 0.002.954 05/07/2001 11:52:03 AM ARP: R PA=[192.168.1.2] 
 HA=0005DCC9C640 PRO=IP
DLC: ----- DLC Header -----
DLC: 
DLC: Frame 58 arrived at 11:52:03.8470; frame size is 60 (003C hex) bytes.
DLC: Destination = BROADCAST FFFFFFFFFFFF, Broadcast
DLC: Source = Station 0005DCC9C640
DLC: Ethertype = 0806 (ARP)
DLC: 
ARP: ----- ARP/RARP frame -----
ARP: 
ARP: Hardware type = 1 (10Mb Ethernet)
ARP: Protocol type = 0800 (IP)
ARP: Length of hardware address = 6 bytes
ARP: Length of protocol address = 4 bytes
ARP: Opcode 2 (ARP reply)
ARP: Sender's hardware address = 0005DCC9C640
ARP: Sender's protocol address = [192.168.1.2]
ARP: Target hardware address = FFFFFFFFFFFF
ARP: Target protocol address = [192.168.1.2]
ARP: 
ARP: 18 bytes frame padding
ARP: 

- - - - - - - - - - - - - - - - - - - - Frame 6 - ARP - - - - - - - - - - - - - - - - - - - -

Frame Status Source Address Dest. Address Size Rel. Time Delta Time Abs. Time Summary
6 0005DCC9C640 Broadcast 60 0:01:27.355 0.508.778 05/07/2001 11:52:04 AM ARP: R PA=[192.168.1.2]  
 HA=0005DCC9C640 PRO=IP
DLC: ----- DLC Header -----
DLC: 
DLC: Frame 59 arrived at 11:52:04.3557; frame size is 60 (003C hex) bytes.
DLC: Destination = BROADCAST FFFFFFFFFFFF, Broadcast
DLC: Source = Station 0005DCC9C640
DLC: Ethertype = 0806 (ARP)
DLC: 
ARP: ----- ARP/RARP frame -----
ARP: 
ARP: Hardware type = 1 (10Mb Ethernet)
ARP: Protocol type = 0800 (IP)
ARP: Length of hardware address = 6 bytes
ARP: Length of protocol address = 4 bytes
ARP: Opcode 2 (ARP reply)
ARP: Sender's hardware address = 0005DCC9C640
ARP: Sender's protocol address = [192.168.1.2]
ARP: Target hardware address = FFFFFFFFFFFF
ARP: Target protocol address = [192.168.1.2]
ARP: 
ARP: 18 bytes frame padding
ARP: 

DHCP リレー エージェントとして設定されているルータによって分けられた DHCP クライアントとサーバのスニファ トレースの解読

/image/gif/paws/27470/100e.jpg

Sniffer B のトレース

- - - - - - - - - - - - - - - - - - - - Frame 1 - DHCPDISCOVER - - - - - - - - - - - - - - - - - - - -

Frame Status Source Address Dest. Address Size Rel. Time Delta Time Abs. Time Summary
1 [0.0.0.0] [255.255.255.255] 618 0:02:05.759 0.025.369 05/31/2001 06:53:04 AM DHCP: Request, 
 Message type: DHCP Discover
DLC: ----- DLC Header -----
DLC: 
DLC: Frame 124 arrived at 06:53:04.2043; frame size is 618 (026A hex) bytes.
DLC: Destination = BROADCAST FFFFFFFFFFFF, Broadcast
DLC: Source = Station 0005DCF2C441
DLC: Ethertype = 0800 (IP)
DLC: 
IP: ----- IP Header -----
IP: 
IP: Version = 4, header length = 20 bytes
IP: Type of service = 00
IP: 000. .... = routine
IP: ...0 .... = normal delay
IP: .... 0... = normal throughput
IP: .... .0.. = normal reliability
IP: .... ..0. = ECT bit - transport protocol will ignore the CE bit
IP: .... ...0 = CE bit - no congestion
IP: Total length = 604 bytes
IP: Identification = 183
IP: Flags = 0X
IP: .0.. .... = may fragment
IP: ..0. .... = last fragment
IP: Fragment offset = 0 bytes
IP: Time to live = 255 seconds/hops
IP: Protocol = 17 (UDP)
IP: Header checksum = B8DA (correct)
IP: Source address = [0.0.0.0]
IP: Destination address = [255.255.255.255]
IP: No options
IP: 
UDP: ----- UDP Header -----
UDP: 
UDP: Source port = 68 (BootPc/DHCP)
UDP: Destination port = 67 (BootPs/DHCP)
UDP: Length = 584
UDP: No checksum
UDP: [576 byte(s) of data]
UDP: 
DHCP: ----- DHCP Header -----
DHCP: 
DHCP: Boot record type = 1 (Request)
DHCP: Hardware address type = 1 (10Mb Ethernet)
DHCP: Hardware address length = 6 bytes
DHCP: 
DHCP: Hops = 0
DHCP: Transaction id = 00001425
DHCP: Elapsed boot time = 0 seconds
DHCP: Flags = 8000
DHCP: 1... .... .... .... = Broadcast IP datagrams
DHCP: Client self-assigned IP address = [0.0.0.0]
DHCP: Client IP address = [0.0.0.0]
DHCP: Next Server to use in bootstrap = [0.0.0.0]
DHCP: Relay Agent = [0.0.0.0]
DHCP: Client hardware address = 0005DCF2C441
DHCP: 
DHCP: Host name = ""
DHCP: Boot file name = ""
DHCP: 
DHCP: Vendor Information tag = 63825363 
DHCP: Message Type = 1 (DHCP Discover)
DHCP: Maximum message size = 1152
DHCP: Client identifier = 00636973636F2D303065302E316566322E633434312D4574302F30
DHCP: Parameter Request List: 7 entries
DHCP: 1 = Client's subnet mask
DHCP: 6 = Domain name server
DHCP: 15 = Domain name
DHCP: 44 = NetBIOS over TCP/IP name server
DHCP: 3 = Routers on the client's subnet
DHCP: 33 = Static route
DHCP: 150 = Unknown Option
DHCP: Class identifier = 646F63736973312E30
DHCP: Option overload =3 (File and Sname fields hold options)
DHCP: 

- - - - - - - - - - - - - - - - - - - - Frame 2 - DHCPOFFER - - - - - - - - - - - - - - - - - - - -

Frame Status Source Address Dest. Address Size Rel. Time Delta Time Abs. Time Summaryr
125 [192.168.1.1] [255.255.255.255] 347 0:02:05.772 0.012.764 05/31/2001 06:53:04 AM DHCP: Reply, 
 Message type: DHCP Offer
DLC: ----- DLC Header -----
DLC: 
DLC: Frame 125 arrived at 06:53:04.2171; frame size is 347 (015B hex) bytes.
DLC: Destination = BROADCAST FFFFFFFFFFFF, Broadcast
DLC: Source = Station 003094248F71
DLC: Ethertype = 0800 (IP)
DLC: 
IP: ----- IP Header -----
IP: 
IP: Version = 4, header length = 20 bytes
IP: Type of service = 00
IP: 000. .... = routine
IP: ...0 .... = normal delay
IP: .... 0... = normal throughput
IP: .... .0.. = normal reliability
IP: .... ..0. = ECT bit - transport protocol will ignore the CE bit
IP: .... ...0 = CE bit - no congestion
IP: Total length = 333 bytes
IP: Identification = 45
IP: Flags = 0X
IP: .0.. .... = may fragment
IP: ..0. .... = last fragment
IP: Fragment offset = 0 bytes
IP: Time to live = 255 seconds/hops
IP: Protocol = 17 (UDP)
IP: Header checksum = F8C9 (correct)
IP: Source address = [192.168.1.1]
IP: Destination address = [255.255.255.255]
IP: No options
IP: 
UDP: ----- UDP Header -----
UDP: 
UDP: Source port = 67 (BootPs/DHCP)
UDP: Destination port = 68 (BootPc/DHCP)
UDP: Length = 313
UDP: Checksum = 8517 (correct)
UDP: [305 byte(s) of data]
UDP: 
DHCP: ----- DHCP Header -----
DHCP: 
DHCP: Boot record type = 2 (Reply)
DHCP: Hardware address type = 1 (10Mb Ethernet)
DHCP: Hardware address length = 6 bytes
DHCP: 
DHCP: Hops = 0
DHCP: Transaction id = 00001425
DHCP: Elapsed boot time = 0 seconds
DHCP: Flags = 8000
DHCP: 1... .... .... .... = Broadcast IP datagrams
DHCP: Client self-assigned IP address = [0.0.0.0]
DHCP: Client IP address = [192.168.1.2]
DHCP: Next Server to use in bootstrap = [0.0.0.0]
DHCP: Relay Agent = [192.168.1.1]
DHCP: Client hardware address = 0005DCF2C441
DHCP: 
DHCP: Host name = ""
DHCP: Boot file name = ""
DHCP: 
DHCP: Vendor Information tag = 63825363 
DHCP: Message Type = 2 (DHCP Offer)
DHCP: Server IP address = [192.168.2.2]
DHCP: Request IP address lease time = 99471 (seconds)
DHCP: Address Renewel interval = 49735 (seconds)
DHCP: Address Rebinding interval = 87037 (seconds)
DHCP: Subnet mask = [255.255.255.0]
DHCP: Domain Name Server address = [192.168.10.1]
DHCP: Domain Name Server address = [192.168.10.2]
DHCP: NetBIOS Server address = [192.168.10.1]
DHCP: NetBIOS Server address = [192.168.10.3]
DHCP: Domain name = "cisco.com"
DHCP: 

- - - - - - - - - - - - - - - - - - - - Frame 3 - DHCPREQUEST - - - - - - - - - - - - - - - - - - - -

Frame Status Source Address Dest. Address Size Rel. Time Delta Time Abs. Time Summary
3 [0.0.0.0] [255.255.255.255] 618 0:02:05.774 0.002.185 05/31/2001 06:53:04 AM DHCP: Request, 
 Message type: DHCP Request
DLC: ----- DLC Header -----
DLC: 
DLC: Frame 126 arrived at 06:53:04.2193; frame size is 618 (026A hex) bytes.
DLC: Destination = BROADCAST FFFFFFFFFFFF, Broadcast
DLC: Source = Station Cisc14F2C441
DLC: Ethertype = 0800 (IP)
DLC: 
IP: ----- IP Header -----
IP: 
IP: Version = 4, header length = 20 bytes
IP: Type of service = 00
IP: 000. .... = routine
IP: ...0 .... = normal delay
IP: .... 0... = normal throughput
IP: .... .0.. = normal reliability
IP: .... ..0. = ECT bit - transport protocol will ignore the CE bit
IP: .... ...0 = CE bit - no congestion
IP: Total length = 604 bytes
IP: Identification = 184
IP: Flags = 0X
IP: .0.. .... = may fragment
IP: ..0. .... = last fragment
IP: Fragment offset = 0 bytes
IP: Time to live = 255 seconds/hops
IP: Protocol = 17 (UDP)
IP: Header checksum = B8D9 (correct)
IP: Source address = [0.0.0.0]
IP: Destination address = [255.255.255.255]
IP: No options
IP: 
UDP: ----- UDP Header -----
UDP: 
UDP: Source port = 68 (BootPc/DHCP)
UDP: Destination port = 67 (BootPs/DHCP)
UDP: Length = 584
UDP: No checksum
UDP: [576 byte(s) of data]
UDP: 
DHCP: ----- DHCP Header -----
DHCP: 
DHCP: Boot record type = 1 (Request)
DHCP: Hardware address type = 1 (10Mb Ethernet)
DHCP: Hardware address length = 6 bytes
DHCP: 
DHCP: Hops = 0
DHCP: Transaction id = 00001425
DHCP: Elapsed boot time = 0 seconds
DHCP: Flags = 8000
DHCP: 1... .... .... .... = Broadcast IP datagrams
DHCP: Client self-assigned IP address = [0.0.0.0]
DHCP: Client IP address = [0.0.0.0]
DHCP: Next Server to use in bootstrap = [0.0.0.0]
DHCP: Relay Agent = [0.0.0.0]
DHCP: Client hardware address = 0005DCF2C441
DHCP: 
DHCP: Host name = ""
DHCP: Boot file name = ""
DHCP: 
DHCP: Vendor Information tag = 63825363 
DHCP: Message Type = 3 (DHCP Request)
DHCP: Maximum message size = 1152
DHCP: Client identifier = 00636973636F2D303065302E316566322E633434312D4574302F30
DHCP: Server IP address = [192.168.2.2]
DHCP: Request specific IP address = [192.168.1.2]
DHCP: Request IP address lease time = 99471 (seconds)
DHCP: Parameter Request List: 7 entries
DHCP: 1 = Client's subnet mask
DHCP: 6 = Domain name server
DHCP: 15 = Domain name
DHCP: 44 = NetBIOS over TCP/IP name server
DHCP: 3 = Routers on the client's subnet
DHCP: 33 = Static route
DHCP: 150 = Unknown Option
DHCP: Class identifier = 646F63736973312E30
DHCP: Option overload =3 (File and Sname fields hold options)
DHCP: 

- - - - - - - - - - - - - - - - - - - - Frame 4 - DHCPACK - - - - - - - - - - - - - - - - - - - -

Frame Status Source Address Dest. Address Size Rel. Time Delta Time Abs. Time Summary
4 [192.168.1.1] [255.255.255.255] 347 0:02:05.787 0.012.875 05/31/2001 06:53:04 AM DHCP: Reply, 
 Message type: DHCP Ack
DLC: ----- DLC Header -----
DLC: 
DLC: Frame 127 arrived at 06:53:04.2321; frame size is 347 (015B hex) bytes.
DLC: Destination = BROADCAST FFFFFFFFFFFF, Broadcast
DLC: Source = Station 003094248F71
DLC: Ethertype = 0800 (IP)
DLC: 
IP: ----- IP Header -----
IP: 
IP: Version = 4, header length = 20 bytes
IP: Type of service = 00
IP: 000. .... = routine
IP: ...0 .... = normal delay
IP: .... 0... = normal throughput
IP: .... .0.. = normal reliability
IP: .... ..0. = ECT bit - transport protocol will ignore the CE bit
IP: .... ...0 = CE bit - no congestion
IP: Total length = 333 bytes
IP: Identification = 47
IP: Flags = 0X
IP: .0.. .... = may fragment
IP: ..0. .... = last fragment
IP: Fragment offset = 0 bytes
IP: Time to live = 255 seconds/hops
IP: Protocol = 17 (UDP)
IP: Header checksum = F8C7 (correct)
IP: Source address = [192.168.1.1]
IP: Destination address = [255.255.255.255]
IP: No options
IP: 
UDP: ----- UDP Header -----
UDP: 
UDP: Source port = 67 (BootPs/DHCP)
UDP: Destination port = 68 (BootPc/DHCP)
UDP: Length = 313
UDP: Checksum = 326F (correct)
UDP: [305 byte(s) of data]
UDP: 
DHCP: ----- DHCP Header -----
DHCP: 
DHCP: Boot record type = 2 (Reply)
DHCP: Hardware address type = 1 (10Mb Ethernet)
DHCP: Hardware address length = 6 bytes
DHCP: 
DHCP: Hops = 0
DHCP: Transaction id = 00001425
DHCP: Elapsed boot time = 0 seconds
DHCP: Flags = 8000
DHCP: 1... .... .... .... = Broadcast IP datagrams
DHCP: Client self-assigned IP address = [0.0.0.0]
DHCP: Client IP address = [192.168.1.2]
DHCP: Next Server to use in bootstrap = [0.0.0.0]
DHCP: Relay Agent = [192.168.1.1]
DHCP: Client hardware address = 0005DCF2C441
DHCP: 
DHCP: Host name = ""
DHCP: Boot file name = ""
DHCP: 
DHCP: Vendor Information tag = 63825363 
DHCP: Message Type = 5 (DHCP Ack)
DHCP: Server IP address = [192.168.2.2]
DHCP: Request IP address lease time = 172800 (seconds)
DHCP: Address Renewel interval = 86400 (seconds)
DHCP: Address Rebinding interval = 151200 (seconds)
DHCP: Subnet mask = [255.255.255.0]
DHCP: Domain Name Server address = [192.168.10.1]
DHCP: Domain Name Server address = [192.168.10.2]
DHCP: NetBIOS Server address = [192.168.10.1]
DHCP: NetBIOS Server address = [192.168.10.3]
DHCP: Domain name = "cisco.com"
DHCP: 

- - - - - - - - - - - - - - - - - - - - Frame 5 - ARP - - - - - - - - - - - - - - - - - - - -

Frame Status Source Address Dest. Address Size Rel. Time Delta Time Abs. Time Summary
5 Cisc14F2C441 Broadcast 60 0:02:05.798 0.011.763 05/31/2001 06:53:04 AM ARP: R PA=[192.168.1.2] 
 HA=Cisc14F2C441 PRO=IP
DLC: ----- DLC Header -----
DLC: 
DLC: Frame 128 arrived at 06:53:04.2439; frame size is 60 (003C hex) bytes.
DLC: Destination = BROADCAST FFFFFFFFFFFF, Broadcast
DLC: Source = Station Cisc14F2C441
DLC: Ethertype = 0806 (ARP)
DLC: 
ARP: ----- ARP/RARP frame -----
ARP: 
ARP: Hardware type = 1 (10Mb Ethernet)
ARP: Protocol type = 0800 (IP)
ARP: Length of hardware address = 6 bytes
ARP: Length of protocol address = 4 bytes
ARP: Opcode 2 (ARP reply)
ARP: Sender's hardware address = 00E01EF2C441
ARP: Sender's protocol address = [192.168.1.2]
ARP: Target hardware address = FFFFFFFFFFFF
ARP: Target protocol address = [192.168.1.2]
ARP: 
ARP: 18 bytes frame padding
ARP: 

- - - - - - - - - - - - - - - - - - - - Frame 6 - ARP - - - - - - - - - - - - - - - - - - - -

Frame Status Source Address Dest. Address Size Rel. Time Delta Time Abs. Time Summary
5 Cisc14F2C441 Broadcast 60 0:02:05.798 0.011.763 05/31/2001 06:53:04 AM ARP: R PA=[192.168.1.2] 
 HA=Cisc14F2C441 PRO=IP
DLC: ----- DLC Header -----
DLC: 
DLC: Frame 128 arrived at 06:53:04.2439; frame size is 60 (003C hex) bytes.
DLC: Destination = BROADCAST FFFFFFFFFFFF, Broadcast
DLC: Source = Station Cisc14F2C441
DLC: Ethertype = 0806 (ARP)
DLC: 
ARP: ----- ARP/RARP frame -----
ARP: 
ARP: Hardware type = 1 (10Mb Ethernet)
ARP: Protocol type = 0800 (IP)
ARP: Length of hardware address = 6 bytes
ARP: Length of protocol address = 4 bytes
ARP: Opcode 2 (ARP reply)
ARP: Sender's hardware address = 00E01EF2C441
ARP: Sender's protocol address = [192.168.1.2]
ARP: Target hardware address = FFFFFFFFFFFF
ARP: Target protocol address = [192.168.1.2]
ARP: 
ARP: 18 bytes frame padding
ARP: 

Sniffer A のトレース

- - - - - - - - - - - - - - - - - - - - Frame 1 - DHCPDISCOVER - - - - - - - - - - - - - - - - - - - -

Frame Status Source Address Dest. Address Size Rel. Time Delta Time Abs. Time Summary
118 [192.168.1.1] [192.168.2.2] 618 0:00:51.212 0.489.912 05/31/2001 07:02:54 AM DHCP: Request, 
 Message type: DHCP Discover
DLC: ----- DLC Header -----
DLC: 
DLC: Frame 118 arrived at 07:02:54.7463; frame size is 618 (026A hex) bytes.
DLC: Destination = Station 0005DC0BF2F4
DLC: Source = Station 003094248F72
DLC: Ethertype = 0800 (IP)
DLC: 
IP: ----- IP Header -----
IP: 
IP: Version = 4, header length = 20 bytes
IP: Type of service = 00
IP: 000. .... = routine
IP: ...0 .... = normal delay
IP: .... 0... = normal throughput
IP: .... .0.. = normal reliability
IP: .... ..0. = ECT bit - transport protocol will ignore the CE bit
IP: .... ...0 = CE bit - no congestion
IP: Total length = 604 bytes
IP: Identification = 52
IP: Flags = 0X
IP: .0.. .... = may fragment
IP: ..0. .... = last fragment
IP: Fragment offset = 0 bytes
IP: Time to live = 255 seconds/hops
IP: Protocol = 17 (UDP)
IP: Header checksum = 3509 (correct)
IP: Source address = [192.168.1.1]
IP: Destination address = [192.168.2.2]
IP: No options
IP: 
UDP: ----- UDP Header -----
UDP: 
UDP: Source port = 67 (BootPs/DHCP)
UDP: Destination port = 67 (BootPs/DHCP)
UDP: Length = 584
UDP: Checksum = 0A19 (correct)
UDP: [576 byte(s) of data]
UDP: 
DHCP: ----- DHCP Header -----
DHCP: 
DHCP: Boot record type = 1 (Request)
DHCP: Hardware address type = 1 (10Mb Ethernet)
DHCP: Hardware address length = 6 bytes
DHCP: 
DHCP: Hops = 1
DHCP: Transaction id = 000005F4
DHCP: Elapsed boot time = 0 seconds
DHCP: Flags = 8000
DHCP: 1... .... .... .... = Broadcast IP datagrams
DHCP: Client self-assigned IP address = [0.0.0.0]
DHCP: Client IP address = [0.0.0.0]
DHCP: Next Server to use in bootstrap = [0.0.0.0]
DHCP: Relay Agent = [192.168.1.1]
DHCP: Client hardware address = 0005DCF2C441
DHCP: 
DHCP: Host name = ""
DHCP: Boot file name = ""
DHCP: 
DHCP: Vendor Information tag = 63825363 
DHCP: Message Type = 1 (DHCP Discover)
DHCP: Maximum message size = 1152
DHCP: Client identifier = 00636973636F2D303065302E316566322E633434312D4574302F30
DHCP: Parameter Request List: 7 entries
DHCP: 1 = Client's subnet mask
DHCP: 6 = Domain name server
DHCP: 15 = Domain name
DHCP: 44 = NetBIOS over TCP/IP name server
DHCP: 3 = Routers on the client's subnet
DHCP: 33 = Static route
DHCP: 150 = Unknown Option
DHCP: Class identifier = 646F63736973312E30
DHCP: Option overload =3 (File and Sname fields hold options)
DHCP: 

- - - - - - - - - - - - - - - - - - - - Frame 2 - DHCPOFFER - - - - - - - - - - - - - - - - - - - -

Frame Status Source Address Dest. Address Size Rel. Time Delta Time Abs. Time Summary
2 [192.168.2.2] [192.168.1.1] 347 0:00:51.214 0.002.133 05/31/2001 07:02:54 AM DHCP: Request, 
 Message type: DHCP Offer
DLC: ----- DLC Header -----
DLC: 
DLC: Frame 119 arrived at 07:02:54.7485; frame size is 347 (015B hex) bytes.
DLC: Destination = Station 003094248F72
DLC: Source = Station 0005DC0BF2F4
DLC: Ethertype = 0800 (IP)
DLC: 
IP: ----- IP Header -----
IP: 
IP: Version = 4, header length = 20 bytes
IP: Type of service = 00
IP: 000. .... = routine
IP: ...0 .... = normal delay
IP: .... 0... = normal throughput
IP: .... .0.. = normal reliability
IP: .... ..0. = ECT bit - transport protocol will ignore the CE bit
IP: .... ...0 = CE bit - no congestion
IP: Total length = 333 bytes
IP: Identification = 41
IP: Flags = 0X
IP: .0.. .... = may fragment
IP: ..0. .... = last fragment
IP: Fragment offset = 0 bytes
IP: Time to live = 255 seconds/hops
IP: Protocol = 17 (UDP)
IP: Header checksum = 3623 (correct)
IP: Source address = [192.168.2.2]
IP: Destination address = [192.168.1.1]
IP: No options
IP: 
UDP: ----- UDP Header -----
UDP: 
UDP: Source port = 67 (BootPs/DHCP)
UDP: Destination port = 67 (BootPs/DHCP)
UDP: Length = 313
UDP: Checksum = A1F8 (correct)
UDP: [305 byte(s) of data]
UDP: 
DHCP: ----- DHCP Header -----
DHCP: 
DHCP: Boot record type = 2 (Request)
DHCP: Hardware address type = 1 (10Mb Ethernet)
DHCP: Hardware address length = 6 bytes
DHCP: 
DHCP: Hops = 0
DHCP: Transaction id = 000005F4
DHCP: Elapsed boot time = 0 seconds
DHCP: Flags = 8000
DHCP: 1... .... .... .... = Broadcast IP datagrams
DHCP: Client self-assigned IP address = [0.0.0.0]
DHCP: Client IP address = [192.168.1.2]
DHCP: Next Server to use in bootstrap = [0.0.0.0]
DHCP: Relay Agent = [192.168.1.1]
DHCP: Client hardware address = 0005DCF2C441
DHCP: 
DHCP: Host name = ""
DHCP: Boot file name = ""
DHCP: 
DHCP: Vendor Information tag = 63825363 
DHCP: Message Type = 2 (DHCP Offer)
DHCP: Server IP address = [192.168.2.2]
DHCP: Request IP address lease time = 172571 (seconds)
DHCP: Address Renewel interval = 86285 (seconds)
DHCP: Address Rebinding interval = 150999 (seconds)
DHCP: Subnet mask = [255.255.255.0]
DHCP: Domain Name Server address = [192.168.10.1]
DHCP: Domain Name Server address = [192.168.10.2]
DHCP: NetBIOS Server address = [192.168.10.1]
DHCP: NetBIOS Server address = [192.168.10.3]
DHCP: Domain name = "cisco.com"
DHCP: 

- - - - - - - - - - - - - - - - - - - - Frame 3 - DHCPREQUEST - - - - - - - - - - - - - - - - - - - -

Frame Status Source Address Dest. Address Size Rel. Time Delta Time Abs. Time Summary
3 [192.168.1.1] [192.168.2.2] 618 0:00:51.240 0.025.974 05/31/2001 07:02:54 AM DHCP: Request, 
 Message type: DHCP Request
DLC: ----- DLC Header -----
DLC: 
DLC: Frame 120 arrived at 07:02:54.7745; frame size is 618 (026A hex) bytes.
DLC: Destination = Station 0005DC0BF2F4
DLC: Source = Station 003094248F72
DLC: Ethertype = 0800 (IP)
DLC: 
IP: ----- IP Header -----
IP: 
IP: Version = 4, header length = 20 bytes
IP: Type of service = 00
IP: 000. .... = routine
IP: ...0 .... = normal delay
IP: .... 0... = normal throughput
IP: .... .0.. = normal reliability
IP: .... ..0. = ECT bit - transport protocol will ignore the CE bit
IP: .... ...0 = CE bit - no congestion
IP: Total length = 604 bytes
IP: Identification = 54
IP: Flags = 0X
IP: .0.. .... = may fragment
IP: ..0. .... = last fragment
IP: Fragment offset = 0 bytes
IP: Time to live = 255 seconds/hops
IP: Protocol = 17 (UDP)
IP: Header checksum = 3507 (correct)
IP: Source address = [192.168.1.1]
IP: Destination address = [192.168.2.2]
IP: No options
IP: 
UDP: ----- UDP Header -----
UDP: 
UDP: Source port = 67 (BootPs/DHCP)
UDP: Destination port = 67 (BootPs/DHCP)
UDP: Length = 584
UDP: Checksum = 4699 (correct)
UDP: [576 byte(s) of data]
UDP: 
DHCP: ----- DHCP Header -----
DHCP: 
DHCP: Boot record type = 1 (Request)
DHCP: Hardware address type = 1 (10Mb Ethernet)
DHCP: Hardware address length = 6 bytes
DHCP: 
DHCP: Hops = 1
DHCP: Transaction id = 000005F4
DHCP: Elapsed boot time = 0 seconds
DHCP: Flags = 8000
DHCP: 1... .... .... .... = Broadcast IP datagrams
DHCP: Client self-assigned IP address = [0.0.0.0]
DHCP: Client IP address = [0.0.0.0]
DHCP: Next Server to use in bootstrap = [0.0.0.0]
DHCP: Relay Agent = [192.168.1.1]
DHCP: Client hardware address = 0005DCF2C441
DHCP: 
DHCP: Host name = ""
DHCP: Boot file name = ""
DHCP: 
DHCP: Vendor Information tag = 63825363 
DHCP: Message Type = 3 (DHCP Request)
DHCP: Maximum message size = 1152
DHCP: Client identifier = 00636973636F2D303065302E316566322E633434312D4574302F30
DHCP: Server IP address = [192.168.2.2]
DHCP: Request specific IP address = [192.168.1.2]
DHCP: Request IP address lease time = 172571 (seconds)
DHCP: Parameter Request List: 7 entries
DHCP: 1 = Client's subnet mask
DHCP: 6 = Domain name server
DHCP: 15 = Domain name
DHCP: 44 = NetBIOS over TCP/IP name server
DHCP: 3 = Routers on the client's subnet
DHCP: 33 = Static route
DHCP: 150 = Unknown Option
DHCP: Class identifier = 646F63736973312E30
DHCP: Option overload =3 (File and Sname fields hold options)
DHCP: 

- - - - - - - - - - - - - - - - - - - - Frame 4 - DHCPACK - - - - - - - - - - - - - - - - - - - -

Frame Status Source Address Dest. Address Size Rel. Time Delta Time Abs. Time Summary
4 [192.168.2.2] [192.168.1.1] 347 0:00:51.240 0.000.153 05/31/2001 07:02:54 AM DHCP: Request, 
 Message type: DHCP Ack
DLC: ----- DLC Header -----
DLC: 
DLC: Frame 121 arrived at 07:02:54.7746; frame size is 347 (015B hex) bytes.
DLC: Destination = Station 003094248F72
DLC: Source = Station 0005DC0BF2F4
DLC: Ethertype = 0800 (IP)
DLC: 
IP: ----- IP Header -----
IP: 
IP: Version = 4, header length = 20 bytes
IP: Type of service = 00
IP: 000. .... = routine
IP: ...0 .... = normal delay
IP: .... 0... = normal throughput
IP: .... .0.. = normal reliability
IP: .... ..0. = ECT bit - transport protocol will ignore the CE bit
IP: .... ...0 = CE bit - no congestion
IP: Total length = 333 bytes
IP: Identification = 42
IP: Flags = 0X
IP: .0.. .... = may fragment
IP: ..0. .... = last fragment
IP: Fragment offset = 0 bytes
IP: Time to live = 255 seconds/hops
IP: Protocol = 17 (UDP)
IP: Header checksum = 3622 (correct)
IP: Source address = [192.168.2.2]
IP: Destination address = [192.168.1.1]
IP: No options
IP: 
UDP: ----- UDP Header -----
UDP: 
UDP: Source port = 67 (BootPs/DHCP)
UDP: Destination port = 67 (BootPs/DHCP)
UDP: Length = 313
UDP: Checksum = 7DF6 (correct)
UDP: [305 byte(s) of data]
UDP: 
DHCP: ----- DHCP Header -----
DHCP: 
DHCP: Boot record type = 2 (Request)
DHCP: Hardware address type = 1 (10Mb Ethernet)
DHCP: Hardware address length = 6 bytes
DHCP: 
DHCP: Hops = 0
DHCP: Transaction id = 000005F4
DHCP: Elapsed boot time = 0 seconds
DHCP: Flags = 8000
DHCP: 1... .... .... .... = Broadcast IP datagrams
DHCP: Client self-assigned IP address = [0.0.0.0]
DHCP: Client IP address = [192.168.1.2]
DHCP: Next Server to use in bootstrap = [0.0.0.0]
DHCP: Relay Agent = [192.168.1.1]
DHCP: Client hardware address = 0005DCF2C441
DHCP: 
DHCP: Host name = ""
DHCP: Boot file name = ""
DHCP: 
DHCP: Vendor Information tag = 63825363 
DHCP: Message Type = 5 (DHCP Ack)
DHCP: Server IP address = [192.168.2.2]
DHCP: Request IP address lease time = 172800 (seconds)
DHCP: Address Renewel interval = 86400 (seconds)
DHCP: Address Rebinding interval = 151200 (seconds)
DHCP: Subnet mask = [255.255.255.0]
DHCP: Domain Name Server address = [192.168.10.1]
DHCP: Domain Name Server address = [192.168.10.2]
DHCP: NetBIOS Server address = [192.168.10.1]
DHCP: NetBIOS Server address = [192.168.10.3]
DHCP: Domain name = "cisco.com"
DHCP: 

DHCP のトラブルシューティング:クライアント ワークステーションが DHCP アドレスを取得できない場合

事例 1: DHCPクライアントと同じLAN セグメントまたはVLAN上のDHCPサーバ

DHCP サーバとクライアントが同じ LAN セグメントまたは VLAN にある環境で、クライアントが DHCP サーバから IP アドレスを取得できない場合、その原因がローカル ルータにあることはほとんどありません。 この問題は、ほとんどの場合、DHCP サーバと DHCP クライアントを接続するデバイスに関連しています。 ただし、DHCP サーバまたはクライアント自体に問題がある場合もあります。 次のトラブルシューティング モジュールに従って、問題を引き起こしているデバイスを特定してください。

注: VLANごとごとのaのDHCPサーバを設定するためには、クライアントにDHCPのアドレスに役立つ各VLANのための異なるDHCPのプールを定義して下さい。

事例 2: DHCP/BootP リレー エージェント機能は設定されたルータによって、DHCP サーバと DHCP クライアントが機能的に分けられる

DHCP サーバとクライアントが異なる LAN セグメントまたは VLAN にある環境では、DHCP/BootP リレー エージェントとして機能するルータが、DHCPREQUEST を DHCP サーバに転送する役割を果たします。 DHCP サーバとクライアントだけでなく、DHCP/BootP リレー エージェントのトラブルシューティングもあわせて行うには、追加のトラブルシューティング ステップが必要です。 次のトラブルシューティング モジュールに従って、問題を引き起こしているデバイスを特定してください。

ルータのDHCPサーバはプールによって排出されるエラーによってAdressesを割り当てません

それらがプールからリリースされてもアドレスがまだクライアントによって保持されることは可能です。 これは提示IP DHCPの競合の出力によって確認することができます。 アドレス競合は2つのホストが同じIPアドレスを使用すると発生します。 アドレス指定で、DHCPはPINGおよび無償ARPと競合があるように確認します。

競合が検出される場合、アドレスはプールから取除かれます。 アドレスは管理者が競合を解決するまで割り当てられます。 この問題を解決するためにip dhcp conflict loggingを設定しないで下さい。

DHCP のトラブルシューティング モジュール

DHCP 問題の発生箇所について

DHCP 問題はさまざまな原因で起こります。 最も可能性の高い原因は、設定の問題です。 しかし、オペレーティング システム、Network Interface Card(NIC; ネットワーク インターフェイス カード)のドライバ、ルータで動作している DHCP/BootP リレー エージェントなどのソフトウェアの不良によっても、各種の DHCP 問題が引き起こされる可能性があります。 このように原因となりうる領域が複数あるため、トラブルシューティングには体系的なアプローチが必要となります。

DHCP 問題の原因となりうるもの

  • Catalyst スイッチのデフォルト コンフィギュレーション

  • DHCP/BootP リレー エージェントの設定

  • NIC の互換性の問題、または DHCP 機能の問題

  • NIC の障害または不適切な NIC ドライバのインストール

  • 頻繁なスパニング ツリー計算による断続的なネットワークの停止

  • オペレーティング システムの動作またはソフトウェアの不良

  • DHCP サーバのスコープ設定またはソフトウェアの不良

  • Cisco Catalyst スイッチまたは IOS DHCP/BootP リレー エージェントのソフトウェアの不良

  • DHCPオファーが期待されるより別のインターフェイスで受け取られるので失敗するUnicast Reverse Path Forwarding (URPF)のチェック。 予約パス転送(RPF)機能がインターフェイスで有効になるとき、Ciscoルータは0.0.0.0の送信元アドレスおよび255.255.255.255の宛先アドレスがあるダイナミック・ホスト・コンフィギュレーション・プロトコルおよびブートストラップ・プロトコル(BOOTP)パケットを廃棄できます。 ルータはまたインターフェイスでマルチキャストIP宛先があるすべてのIPパケットを廃棄できます。 この問題はCSCdw31925 (登録ユーザのみ)で文書化されます。

  • DHCP データベース エージェントを使用していないが、DHCP 競合のロギングが無効にされていない

この文書では、上記のリストにあるような根本原因を特定するために、次のトラブルシューティング モジュールを使用します。

A. 物理的な接続の確認

この手順はすべての事例に適用されます。

最初に、DHCP クライアントとサーバの物理的な接続を確認します。 Catalyst スイッチに接続されている場合は、DHCP クライアントとサーバがどちらも物理的に接続されているかを確認します。

2948G、4000、5000、6000 シリーズ スイッチなどの Catalyst CatOS スイッチでは、show port <mod#>/<port_range> コマンドを使用して、ポートのステータスを確認します。 ポートの状態が connected 以外のものである場合、そのポートでは、DHCP クライアント要求を含むトラフィックはまったく通過していません。 このコマンドからの出力例を次に示します。

Switch (enable) show port 5/1
Port Name Status Vlan Duplex Speed Type
----- ------------------ ---------- ---------- ------ ----- ------------
5/1 connected 1 a-full a-100 10/100BaseTX 

Catalyst 2900XL/3500XL/2950/3550 などの IOS ベースのスイッチでは、show port status に相当するコマンドとして show interface <interface> を使用します。 インターフェイスの状態が <interface> is up, line protocol is up 以外のものである場合、そのポートでは、DHCP クライアント要求を含むトラフィックはまったく通過していません。 このコマンドからの出力例を次に示します。

Switch#show interface fastEthernet 0/1
FastEthernet0/1 is up, line protocol is up
Hardware is Fast Ethernet, address is 0030.94dc.acc1 (bia 0030.94dc.acc1) 

物理的な接続を確認した結果、実際に Catalyst スイッチと DHCP クライアント間のリンクがない場合は、『Cisco Catalyst スイッチと NIC との互換性に関する問題のトラブルシューティング』を参照して、物理層の接続上の問題に関する追加のトラブルシューティングを行います。

データ リンク エラーが頻繁に発生すると、一部の Catalyst スイッチのポートが errdisabled 状態になる場合があります。 errdisable 状態の詳細と、この状態から復旧する方法については、『CatOS プラットフォームでの errDisable ポート状態からの復旧』および『Cisco IOS プラットフォームでの errDisable ポート状態からの復旧』を参照してください。

B. クライアント ワークステーションにスタティック IP アドレスを設定してネットワーク接続性をテスト

この手順はすべての事例に適用されます。

DHCP 問題のトラブルシューティングでは、クライアント ワークステーションにスタティック IP アドレスを設定してネットワーク接続性を確認することが重要です。 ワークステーションにスタティック IP アドレスを設定してもネットワーク リソースに到達できない場合、問題の根本原因は DHCP ではありません。 この場合は、ネットワーク接続性のトラブルシューティングが必要です。

C. 起動時における問題の確認

この手順はすべての事例に適用されます。

DHCP クライアントが起動時に DHCP サーバから IP アドレスを取得できない場合は、クライアントから DHCP サーバに手動で DHCP 要求を送信して IP アドレスを取得できるかを試してみます。 DHCP サーバから IP アドレスを手動で取得するには、クライアントのオペレーティング システムに応じて次のステップに従います。

Microsoft Windows 95/98/MEStart ボタンをクリックして、WINIPCFG.exe プログラムを実行します。 Release All ボタンをクリックしてから、Renew All ボタンをクリックします。 これで、DHCP クライアントは IP アドレスを取得できます。

/image/gif/paws/27470/100f.jpg

Microsoft Windows NT/2000Start > Run フィールドに cmd と入力して、コマンド プロンプト ウィンドウを開きます。 コマンド プロンプト ウィンドウで、次のように ipconfig/renew コマンドを発行します。 これで、DHCP クライアントは IP アドレスを取得できます。

/image/gif/paws/27470/100g.jpg

PC の起動プロセスが完了した後、DHCP クライアントから IP アドレスを手動で更新することで IP アドレスを取得できる場合、おそらく DHCP の起動の問題です。 DHCP クライアントが Cisco Catalyst スイッチに接続している場合、最も可能性が高いのは、STP PortFast またはチャネリングとトランキングの処理に関する設定の問題です。 その他には、NIC カードの問題やスイッチ ポートの起動の問題などが考えられます。 スイッチ ポートの設定と NIC カードの問題が DHCP 問題の根本原因である可能性を除外するには、トラブルシューティング ステップ DE を参照してください。

D. スイッチ ポートの設定の確認(STP PortFast とその他のコマンド)

スイッチが Catalyst 2900/4000/5000/6000 の場合は、ポートの STP PortFast が有効で、トランキング/チャネリングが無効になっていることを確認します。 デフォルト設定は、STP PortFast が無効で、トランキング/チャネリングが自動です(該当する場合)。 2900XL/3500XL/2950/3550 スイッチでは、STP PortFast のみが必須の設定です。 Catalyst スイッチの初期設置時に最もよく見られる DHCP クライアントの問題は、これらの設定変更によって解決します。

Catalyst スイッチに接続する DHCP が正常に動作するために必要なスイッチ ポート設定の要件については、次の文書を参照してください。

PortFast と他のコマンドを使用したワークステーションの接続始動遅延の修復

上記の文書の設定ガイドラインを参照した後、この文書に戻ってトラブルシューティングを続けてください。

E. 既知のNICのカードかCatalystスイッチ問題があるように確認して下さい

Catalyst スイッチの設定が適切な場合は、Catalyst スイッチまたは DHCP クライアントの NIC に、DHCP 問題の原因となるソフトウェアの互換性の問題がある可能性があります。 このトラブルシューティング ステップでは、次の文書を参照して、Catalyst スイッチまたは NIC のソフトウェアの問題が DHCP 問題の原因である可能性を除外します。

Cisco Catalyst スイッチと NIC との互換性に関する問題のトラブルシューティング

互換性の問題を適切に除外するには、DHCP クライアントのオペレーティング システムに関する知識と、メーカー、モデル、ドライバのバージョンといった NIC 固有の情報が必要となります。

F. DHCP サーバと同じサブネットまたは VLAN にあるクライアントが IP アドレスを取得しているかどうかを確認

クライアントが DHCP サーバと同じサブネットまたは VLAN にある場合に、DHCP が正常に機能しているかどうかを判別することは重要です。 DHCP サーバと同じサブネットまたは VLAN で DHCP が正常に機能している場合は、DHCP/BootP リレー エージェントに問題がある可能性があります。 DHCP サーバと同じサブネットまたは VLAN の DHCP テストでも問題が見られる場合は、実際に DHCP サーバに問題がある可能性があります。

G. ルータの DHCP/BootP リレー設定の確認

次のステップに従って設定を確認します。

  1. ルータで DHCP リレーを設定している場合は、ip helper-address コマンドが適切なインターフェイス上に配置されていることを確認します。 ip helper-address コマンドは、DHCP クライアント ワークステーションの着信インターフェイス上にあり、正しい DHCP サーバを指している必要があります。

  2. グローバル設定コマンド no service dhcp がないことを確認します。 この設定パラメータは、ルータの DHCP サーバ機能とリレー機能をすべて無効にします。 デフォルト コンフィギュレーションの service dhcp はデフォルト設定コマンドで、コンフィギュレーションには表示されません。 service dhcp が有効でない場合、クライアントは DHCP サーバから IP アドレスを取得しません。

    注: より古いCisco IOSリリースを実行するルータでは、ip bootp serverコマンドはservice dhcpコマンドの代りにDHCPリレーエージェントの機能を有しています。 このため、ip helper-address コマンドが DHCP UDP ブロードキャストを転送して、DHCP クライアントの代わりに DHCP リレー エージェントとして動作するように設定されている場合は、これらのルータで ip bootp server コマンドを有効にする必要があります。

  3. ip helper-address コマンドを使用して、UDP ブロードキャストをサブネット ブロードキャスト アドレスに転送する場合は、UDP ブロードキャスト パケットが経由するすべての発信インターフェイスで no ip directed-broadcast が設定されていないことを確認します。 no ip directed-broadcast は、ダイレクト ブロードキャストから物理ブロードキャストへの変換をブロックします。 このインターフェイス設定は、ソフトウェア バージョン 12.0 以上のデフォルト コンフィギュレーションです。

  4. DHCP ブロードキャストを DHCP サーバのサブネット ブロードキャスト アドレスに転送すると、ソフトウェアの問題を引き起こすことがあります。 DHCP のトラブルシューティングを行うときは、次のように、必ず DHCP UDP ブロードキャストを DHCP サーバの IP アドレスに転送するようにしてください。

    !
    version 12.0
    service timestamps debug uptime
    service timestamps log uptime
    no service password-encryption 
    
    no service dhcp !- (2) 
    
    This configuration command will disable all DHCP server and relay functionality on the router.
    
    !
    hostname router
    !
    !
    !
    interface Ethernet0
    ip address 192.168.2.1 255.255.255.0
    no ip directed-broadcast !- (3) 
    
    This configuration will prevent translation of a directed broadcast to a physical broadcast.
    
    ! 
    interface Ethernet1 !- (1) 
    
    DHCP client workstations reside of this interface.
    
    ip address 192.168.1.1 255.255.255.0
    ip helper-address 192.168.2.255 !- (4) 
    
    IP helper-address pointing to DHCP server's subnet.
    
    no ip directed-broadcast 
    !
    !
    !
    line con 0
    exec-timeout 0 0
    transport input none
    line aux 0
    line vty 0 4
    login
    !
    end
    

H. 加入者識別(82)オプションがオン

DHCP リレー エージェント情報(オプション 82)機能を使用すると、DHCP クライアントから DHCP サーバに DHCP 要求を転送する際に、DHCP リレー エージェント(Catalyst スイッチ)が自身に関する情報と接続されているクライアントに関する情報を含めることが可能になります。

DHCP サーバはこの情報を使用して、サービスプロバイダー ネットワークの加入者ごとに、IP アドレスを割り当てたり、アクセス制御を実行したり、Quality of Service(QoS)とセキュリティ ポリシー(またはその他のパラメータ割り当てポリシー)を設定したりすることができます。

スイッチで DHCP スヌーピングを有効にすると、自動的にオプション 82 が有効になります。

DHCP サーバがオプション 82 を使用してパケットを処理するように設定されていない場合、その要求にはアドレスが割り当てられません。

この問題を解決するには、グローバル設定コマンド no ip dhcp relay information option を使用して、スイッチ(リレー エージェント)の加入者識別オプション(82)を無効にします。

I. DHCP データベース エージェントと DHCP 競合のロギング

DHCP データベース エージェントとは、DHCP バインディング データベースが格納されているホストのことです(FTP、TFTP、RCP サーバなど)。 DHCP データベース エージェントは複数設定でき、各エージェントでデータベース更新と転送の間のインターバルを設定できます。 データベース エージェントとデータベース エージェント パラメータを設定するには、ip dhcp database コマンドを使用します。

DHCP データベース エージェントを設定しない場合は、DHCP サーバで DHCP アドレス競合の記録を無効にしてください。 DHCP アドレス競合のロギングを無効にするには、no ip dhcp conflict logging コマンドを実行します。 クリアIP DHCPの競合の前にログインされた競合をクリアして下さい。

これが競合のロギングをディセーブルにしない場合このエラーメッセージが現れます:

%DHCPD-4-DECLINE_CONFLICT: DHCP address conflict: client

J. IP phoneの接続があるようにCDPを確認して下さい

Cisco IP Phone に接続されているスイッチポートで Cisco Discovery Protocol(CDP; Cisco 検出プロトコル)が無効に設定されている場合、DHCP サーバは適切な IP アドレスを電話機に割り当てることができません。 DHCP サーバは、スイッチポートのデータ VLAN またはサブネットに属している IP アドレスを割り当てる傾向があります。 CDP が有効になっている場合、スイッチは、Cisco IP Phone が DHCP を要求していて、正しいサブネット情報を提供できることを検出できます。 その場合、DHCP サーバは、音声 VLAN またはサブネット プールから IP アドレスを割り当てることができます。 voice VLANにdhcpサービスをバインドするために必要な明示的なステップがありません。

K. SVIの下で取除くことはDHCPスヌーピングオペレーションを中断します

Cisco Catalyst 6500シリーズスイッチで、SVIは(シャットダウン状態で) DHCPを特定のVLANのためにスヌーピングするために設定した後自動的に作成されます。 このSVIの存在にDHCPスヌーピングの正しいオペレーションの直接含意があります。

Cisco Catalyst 6500シリーズスイッチのDHCPスヌーピングはルートプロセッサで(Native IOSを実行するRPかMSFC)、ないスイッチ・プロセッサで大抵設定されます(SPかスーパバイザ)。 Cisco Catalyst 6500シリーズはRPによってを定期講読されるLocal Target Logic (LTL)にパケットを供給するVACLのハードウェアのパケットを代行受信します。 フレームがRPを入力すれば、スヌーピングの部分に通じることができる前に最初にIDB L3インターフェイスと(SVI)関連付けられる必要があります。 SVIなしで、このIDBはないし、パケットはRPでドロップされます。

L.限られたブロードキャスト・アドレス

DHCPクライアントがDHCPパケットのブロードキャストビットを設定するとき、DHCPサーバおよびリレー・エージェントはAll-Onesのブロードキャスト・アドレスを持つクライアントにDHCPメッセージを送ります(255.255.255.255)。 ネットワークブロードキャストを送るためにip broadcast-addressコマンドが設定される場合DHCPによって送られるAll-Onesのブロードキャストは無効になります。 この状況を改善するためには、構成されたネットワークのブロードキャストがデフォルトDHCP動作を無効にしないようにするのにIP DHCPの限られブロードキャストアドレスのコマンドを使用して下さい。

何人かのDHCPのクライアントはこのコマンドがクライアントに接続されるルータ・インターフェイスで設定されなければだけAll-Onesのブロードキャストを受け入れることができ、DHCPアドレスを得られません。

M.ルータのdebugコマンドを使用するデバッグDHCP

debug コマンドを使用して、ルータが DHCP 要求を受信しているかを確認

DHCP パケットのソフトウェア処理をサポートしているルータ上で、クライアントからの DHCP 要求が受信されているかどうかを確認できます。 ルータがクライアントからの要求を受信していない場合、DHCP プロセスは失敗します。 このトラブルシューティング ステップでは、デバック出力を得るために、access-list を設定する必要があります。 この access-list はデバッグのためのものであり、これによってルータの動作が影響を受けることはありません。

グローバル設定モードで、次の access-list を入力します。

access-list 100 permit ip host 0.0.0.0 host 255.255.255.255

EXEC モードで、次の debug コマンドを入力します。

debug ip packet detail 100

出力例:

Router#debug ip packet detail 100
IP packet debugging is on (detailed) for access list 100
Router#
00:16:46: IP: s=0.0.0.0 (Ethernet4/0), d=255.255.255.255, len 604, rcvd 2
00:16:46: UDP src=68, dst=67
00:16:46: IP: s=0.0.0.0 (Ethernet4/0), d=255.255.255.255, len 604, rcvd 2
00:16:46: UDP src=68, dst=67

上記の出力から、ルータがクライアントからの DHCP 要求を受信していることがわかります。 この出力が示しているのはパケットの要約情報のみであり、パケットそのものではありません。 したがって、パケットが正常であるかどうかは判断できません。 しかし、DHCP 用の適切な送信元 IP と 宛先 IP、および UDP ポートを含むブロードキャスト パケットがルータで受信されていたのは確かです。

debug コマンドを使用して、ルータが DHCP 要求を受信し、DHCP サーバに要求を転送しているかを確認

ルータが DHCP サーバと正常に通信しているかどうかを確認するために、access-list のエントリを追加します。 今度のデバッグもパケット自体を調べるものではありませんが、DHCP リレー エージェントが DHCP サーバに要求を転送しているかどうかは確認できます。

グローバル設定モードで、次の access-list を作成します。

access-list 100 permit ip host 0.0.0.0 host 255.255.255.255

access-list 100 permit udp host <dhcp_relay_agent> host <dhcp_server> eq 67

access-list 100 permit udp host <dhcp_server> host <dhcp_relay_agent> eq 67

次に、例を示します。

access-list 100 permit ip host 0.0.0.0 host 255.255.255.0

access-list 100 permit udp host 192.168.1.1 host 192.168.2.2 eq 67

access-list 100 permit udp host 192.168.1.1 host 192.168.2.2 eq 68

access-list 100 permit udp host 192.168.2.2 host 192.168.1.1 eq 67

access-list 100 permit udp host 192.168.2.2 host 192.168.1.1 eq 68

EXEC モードで、次の debug コマンドを入力します。

Router#
00:23:44: IP: s=0.0.0.0 (Ethernet4/0), d=255.255.255.255, len 604, rcvd 2
00:23:44: UDP src=68, dst=67 

!--- Router receiving DHCPDISCOVER from DHCP client.

00:23:44: IP: s=192.168.1.1 (local), d=192.168.2.2 (Ethernet4/1), len 604, sendg
00:23:44: UDP src=67, dst=67 

!--- Router forwarding DHCPDISCOVER unicast to DHCP server using DHCP/BootP Relay Agent source IP address.

00:23:44 IP: s=192.168.2.2 (Ethernet1), d=192.168.1.1, len 328, rcvd 4
00:23:44 UDP src=67, dst=67 

!--- DHCP server sending DHCPOFFER to DHCP/BootP Relay Agent.

00:23:44: IP: s=0.0.0.0 (Ethernet4/0), d=255.255.255.255, len 604, rcvd 2
00:23:44: UDP src=68, dst=67 

!--- Router receiving DHCPREQUEST from DHCP client.
 
00:23:44: IP: s=192.168.1.1 (local), d=192.168.2.2 (Ethernet4/1), len 604, sendg
00:23:44: UDP src=67, dst=67 

!--- Router forwarding DHCPDISCOVER unicast to DHCP server using DHCP/BootP Relay Agent source IP address.
 
00:23:44 IP: s=192.168.2.2 (Ethernet1), d=192.168.1.1, len 328, rcvd 4
00:23:44 UDP src=67, dst=67 

!--- DHCP server sending DHCPACK back to DHCP/BootP Relay Agent.

上記の出力から、ルータがクライアントからの DHCP 要求を受信し、DHCP/BootP リレー エージェントの設定に従って DHCP サーバに要求を転送していることがわかります。 DHCP サーバも DHCP/BootP リレー エージェントに直接応答しています。 この出力が示しているのはパケットの要約情報のみであり、パケットそのものではありません。 したがって、パケットが正常であるか、あるいはサーバが DHCPNAK で応答しているかどうかは判断できません。 しかし、DHCP 用の適切な送信元 IP と 宛先 IP、および UDP ポートを含むブロードキャスト パケットがルータで受信されており、ルータと DHCP サーバの間で双方向の通信が行われていたのは確かです。

debug ip udp コマンドを使用して、ルータが DHCP 要求を受信し、転送しているかを確認

debug ip udp コマンドを使用すれば、ルータを経由した DHCP 要求のパスをトレースできます。 ただし、このデバッグ コマンドを実行すると、プロセス交換された UDP パケットがすべてコンソールに表示されるため、実稼働環境の運用に支障をきたします。 このデバッグは、実稼働環境では行わないでください。

警告 警告: debug ip udpコマンドは嵌入的、高いCPU使用効率を引き起こすかもしれません。

EXEC モードで、次の debug コマンドを入力します。

debug ip udp

出力例:

Router#debug ip udp
UDP packet debugging is on
Router#

00:18:48: UDP: rcvd src=0.0.0.0(68), dst=255.255.255.255(67), length=584 

!--- Router receiving DHCPDISCOVER from DHCP client.

00:18:48: UDP: sent src=192.168.1.1(67), dst=192.168.2.2(67), length=604 

!--- Router forwarding DHCPDISCOVER unicast to DHCP server using DHCP/BootP Relay Agent source IP address.

00:18:48: UDP: rcvd src=192.168.2.2(67), dst=192.168.1.1(67), length=313 

!--- Router receiving DHCPOFFER from DHCP server directed to DHCP/BootP Relay Agent IP address.

00:18:48: UDP: sent src=0.0.0.0(67), dst=255.255.255.255(68), length=333 

!--- Router forwarding DHCPOFFER from DHCP server to DHCP client via DHCP/BootP Relay Agent.

00:18:48: UDP: rcvd src=0.0.0.0(68), dst=255.255.255.255(67), length=584 

!--- Router receiving DHCPREQUEST from DHCP client.

00:18:48: UDP: sent src=192.168.1.1(67), dst=192.168.2.2(67), length=604 

!--- Router forwarding DHCPDISCOVER unicast to DHCP server using DHCP/BootP Relay Agent source IP address.

00:18:48: UDP: rcvd src=192.168.2.2(67), dst=192.168.1.1(67), length=313 

!--- Router receiving DHCPACK (or DHCPNAK) from DHCP directed to   DHCP/BootP Relay Agent IP address.

00:18:48: UDP: sent src=0.0.0.0(67), dst=255.255.255.255(68), length=333 

!--- Router forwarding DHCPACK (or DHCPNAK) to DHCP client via   DHCP/BootP Relay Agent.

00:18:48: UDP: rcvd src=192.168.1.2(520), dst=255.255.255.255(520), length=32 

!--- DHCP client verifying IP address not in use by sending ARP request for its own IP address.

00:18:50: UDP: rcvd src=192.168.1.2(520), dst=255.255.255.255(520), length=32 

!--- DHCP client verifying IP address not in use by sending ARP   request for its own IP address.

debug ip dhcp server packet コマンドを使用して、ルータが DHCP 要求を受信し、転送しているかを確認

ルータの IOS が 12.0.x.T または 12.1 で、IOS の DHCP サーバ機能をサポートしている場合は、debug ip dhcp server packet コマンドを使用して、別のデバッグ方法を実行できます。 このデバッグは、IOS DHCP サーバ機能で使用するためのものでしたが、DHCP/BootP リレー エージェント機能のトラブルシューティングにも使用できます。 上記のデバッグと同様に、このデバッグでも実際のパケットは表示されないため、問題を正確に判断することはできません。 しかし、DHCP 処理について推論することは可能です。

EXEC モードで、次の debug コマンドを入力します。

debug ip dhcp server packet

Router#debug ip dhcp server packet
00:20:54: DHCPD: setting giaddr to 192.168.1.1. 

!--- Router received DHCPDISCOVER/REQUEST/INRORM and setting   Gateway IP address to 192.168.1.1 for forwarding.

00:20:54: DHCPD: BOOTREQUEST from 0063.6973.636f.2d30.3065.302e.3165.6632.2e63..

!--- BOOTREQUEST includes DHCPDISCOVER, DHCPREQUEST, and DHCPINFORM.
 

!--- 0063.6973.636f.2d30.3065.302e.3165.6632.2e63   indicates client identifier.
 
00:20:54: DHCPD: forwarding BOOTREPLY to client 00e0.1ef2.c441. 

!--- BOOTREPLY includes DHCPOFFER and DHCPNAK.
 

!--- Client's MAC address is 00e0.1ef2.c441. 

00:20:54: DHCPD: broadcasting BOOTREPLY to client 00e0.1ef2.c441. 

!--- Router is forwarding DHCPOFFER or DHCPNAK broadcast on local LAN interface.

00:20:54: DHCPD: setting giaddr to 192.168.1.1. 

!--- Router received DHCPDISCOVER/REQUEST/INFORM   and set Gateway IP address to 192.168.1.1 for forwarding.

00:20:54: DHCPD: BOOTREQUEST from 0063.6973.636f.2d30.3065.302e.3165.6632.2e63.. 

!--- BOOTREQUEST includes DHCPDISCOVER, DHCPREQUEST, and DHCPINFORM.


!--- 0063.6973.636f.2d30.3065.302e.3165.6632.2e63 indicates client identifier.

00:20:54: DHCPD: forwarding BOOTREPLY to client 00e0.1ef2.c441. 

!--- BOOTREPLY includes DHCPOFFER and DHCPNAK.


!--- Client's MAC address is 00e0.1ef2.c441.

00:20:54: DHCPD: broadcasting BOOTREPLY to client 00e0.1ef2.c441. 

!--- Router is forwarding DHCPOFFER or DHCPNAK broadcast on local LAN interface.

複数のデバッグの同時実行

複数のデバッグを同時に実行すると、DHCP/BootP リレー エージェントとサーバの動作についてかなりの量の情報を取得できます。 これらの情報を使用すれば、上記のトラブルシューティングの概要に基づいて、DHCP/BootP リレー エージェント機能のどの部分が正常に動作していないかを推論できます。

IP: s=0.0.0.0 (Ethernet0), d=255.255.255.255, len 604, rcvd 2
UDP src=68, dst=67
UDP: rcvd src=0.0.0.0(68), dst=255.255.255.255(67), length=584
DHCPD: setting giaddr to 192.168.1.1.
UDP: sent src=192.168.1.1(67), dst=192.168.2.2(67), length=604
IP: s=192.168.1.1 (local), d=192.168.2.2 (Ethernet1), len 604, sending
UDP src=67, dst=67
DHCPD: BOOTREQUEST from 0063.6973.636f.2d30.3030.302e.3030.3030.2e30.3030.312d.4574.30 forwarded to 192.168.2.2.
IP: s=192.168.2.2 (Ethernet1), d=192.168.1.1, len 328, rcvd 4
UDP src=67, dst=67
UDP: rcvd src=192.168.2.2(67), dst=192.168.1.1(67), length=308
DHCPD: forwarding BOOTREPLY to client 0000.0000.0001.
DHCPD: broadcasting BOOTREPLY to client 0000.0000.0001.
UDP: sent src=0.0.0.0(67), dst=255.255.255.255(68), length=328
IP: s=0.0.0.0 (Ethernet0), d=255.255.255.255, len 604, rcvd 2
UDP src=68, dst=67
UDP: rcvd src=0.0.0.0(68), dst=255.255.255.255(67), length=584
DHCPD: setting giaddr to 192.168.1.1.
UDP: sent src=192.168.1.1(67), dst=192.168.2.2(67), length=604
IP: s=192.168.1.1 (local), d=192.168.2.2 (Ethernet1), len 604, sending
UDP src=67, dst=67
DHCPD: BOOTREQUEST from 0063.6973.636f.2d30.3030.302e.3030.3030.2e30.3030.312d.4574.30 forwarded to 192.168.2.2.
IP: s=192.168.2.2 (Ethernet1), d=192.168.1.1, len 328, rcvd 4
UDP src=67, dst=67
UDP: rcvd src=192.168.2.2(67), dst=192.168.1.1(67), length=308
DHCPD: forwarding BOOTREPLY to client 0000.0000.0001.
DHCPD: broadcasting BOOTREPLY to client 0000.0000.0001.
UDP: sent src=0.0.0.0(67), dst=255.255.255.255(68), length=328. 

スニファ トレースの取得と DHCP 問題の根本原因の特定

ルータ デバッグ手法を使用しても、必ずしも DHCP 問題の根本原因を正確に特定できるとは限りません。 DHCP 問題を解決するための最終的なステップは、スニファ トレースを取得して、プロセスのどの部分が正常に機能していないかを突き止めることです。 DHCP パケットのトレースを解読するには、このドキュメントの「同一の LAN セグメントにある DHCP クライアントとサーバのスニファ トレースの解読」および「DHCP リレー エージェントとして設定されているルータによって分けられた DHCP クライアントとサーバのスニファ トレースの解読」のセクションを参照してください。

Catalyst スイッチで Switched Port Analyzer(SPAN; 交換ポート アナライザ)機能を使用してスニファ トレースを取得する方法については、次の文書を参照してください。

ルータでのデバッグを使用してパケットを解読するその他の方法

Cisco ルータで debug ip packet detail dump <acl> コマンドを使用すれば、システム ログまたは Command Line Interface(CLI; コマンドライン インターフェイス)にパケット全体を 16 進数で表示できます。 上記の「debug コマンドを使用して、ルータが DHCP 要求を受信しているかを確認」および「debug コマンドを使用して、ルータが DHCP 要求を受信し、DHCP サーバに要求を転送しているかを確認」の項の手順で、access-list に dump キーワードを追加すると、同じデバッグ情報を 16 進数のパケット詳細とともに取得できます。 パケットの内容を解読するには、パケットを翻訳する必要があります。 付録 A」に例があります。

ip dhcp poolコマンドのオプション{option_number}の後でASCII入るキーワードは二重引用符にあります

オプション番号が設定されているDHCPオプションのCiscoルータはルータがリロードされた後ip dhcp poolコマンドのオプションのオプション番号ASCIIが二重引用符にあった後ので入るあらゆるキーワードURLを解析することを試みる場合障害に直面できます。 この動作は既知の不具合、CSCsk96976 (登録ユーザのみ)で文書化される、IOS 12.4 (17a)を実行するデバイスで見られます。

この問題はIOSバージョン12.4 (17b)、12.4 (18a)およびそれ以降で、および12.4解決されます(19) T1。

付録 A: IOS DHCP の設定例

DHCP サーバ データベースはツリー構造で編成されています。 ツリーのルートはナチュラル ネットワークのアドレス プール、ブランチはサブネットワークのアドレス プール、リーフはクライアントへの手動バインディングです。 サブネットワークはネットワーク パラメータを継承し、クライアントはサブネットワーク パラメータを継承します。 したがって、共通のパラメータ(ドメイン名など)は、ツリーの最上位(ネットワークまたはサブネットワーク)レベルで設定する必要があります。

DHCP の設定方法と、それに関連するコマンドの詳細については、次のリンクを参照してください。

version 12.1
! 
service timestamps debug uptime
service timestamps log uptime
no service password-encryption
!
hostname Router
!
enable password cisco 
ip subnet-zero 
no ip domain-lookup 
ip dhcp excluded-address 10.10.1.1 10.10.1.199 

!--- Address range excluded from DHCP pools. 

! 
ip dhcp pool test_dhcp 

!--- DHCP pool (scope) name is test_dhcp.
 
network 10.10.1.0 255.255.255.0 

!--- DHCP pool (address will be assigned in this range) for associated Gateway IP address.
 
default-router 10.10.1.1 

!--- DHCP option for default gateway.
 
dns-server 10.30.1.1 

!--- DHCP option for DNS server(s).
 
netbios-name-server 10.40.1.1 

!--- DHCP option for NetBIOS name server(s) (WINS).
  
lease 0 0 1 

!--- Lease time. 
 
! 
interface Ethernet0 
description DHCP Client Network 
ip address 10.10.1.1 255.255.255.0 
no ip directed-broadcast 
! 
interface Ethernet1 
description Server Network 
ip address 10.10.2.1 255.255.255.0 
no ip directed-broadcast 
!   
line con 0 
transport input none 
line aux 0 
transport input all 
line vty 0 4 
login 
! 
end 


関連情報