DHCPUtil の使用

 

トピックの最終更新日: 2012-10-17

ここでは、DHCPUtil の使用法について説明します。

DHCPConfigScript.bat

DHCPUtil は、それ自体で DHCP サーバーを構成するユーティリティではありません。 DHCPUtil は、ユーザーが組織のニーズに合わせて変更できるスクリプトに、DHCP サーバーの構成を任せます。 つまり、DHCPUtil は、各オプションの値を計算した後、それらの値をスクリプトに渡します。値を渡されたスクリプトは、その値に基づく処理を実行できます。

DHCPConfigScript.bat は、そのようなスクリプトの 1 つで、DHCPUtil に付属しています (DHCPUtil と同じ位置に配置されています)。このスクリプトは、netsh dhcp server コマンドを使用します。これらのコマンドが、Lync Server の展開に必要なオプションを使用して DHCP サーバーを構成します。

note注:
DHCPConfigScript.bat を、Windows Server オペレーティング システムに付属の DHCP サーバー機能以外の DHCP サーバーに対して使用することはできません。ただし、ファイルに修正を加えている場合は別です。

次に、スクリプトの内容を示します。

netsh dhcp server delete optionvalue 120 
netsh dhcp server delete optiondef 120 
netsh dhcp server delete class MSUCClient 
if /i %1 EQU Cleanup goto :EOF 
netsh dhcp server add optiondef 120 UCSipServer Binary 0 comment="Sip Server Fqdn" 
netsh dhcp server set optionvalue 120 Binary %3 
netsh dhcp server add class MSUCClient "UC Vendor Class Id" "%2" 1 
netsh dhcp server add optiondef 1 UCIdentifier Binary 0 Vendor=MSUCClient comment="UC Identifier 
"netsh dhcp server set optionvalue 1 Binary vendor=MSUCClient %4 
netsh dhcp server add optiondef 2 URLScheme Binary 0 Vendor=MSUCClient comment="URL Scheme" 
netsh dhcp server set optionvalue 2 Binary vendor=MSUCClient %5 
netsh dhcp server add optiondef 3 WebServerFqdn Binary 0 Vendor=MSUCClient comment="Web Server Fqdn" 
netsh dhcp server set optionvalue 3 Binary vendor=MSUCClient %6 
if nt %7 == NULL (netsh dhcp server add optiondef 4 WebServerPort Binary 0 Vendor=MSUCClient comment="Web Server Port") 
if not %7 == NULL (netsh dhcp server set optionvalue 4 Binary vendor=MSUCClient %7) 
netsh dhcp server add optiondef 5 CertProvRelPath Binary 0 Vendor=MSUCClient comment="Cert Prov Relative Path" 
netsh dhcp server set optionvalue 5 Binary vendor=MSUCClient %8 

最初の 3 つのコマンドは DHCP サーバーをクリーンアップします。この作業により、各種オプションの値を正しく設定できるようになります。スクリプトがクリーンアップ モードで実行される場合、クリーンアップ以外の処理は行われません。そうでない場合は、オプション 120 の定義が作成され、指定された値に設定されます。

次に、ベンダー クラス識別子 MS-UC-Client (%2 は常にこの値を持つことになります) を持つベンダーが作成されます。その後、スクリプトは、オプション 43 のサブオプションを 1 つずつ設定します。ベンダー クラスに対して、次のサブオプションが作成されることがわかります。

netsh dhcp server add optiondef 3 WebServerFqdn Binary 0 Vendor=MSUCClient comment="Web Server Fqdn"

netsh dhcp の詳細については、「Lync Phone Edition の展開」、「IP 電話へのサインインを有効にするための DHCP オプションの構成」、および MSDN ライブラリ (https://go.microsoft.com/fwlink/?linkid=205011&clcid=0x411) を参照してください。

DHCPUtil を使用した DHCP サーバーの構成

コマンド プロンプトで、次のコマンドを実行します。

DHCPUtil -SipServer <FQDN of the Sip Server> [-WebServer <FQDN of the web server> | 
-CertProvUrl <Url of the Certificate Provisioning Service>] [-RunConfigScript [<Path of the script>]]

最後のパラメーターに当たる RunConfigScript だけは、DHCPConfigScript.bat に含まれません。このパラメーターを指定すると、DHCPUtil はオプション 120 および 43 の値を生成して構成スクリプトに渡します。 RunConfigScript をパスを省略して指定すると、DHCPConfigScript.bat が実行されます。 有効なファイル パスを指定すると、そのファイルが実行されます。 このファイルは、スクリプトの場合も実行可能ファイルの場合もあります。

次の各パラメーターが、以下で指定する順序で、スクリプトに渡されます。

  • Mode: 指定できる値は、Cleanup および Configure です。

  • ベンダー クラス識別子の値

  • オプション 120 の値

  • オプション 43 のサブオプション 1 の値

  • オプション 43 のサブオプション 2 の値

  • オプション 43 のサブオプション 3 の値

  • オプション 43 のサブオプション 4 の値

  • オプション 43 のサブオプション 5 の値

管理者は、このトピックの内容を参照して、カスタム スクリプトを作成できます。 たとえば、DHCP サーバーを構成するには、DHCP サーバー上で次のコマンドを実行する必要があります。

DHCPUtil.exe -SipServer sip.contoso.com -WebServer web.contoso.com -RunConfigScript

このコマンドは、該当するパラメーターを指定して DHCPConfigScript.bat を起動します。DHCPConfigScript.bat は、各種 netsh dhcp server コマンドを起動します。

DHCPConfigScript.bat を編集するかまたは別のファイルを作成して、netsh コマンドをリモートの DHCP サーバーに対して実行することもできます。そうすると、DHCP サーバー自体で DHCPUtil を実行する必要がなくなります。

DHCP サーバー構成のテスト

DHCPUtil を使用して、DHCP サーバー上の構成をテストすることもできます。 テストでは、DHCPUtil は、Lync Server クライアントがするのと同じように DHCP パケットを送信し、その後、受信したパケットを解析します。 応答が適切な場合、取得される値は次のようになります。

DHCPUtil -EmulateClient

このテストには、ファイアウォールで適切な例外が必要な場合があるので注意してください。一般には、この機能は DHCP サーバー上で実行しても機能しません。この機能は、その構成がテスト対象になっている DHCP サーバーがサービスを提供するコンピューター上で実行してください。

例外を有効にするには、管理者のコマンド プロンプトで次のコマンドを実行します。

netsh advfirewall firewall add rule name="DHCPClientIn"  dir=in action=allow localport=68 protocol=udp
netsh advfirewall firewall add rule name="DHCPClientOut"  dir=out action=allow localport=68 protocol=udp

コマンドを実行したら、管理者特権でのコマンド プロンプトから、次のコマンドを実行して例外を削除します。

netsh advfirewall firewall delete rule name="DHCPClientIn"
netsh advfirewall firewall delete rule name="DHCPClientOut"

Output: Starting Discovery
Sending Packet (Size: 280, Network Adapter: 192.168.0.244, Attempt Type: Broadcast only)
--Begin Packet--
DHCP: INFORM (xid=D2FFB17A)
DHCP: Op Code (op) = 1
DHCP: Hardware Type (htype) = 6
DHCP: Hops (hops) = 0
DHCP: Transaction ID (xid) = 3539972474
DHCP: Seconds (secs) = 0
DHCP: Flags (flags) = 0000
DHCP: Client IP Address (ciaddr) = 192.168.0.244
DHCP: Your IP Address (yiaddr) = 0.0.0.0
DHCP: Server IP Address (siaddr) = 0.0.0.0
DHCP: Relay IP Address (giaddr) = 0.0.0.0
DHCP: Client HW Address (chaddr) = 122222222222
DHCP: Server Host Name (sname) = 
DHCP: Boot File Name (file) = 
DHCP: Magic Cookie = 99.130.83.99
DHCP: Option Field
DHCP: DHCP MESSAGE TYPE( 53) = (Length: 1) DHCP INFORM
DHCP: Server Identifier( 54) = (Length: 0) 0.0.0.0
DHCP: Client Identifier( 61) = (Length: 7) """"" (01122222222222)
DHCP: SIP Server( 120) = (Length: 0) enc:0 ()
DHCP: Host Name( 12) = (Length: 6) Client
DHCP: Vendor Identifier( 60) = (Length: 12) MS-UC-Client
DHCP: Param Req List( 55) = (Length: 2) 120 43
DHCP: Vendor Info( 43) = (Length: 0) ()
DHCP: End of this option field
--End Packet--
Received Packet
Sender:192.168.0.238:67, Size:365
--Begin Packet--
DHCP: ACK (xid=D2FFB17A)
DHCP: Op Code (op) = 1
DHCP: Hardware Type (htype) = 6
DHCP: Hops (hops) = 0
DHCP: Transaction ID (xid) = 3539972474
DHCP: Seconds (secs) = 0
DHCP: Flags (flags) = 0000
DHCP: Client IP Address (ciaddr) = 192.168.0.244
DHCP: Your IP Address (yiaddr) = 0.0.0.0
DHCP: Server IP Address (siaddr) = 0.0.0.0
DHCP: Relay IP Address (giaddr) = 0.0.0.0
DHCP: Client HW Address (chaddr) = 122222222222
DHCP: Server Host Name (sname) = 
DHCP: Boot File Name (file) = 
DHCP: Magic Cookie = 99.130.83.99
DHCP: Option Field
DHCP: DHCP MESSAGE TYPE( 53) = (Length: 1) DHCP ACK
DHCP: Server Identifier( 54) = (Length: 4) 192.168.0.238
DHCP: Client Identifier( 61) = (Length: 0) ()
DHCP: SIP Server( 120) = (Length: 18) enc:0 sip.contoso.com 
(0003736970076578616D706C6503636F6D00)
DHCP: Host Name( 12) = (Length: 0) 
DHCP: Vendor Identifier( 60) = (Length: 0) 
DHCP: Param Req List( 55) = (Length: 0) 0 0
DHCP: Vendor Info( 43) = (Length: 87) MS-UC-
Clienthttps web.contoso.com
443/CertProv/CertProvisioningService.svcÜ NAP 
(010C4D532D55432D436C69656E7402056874747073030F7765622E6578616D706C652E636F6D040334343305252F4365727450726F762F4365727450726F766973696F6E696E67536572766963652E737663DC034E4150)
DHCP: End of this option field
--End Packet--
Result: Success
DHCP Server : 192.168.0.238
Sip Server : sip.contoso.com
CertProv Url : https://web.contoso.com:443/CertProv/CertProvisioningService.svc

コマンドが成功すると、応答した DHCP サーバー、SIP サーバーの値、およびサービス URL をプロビジョニングする証明書が出力に表示されます。

DHCP サーバーの手動構成

DHCPUtil を使用して生成したさまざまなオプションの値が用意できたら、netsh dhcp server コマンドを使用してスクリプトが実行するのと同じタスクを手動で実行する必要があります。

オプション 120 の定義を作成するには

  1. DHCP の管理コンソールを開きます。

  2. 該当するドメインに移動します。

  3. [IPv4] を右クリックします。

  4. [既定のオプションの設定] をクリックして、[既定のオプションと値] ダイアログ ボックスを開きます。

  5. [追加] をクリックして [オプションの種類] ダイアログ ボックスを開きます。

  6. 次の手順を実行してください。

    • [名前] で、SIP サーバーの名前を入力します。

    • [データ型] で、[Binary] をクリックします。

    • [コード] に、「120」 と入力します。

    • [説明] に、「SIP Server List」 と入力します。

  7. [OK] をクリックして設定を受け入れ、ダイアログ ボックスを閉じます。

既定の標準オプション

オプション 120 の値を設定するには

  1. ナビゲーション ツリーの [IPv4][サーバー オプション] をクリックします。

  2. [サーバー オプション] を右クリックし、[オプションの構成] をクリックして [サーバー オプション] ダイアログ ボックスを開きます。

  3. [120 SIP サーバー] チェック ボックスをオンにします。これで、[データ入力] ボックスの値を編集できるようになります。

  4. DHCPUtil で生成された値を注意して入力します。

  5. [OK] をクリックして設定を受け入れ、ダイアログ ボックスを閉じます。

サーバー オプション

値 MS-UC-Client を使用して、新しいベンダー クラスを作成するには

  1. [IPv4] をもう一度右クリックし、[ベンダー クラスの定義…] をクリックして [DHCP ベンダー クラス] ダイアログ ボックスを開きます。

  2. [追加] をクリックして [新しいクラス] ダイアログ ボックスを開きます。

  3. 次の手順を実行してください。

    • [表示名] に、「MSUCClient」 と入力します。

    • [説明] に、「UC Vendor Class Id」 と入力します。

    • [ASCII] の下の [MS-UC-Client] をクリックします。

  4. [OK] をクリックして設定を受け入れ、ダイアログ ボックスを閉じます。

新しいクラス

前の手順で作成したベンダー クラスに対して、オプション 43 の各サブオプションの定義を作成するには

  1. [IPv4] を右クリックして、[既定のオプションの設定] をクリックし [既定のオプションと値] ダイアログ ボックスを開きます。

  2. [オプション クラス][MSUCClient] をクリックします。

  3. [追加] をクリックして [オプションの種類] ダイアログ ボックスを開きます。

  4. 次の手順を実行してください。(次の例は、サブオプション 1 だけを対象にしています)

    • [名前] に、「UCIdentifier」 と入力します。

    • [データ型] で、[Binary] をクリックします。 (これは、5 つあるすべてのサブオプションに該当します)。

    • [コード] で、[1] をクリックします (他のサブオプションには、2、3、4、5 など、それぞれ対応するコードがあります)。

    • [説明] に、「UC Identifier」 と入力します。

  5. [OK] をクリックして設定を受け入れ、ダイアログ ボックスを閉じます。

  6. 5 つあるすべてのサブオプションでこのプロセスを繰り返します。

オプションの種類

各サブオプションの値を設定するには

  1. [IPv4][サーバー オプション] をクリックします。

  2. [サーバー オプション] を右クリックして、[オプションの構成] をクリックし [サーバー オプション] ダイアログ ボックスを開きます。

  3. [詳細設定] タブをクリックします。

  4. [ベンダー クラス] ボックスで [MSUCClient] をクリックします。

  5. 各サブオプションをチェックして、適切な値を入力します。

  6. [OK] をクリックして値を受け入れ、ダイアログ ボックスを閉じます。

サーバー オプション

以上で、DHCP サーバーの手動構成が完了しました。 DHCPUtil –EmulateClient を使用して構成をテストできます。

DHCP サーバーからの Lync Server 関連構成の消去

DCPUtil コマンドの DHCPUtil –CleanDHCPConfig を使用して、DHCP サーバーから Lync Server の構成情報を消去します。

このコマンドは、DHCP サーバー上で実行する必要があります。また、このコマンドを実行するには、DHCPConfigScript.bat が DHCPUtil と同じディレクトリに配置されている必要があります。 RunConfigScript の場合と同じように、管理者は、DHCPConfigScript.bat を編集して、netsh コマンドをリモートの DHCP サーバーに対して発行することができます。 これにより、DHCPUtil を DHCP サーバー自体で実行する必要がなくなります。

構成の手動での消去には、DHCP サーバーの管理コンソールを使用できます。構成の消去には、オプション 120 と新しいベンダー クラス、および (ベンダー MS-UC-Client に対応する) オプション 43 の各種サブオプションの値が必要です。

Lync Server DHCP サーバーの有効化

Lync Server、DHCP サーバーを使用して、ブートストラップ中の電話に DHCP オプション 43 および 120 を供給できます。これは、たとえばローカルの DHCP サーバーがこれらのオプションを提供できない可能性のあるブランチ オフィスなどで有効です。データ センターに Lync Server、DHCP サーバーを使用することは推奨されません。これは手動で構成する必要があります。

Lync Server、DHCP サーバーは、IP 取得プロセスには加わりません。また、組織の他の DHCP サーバーと一緒に使用できます。

単一のレジストラーで Lync Server、DHCP サーバーを有効にするには、次のコマンドを実行します。

note注:
Lync Phone Edition を実行しているデバイスとは別のサブネットにある Lync Server の DHCP サーバーを有効にする場合、DHCP パケットを Lync Server、DHCP サーバーに転送するための適切な BOOTP リレー エージェントを構成する必要が生じることがあります。詳細な手順については、次のセクションを参照してください。
Set-CSRegistrarConfiguration -Identity <Service Identity of the Registrar> -EnableDHCPServer $true

このレジストラーのサービスレベルのレジストラー構成が存在しない場合は、次のコマンドレットも実行します。

New-CSRegistrarConfiguration -Identity <Service Identity of the Registrar> -EnableDHCPServer $true
note注:
DHCP サーバーを無効にするには、もう一度 Set-CsRegistrarConfigurationcmdlet を使用して EnableDHCPServer の値を $false に設定します。

Microsoft BOOT リレー エージェントの構成

詳細については、「DHCP リレー エージェントを構成する」(https://go.microsoft.com/fwlink/?linkid=205013&clcid=0x411) を参照してください。

TechNet ライブラリの次の 2 つのページが特に役立ちます。

Boot のしきい値と Hop Count のしきい値が正しく構成されていることを確認してください。そうでないと、リレー エージェントがパケットを削除します。

Lync Server クライアントが送信するパケットでは、secs パラメーター (クライアントによる検出プロセス開始時点からの経過秒数、詳細については、RFC 2131 を参照) が 0 に設定されるため、DHCP リレー エージェントの Boot のしきい値を 0 に設定する必要があります。