DHCP設定

DHCPのパケットをキャプチャし、やりとりされるDHCPメッセージを確認します。

検証にはCSR 1000Vの基本設定と相互接続が完了したR1の環境を利用します。
R1をDHCPサーバに、VMware Playerを動作させているPCをDHCPクライアントにします。PCにてWireshark(tshark)を動かしパケットキャプチャします。

R1(R2)を停止した状態から以下の準備を進めます。

VMWareのDHCPサービス停止

Vmware PlayerはデフォルトでDHCPサーバが動作しています。
検証のため、このDHCPサーバサービスを停止します。

以下のようにコマンドプロンプトを管理者権限で起動します。

  1. Windowsキーを押した後、「cmd」と入力。
  2. 検索結果として、コマンドプロンプトが表示された後、ShiftキーとF10キーを同時に押します。これは右クリックと同じですが、PCによってはアプリケーションキーでも問題ありません。
  3. 下矢印キーで「管理者として実行」を選択します。
  4. ユーザアカウント制御が表示された場合は、「はい」を選択し、コマンドプロンプトを起動します。

コマンドプロンプトで、以下を実行し、VMWareのDHCPサービスを停止します。
>sc stop VMnetDHCP「ENTER」

DHCPサービスが停止しているかは、以下のコマンドで確認できます。出力される項目でSTATEの後に、STOPPEDが出力していれば停止しています。
>sc query VMnetDHCP「ENTER」

このままPCを再起動すると、DHCPサービスは自動起動してしまうため、スタートアップの種類を「手動」に変更します。
>sc config VMnetDHCP start= demand 「ENTER」← 次の行は実行結果です。
[SC] ChangeServiceConfig SUCCESS← SUCCESSを確認します。

VMwarePlayerを動作させているPCをOS再起動します。

VMWareのネットワーク設定

Vmware Playerをインストールすると、自動的にVMnet1とVMnet8という仮想インターフェースが追加されます。DHCPの検証では、このVMnet1を利用します。VMwareのホストオンリーというネットワーク接続を設定することで、VMnet1とR1を接続します。

Vmware Playerを起動します。
Vmware Playerの「リスト項目」で下矢印キーを押し、さきほどの「R1」を選択します。
TABキーで移動し、「仮想マシン設定の編集」を選択します。
仮想マシン設定ダイアログが表示されます。

上下キーで移動し、ネットワークアダプタを選択します。ネットワークアダプタは3つありますが、2と3ではなく、最初のネットワークアダプタを選択します。
TABキーで移動し、「ブリッジ:物理ネットワークに直接接続」を確認します。そして、上下キーで「ホストオンリー:プライベートネットワークをホストと共有」を選択します。
TABキーで移動し移動し、「OK」を選択します。

R1のDHCPサーバ設定

R1を起動します。
R1のGigabitEthernet1には192.168.1.101/24が設定されているとします。

R1にDHCPを設定します。今回は検証用ですが、実際にはデフォルトゲートウェイやDNS等の指定が必要です。
R1# conf t 「ENTER」
R1(config)# ip dhcp pool 1 「ENTER」
R1(dhcp-config)# network 192.168.1.0 255.255.255.0「ENTER」← リースするIPの範囲。
R1(dhcp-config)# domain-name testabc.com「ENTER」← DNSサフィックスの指定。
R1(dhcp-config)# end 「ENTER」
R1#wr 「ENTER」← 設定保存。

Wiresharkの準備

PCのコマンドプロンプトでWireshark(tshark)を動作させ、DHCPメッセージを確認する準備をします。Wiresharkについては、こちらでも紹介しています。

> cd “c:\Program Files\Wireshark” 「ENTER」← tshark.exeがあるフォルダへ移動します。パスを通している場合は不要です。

VMnet1のインターフェース番号を以下で確認します。出力の行頭の数字がWiresharkで認識されたインターフェース番号です。
> dumpcap -D | find “VMnet1”「ENTER」← 次の行は出力例です。

3. \Device\NPF_{786ABBC9-D5AC-4CA1-B5E3-AD2CF7360211} (VMware Network Adapter VMnet1)

上の出力例の場合、行頭の3がインターフェース番号です。

コマンドプロンプトで、インターフェース番号を指定してtsharkを実行します。以下の例では、DHCPのメッセージのみを出力するため、bootpプロトコルでフィルタしています。末尾の-t aは時刻表示です。
>tshark.exe -i 3 -Y bootp -t a 「ENTER」次の行のような出力でキャプチャが開始されます。

Capturing on 'VMware Network Adapter VMnet1'

DHCPメッセージの取得

別のコマンドプロンプトを起動し、一旦、IP開放します。すでにIP取得されている場合があるためです。
>ipconfig /release 「ENTER」

実行後、tsharkを起動したコマンドプロンプトでは、すでにIPが取得されていた場合、以下のように「DHCP Release」が出力されます。IPが取得されていなかった場合は何も表示されません。

51 06:10:14.322865  192.168.1.1 → 192.168.1.101 DHCP 342 DHCP Release  - Transaction ID 0x8c0774bf

では、コマンドプロンプトで以下を実行し、IP取得します。
>ipconfig /renew 「ENTER」

実行後、tsharkを起動したコマンドプロンプトでは、以下のような出力を確認できれば、IP取得成功です。

518 06:17:42.536204      0.0.0.0 → 255.255.255.255 DHCP 343 DHCP Discover - Transaction ID 0xa4b9f856
520 06:17:44.545486 192.168.1.101 → 192.168.1.1  DHCP 342 DHCP Offer    - Transaction ID 0xa4b9f856
521 06:17:44.546175      0.0.0.0 → 255.255.255.255 DHCP 369 DHCP Request  - Transaction ID 0xa4b9f856
522 06:17:44.551859 192.168.1.101 → 192.168.1.1  DHCP 342 DHCP ACK      - Transaction ID 0xa4b9f856

DHCPメッセージの確認

上の出力例を元にDHCPメッセージを簡単に説明しておきます。
1行目で、クライアント(PC)からDHCPサーバ(R1)へブロードキャスト(255.255.255.255)でDHCP Discoverを発信しています。
2行目で、DHCPサーバ(R1)からクライアント(PC)へユニキャストでDHCP Offerを発信しています。
3行目で、クライアント(PC)からDHCPサーバ(R1)へブロードキャストでDHCP Requestを発信しています。
4行目で、DHCPサーバ(R1)からクライアント(PC)へユニキャストでDHCP ACKを発信しています。

なお、DHCP OfferとDHCP ACK は、DHCPサーバによってはブロードキャストになります。Ciscoルータの場合は、ユニキャストやブロードキャストになります。
ご参考に、CiscoのDHCP説明を紹介しておきます。

DHCPパケットの取得

上のキャプチャは簡易な出力ですが、一旦キャプチャファイルに出力することで、詳細な内容も確認できます。以下はCドライブの下のlogsフォルダにキャプチャファイルを出力しています。保存するファルダが存在しない場合は事前に作成しておきます。
コマンドプロンプトで以下を実行します。
>tshark -i 3 -w C:\logs\DHCP.pcap 「ENTER」← キャプチャ取得が開始されます。

別のコマンドプロンプトで、「ipconfig /release」や「ipconfig /renew」を実行します。
tsharkを実行しているコマンドプロンプトで、Ctrl+Cを押し、キャプチャ取得を停止します。

取得したDHCP.pcapを読み込んで確認していきます。
一旦対象となるパケットを確認します。
>tshark -r C:\logs\DHCP.pcap -Y bootp 「ENTER」← 次の5行は出力例です。

1   0.000000  192.168.1.1 → 192.168.1.101 DHCP 342 DHCP Release  - Transaction ID 0xdef7b2f5
28   4.190972      0.0.0.0 → 255.255.255.255 DHCP 343 DHCP Discover - Transaction ID 0xce7f76e6
35   6.201184 192.168.1.101 → 192.168.1.1  DHCP 342 DHCP Offer    - Transaction ID 0xce7f76e6
36   6.202282      0.0.0.0 → 255.255.255.255 DHCP 369 DHCP Request  - Transaction ID 0xce7f76e6
37   6.211489 192.168.1.101 → 192.168.1.1  DHCP 342 DHCP ACK      - Transaction ID 0xce7f76e6

例えば、DHCP Offerパケットの詳細を確認したい場合は、行頭のフレーム番号を以下のように指定します。以下の例ではテキストファイルに出力しています。

>tshark -r C:\logs\DHCP.pcap -Y frame.number==35 -V > C:\logs\DHCPoffer.txt 「ENTER」

DHCPoffer.txtを確認することで、MACアドレスやDHCP Offerの内容も確認できます。

設定を元に戻す

他の検証で混乱する場合があるため、設定を検証前に戻しておきます。

以下はDHCP設定を消すコマンドです。
R1(config)#no ip dhcp pool 1「ENTER」

R1のVMwareのネットワークも「ホストオンリー」から「ブリッジ:物理ネットワークに直接接続」に戻しておきます。(R2と同じVmwareのネットワークならば、どれでも構いません)

必要に応じて、VmwareのDHCPサービスも戻しておきます。
管理者権限のコマンドプロンプトにて以下を実行し、サービスを「自動」に戻します。PCをOS再起動されば、サービスも自動起動します。
sc config VMnetDHCP start= auto 「ENTER」← 次の行は実行結果です。

(ここがページの最後です。更新日:2018年10月8日)