DHCP設定
DHCPのパケットをキャプチャし、やりとりされるDHCPメッセージを確認します。
検証にはCSR 1000Vの基本設定と相互接続が完了したR1の環境を利用します。
R1をDHCPサーバに、VMware Playerを動作させているPCをDHCPクライアントにします。PCにてWireshark(tshark)を動かしパケットキャプチャします。
R1(R2)を停止した状態から以下の準備を進めます。
VMWareのDHCPサービス停止
Vmware PlayerはデフォルトでDHCPサーバが動作しています。
検証のため、このDHCPサーバサービスを停止します。
以下のようにコマンドプロンプトを管理者権限で起動します。
- Windowsキーを押した後、「cmd」と入力。
- 検索結果として、コマンドプロンプトが表示された後、ShiftキーとF10キーを同時に押します。これは右クリックと同じですが、PCによってはアプリケーションキーでも問題ありません。
- 下矢印キーで「管理者として実行」を選択します。
- ユーザアカウント制御が表示された場合は、「はい」を選択し、コマンドプロンプトを起動します。
コマンドプロンプトで、以下を実行し、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」← 次の行は実行結果です。