Solaris DHCP の管理

DHCP サーバーとの通信に関連する問題

この節では、ネットワークに DHCP クライアントを追加する際に発生する可能性がある問題について説明します。

クライアントソフトウェアを使用可能にし、システムを再起動すると、クライアントはそのネットワーク構成を DHCP サーバーから取得しようとします。クライアントがサーバーと通信できない場合は、次のようなメッセージが表示されます。


DHCP or BOOTP server not responding 

問題を特定するには、クライアントとサーバーの両方から診断情報を収集して、その結果を分析する必要があります。情報を収集するために、次のことができます。

  1. クライアントをデバッグモードで実行する

  2. サーバーをデバッグモードで実行する

  3. snoop を起動してネットワークのトラフィックを監視する

これらの方法を個別に、または同時に実行できます。

収集した情報は、問題の原因がクライアントにあるのか、サーバーにあるのか、リレーエージェントにあるのかを特定して解決策を見つける上で役立ちます。

DHCP クライアントをデバッグモードで実行する方法

Solaris DHCP クライアント以外のクライアントをデバッグモードで実行する方法については、それぞれのマニュアルを参照してください。

Solaris DHCP クライアントをデバッグモードで実行するには、次のようにします。

  1. クライアントシステムでスーパーユーザーになります。

  2. 次のコマンドで DHCP クライアントデーモンをいったん停止してからデバッグモードで起動します。


    # pkill -x dhcpagent
    # /sbin/dhcpagent -d1 -f &
    # ifconfig interface dhcp start
    

    デバッグモードで実行すると、クライアントデーモンは画面に DHCP の要求を実行中であるというメッセージを表示します。クライアントデバッグ出力については、DHCP クライアントのデバッグ出力を参照してください。

DHCP サーバーをデバッグモードで実行する方法
  1. サーバーシステム上でスーパーユーザーになります。

  2. 次のコマンドで DHCP デーモンをいったん停止してからデバッグモードで起動します。


    # pkill -x in.dhcpd
    # /usr/lib/inet/in.dhcpd -d -v 
    

    さらに、デーモンの実行で一般に使用する in.dhcpd のコマンド行オプションを指定します。たとえば、デーモンを BOOTP リレーエージェントとして実行する場合は、in.dhcpd -d -v コマンドに -r オプションを付けます。

    デバッグモードで実行すると、デーモンによって画面に DHCP や BOOTP の要求を処理しているというメッセージが表示されます。サーバーデバッグ出力については、DHCP サーバーのデバッグ出力を参照してください。

snoop を使用して DHCP ネットワークトラフィックを監視する方法
  1. DHCP サーバーシステムでスーパーユーザーになります。

  2. snoop を起動して、サーバーのネットワークインタフェース間のネットワークトラフィックの追跡を開始します。


    # /usr/sbin/snoop -d interface -o snoop-output-filename udp port 67 or udp port 68
    

    たとえば、次のようにします。

    # /usr/sbin/snoop -d le0 -o /tmp/snoop.output udp port 67 or udp port 68
    

    必要な情報を入手した後 Control-C を押してsnoop を明示的に停止するまで、snoop はインタフェースを監視し続けることに注意してください。

  3. クライアントシステムを起動するか、クライアントシステムで dhcpagent を再起動します。

    dhcpagent の再起動については、DHCP クライアントをデバッグモードで実行する方法 を参照してください。

  4. サーバーシステムで snoop を使用して、ネットワークパケットの内容を含む出力ファイルを表示させます。


    # /usr/sbin/snoop -i snoop-output-filename -x0 -v
    

    たとえば、次のようにします。

    # /usr/sbin/snoop -i /tmp/snoop.output -x0 -v
    

dhcpagent コマンドの -d スイッチは、クライアントを冗長性 1 のデバッグモードにします。-f スイッチは、出力を syslog ではなくコンソールに送信します。ifconfig コマンド行の interface は、le0 など、 クライアントのネットワークインタフェースの名前で置き換えてください。

出力の解釈については、DHCP snoop 出力を参照してください。

DHCP クライアントのデバッグ出力

例 5–1 では、DHCP クライアントが DHCP 要求を送信し、DHCP サーバーから構成情報を受信した場合の通常のデバッグ出力を示しています。


例 5–1 DHCP クライアントの通常のデバッグ出力例


/sbin/dhcpagent: debug: set_packet_filter: set filter 0x27fc8 (DHCP filter) 
/sbin/dhcpagent: debug: init_ifs: initted interface le0 
/sbin/dhcpagent: debug: insert_ifs: le0: sdumax 1500, optmax 1260, hwtype 1, hwlen 6 
/sbin/dhcpagent: debug: insert_ifs: inserted interface le0 
/sbin/dhcpagent: debug: register_acknak: registered acknak id 5 
/sbin/dhcpagent: debug: unregister_acknak: unregistered acknak id 5 
/sbin/dhcpagent: debug: set_packet_filter: set filter 0x26018 (ARP reply filter)
/sbin/dhcpagent: info: setting IP netmask on le0 to 255.255.192.0 
/sbin/dhcpagent: info: setting IP address on le0 to 102.23.3.233 
/sbin/dhcpagent: info: setting broadcast address on le0 to 102.23.63.255 
/sbin/dhcpagent: info: added default router 102.23.0.1 on le0 
/sbin/dhcpagent: debug: set_packet_filter: set filter 0x28054 (blackhole filter) 
/sbin/dhcpagent: debug: configure_if: bound ifsp->if_sock_ip_fd 
/sbin/dhcpagent: info: le0 acquired lease, expires Tue Aug 10 16:18:33 1999 
/sbin/dhcpagent: info: le0 begins renewal at Tue Aug 10 15:49:44 1999 
/sbin/dhcpagent: info: le0 begins rebinding at Tue Aug 10 16:11:03 1999

クライアントが DHCP サーバーと通信できない場合は、例 5–2 のようなデバッグ出力が表示されます。


例 5–2 DHCP クライアントのデバッグ出力例


/sbin/dhcpagent: debug: set_packet_filter: set filter 0x27fc8 (DHCP filter)
/sbin/dhcpagent: debug: init_ifs: initted interface le0 
/sbin/dhcpagent: debug: select_best: no valid OFFER/BOOTP reply
/sbin/dhcpagent: debug: select_best: no valid OFFER/BOOTP reply
/sbin/dhcpagent: debug: select_best: no valid OFFER/BOOTP reply

このメッセージは、要求がサーバーに届いていないか、サーバーが回答をクライアントに送信できないことを意味します。snoop を使用して DHCP ネットワークトラフィックを監視する方法 の説明に従って snoop コマンドをサーバーで実行し、クライアントのパケットがサーバーに届いているかどうかを確認します。

DHCP サーバーのデバッグ出力

通常のサーバーデバッグ出力は、デーモンが起動したときに、サーバーの構成情報とそれに続く、各ネットワークインタフェースの情報を表示します。デーモンが起動されると、デバッグ出力には、デーモンが処理している要求の情報が表示されます。例 5–3 は、DHCP サーバーのデバッグ出力例です。この DHCP サーバーは、起動された後にクライアントのリースを延長しています。ただし、このクライアントは、応答していない別の DHCP サーバーが所有しているアドレスを使用しています。


例 5–3 DHCP サーバーのデバッグ出力例


Daemon Version: 3.1  
Maximum relay hops: 4  
Transaction logging to console enabled.  
Run mode is: DHCP Server Mode.  
Datastore: nisplus  
Path: org_dir.dhcp.test..:dhcp.test..:$ 
DHCP offer TTL: 10  
Ethers compatibility enabled.  
BOOTP compatibility enabled.  
ICMP validation timeout: 1000 milliseconds, Attempts: 2.  
Monitor (0005/hme0) started...  
Thread Id: 0005 - Monitoring Interface: hme0 *****  
MTU: 1500      Type: DLPI  
Broadcast: 102.21.255.255 
Netmask: 255.255.0.0  
Address: 102.21.0.2  
Monitor (0006/nf0) started...  
Thread Id: 0006 - Monitoring Interface: nf0 *****  
MTU: 4352      Type: DLPI  
Broadcast: 102.22.255.255  
Netmask: 255.255.0.0  
Address: 102.22.0.1  
Monitor (0007/qe0) started...  
Thread Id: 0007 - Monitoring Interface: qe0 *****  
MTU: 1500      Type: DLPI   
Broadcast: 102.23.63.255  
Netmask: 255.255.192.0  
Address: 102.23.0.1  
Read 33 entries from DHCP macro database on Tue Aug 10 15:10:27 1999 
Datagram received on network device: qe0  
Client: 0800201DBA3A is requesting verification of address owned by 102.21.0.4 
Datagram received on network device: qe0  
Client: 0800201DBA3A is requesting verification of address owned by 102.21.0.4  
Datagram received on network device: qe0  
Client: 0800201DBA3A is requesting verification of address owned by 102.21.0.4  
Datagram received on network device: qe0  
Client: 0800201DBA3A maps to IP: 102.23.3.233  
Unicasting datagram to 102.23.3.233 address.  
Adding ARP entry: 102.23.3.233 == 0800201DBA3A  
DHCP EXTEND 0934312543 0934316143 102.23.3.233 102.21.0.2 
          0800201DBA3A SUNW.SPARCstation-10 0800201DBA3A

例 5–4 は DHCP デーモンのデバッグ出力です。この DHCP デーモンは、BOOTP リレーエージェントとして起動された後、クライアントの要求を DHCP サーバーに、サーバーの応答をクライアントにそれぞれ伝達しています。


例 5–4 BOOTP リレーに関するデバッグ出力の例


Relay destination: 102.21.0.4 (blue-servr2)     network: 102.21.0.0  
Daemon Version: 3.1  
Maximum relay hops: 4  
Transaction logging to console enabled.  
Run mode is: Relay Agent Mode.  
Monitor (0005/hme0) started...  
Thread Id: 0005 - Monitoring Interface: hme0 *****  
MTU: 1500      Type: DLPI  
Broadcast: 102.21.255.255  
Netmask: 255.255.0.0  
Address: 102.21.0.2  
Monitor (0006/nf0) started...  
Thread Id: 0006 - Monitoring Interface: nf0 *****  
MTU: 4352      Type: DLPI  
Broadcast: 102.22.255.255  
Netmask: 255.255.0.0  
Address: 102.22.0.1  
Monitor (0007/qe0) started...  
Thread Id: 0007 - Monitoring Interface: qe0 *****  
MTU: 1500      Type: DLPI  
Broadcast: 102.23.63.255  
Netmask: 255.255.192.0  
Address: 102.23.0.1  
Relaying request 0800201DBA3A to 102.21.0.4, server port.  
BOOTP RELAY-SRVR 0934297685 0000000000 0.0.0.0 102.21.0.4 0800201DBA3A 
N/A 0800201DBA3A  
Packet received from relay agent: 102.23.0.1  
Relaying reply to client 0800201DBA3A  
Unicasting datagram to 102.23.3.233 address.  
Adding ARP entry: 102.23.3.233 == 0800201DBA3A  
BOOTP RELAY-CLNT 0934297688 0000000000 102.23.0.1 102.23.3.233 0800201DBA3A 
N/A 0800201DBA3A  
Relaying request 0800201DBA3A to 102.21.0.4, server port.  
BOOTP RELAY-SRVR 0934297689 0000000000 0.0.0.0 102.21.0.4 0800201DBA3A 
N/A 0800201DBA3A  
Packet received from relay agent: 102.23.0.1  
Relaying reply to client 0800201DBA3A  
Unicasting datagram to 102.23.3.233 address.  
Adding ARP entry: 102.23.3.233 == 0800201DBA3A

問題がある場合は、このデバッグ出力が警告またはエラーメッセージを表示します。表 5–4 からエラーメッセージと解決策を見つけてください。

表 5–4 DHCP サーバーのエラーメッセージ

メッセージ 

説明 

解決法 

ICMP ECHO reply to OFFER candidate: ip_address disabling

DHCP サーバーは、IP アドレスをクライアントに提供する前に、ping コマンドを実行してそのアドレスが使用されていない確認する。クライアントが回答する場合、そのアドレスは使用されている 

構成するアドレスが使用されていないことを確認する 

No more IP addresses on network_address network.

クライアントのネットワークに対応する DHCP ネットワークテーブル中に、使用可能な IP アドレスがない 

DHCP マネージャまたは pntadm を使って IP アドレスを追加する。DHCP デーモンが複数のサブネットを監視している場合は、必ずそのクライアントが属するサブネットに IP アドレスを追加する

No more IP addresses for network_address network BOOTP 互換モードで DHCP デーモンを実行時 (-b オプション)

BOOTP はリース期間を使用しないので、DHCP サーバーは、BOOTP クライアントに割り当てるために設定された BOOTP フラグを持つ空きアドレスを検索する 

DHCP マネージャを使用して、BOOTP アドレスを割り当てる 

Request to access nonexistent per network database:database_name in datastore: datastore.

DHCP サーバーの構成の際に、サブネットの DHCP ネットワークテーブルが作成されていない 

DHCP マネージャまたは pntadm を使用して、DHCP ネットワークテーブルと新しい IP アドレスを作成する

There is no table_name dhcp-network table for DHCP client's network.

DHCP サーバーの構成の際にサブネットの DHCP ネットワークテーブルが作成されていない 

DHCP マネージャまたは pntadm を使用して、DHCP ネットワークテーブルと新しい IP アドレスを作成する

Client using non_RFC1048 BOOTP cookie.

ネットワーク上のデバイスが、BOOTP のサポートされていない実装にアクセスしようとした 

このデバイスを構成する必要がない場合は、このメッセージを無視する 

DHCP snoop 出力

下記の snoop 出力を見ると、DHCP クライアントシステムと DHCP サーバーシステムの間でパケットが交換されていることがわかります。個々のパケットには、各システムの IP アドレス と、リレーエージェントやルーターが中間にある場合はそれらが示されます。システムの間でパケットが交換されていない場合は、クライアントシステムからサーバーシステムにアクセスできないのかもしれません。その場合、問題はより下位レベルにあります。

snoop の出力を評価するためには、要求が BOOTP リレーエージェントを介して行われるべきであるかどうかなど、本来の動作がどのようなものであるかを知っている必要があります。さらに、関係するシステムの (および、複数のネットワークインタフェースがある場合は、それらの) MAC アドレスや IP アドレスを知っていないと、それらの値が正しいかどうかを判断できません。次の例は、DHCP 肯定応答メッセージの通常の snoop 出力を示しています。このメッセージは、blue-servr2 上の DHCP サーバーから MAC アドレスが 8:0:20:8e:f3:7e のクライアントに送信されたものです。このメッセージを見ると、サーバーがクライアントに IP アドレスとして 172.168.252.6 を、ホスト名として white-6 を割り当てていることがわかります。さらに、このメッセージには、クライアントに対するいくつもの標準的なネットワークオプションといくつかのベンダー固有のオプションが含まれています。


例 5–5 1 つのパケットに関する snoop 出力の例


ETHER:  ----- Ether Header ----- 
ETHER:
ETHER:  Packet 26 arrived at 14:43:19.14 
ETHER:  Packet size = 540 bytes 
ETHER:  Destination = 8:0:20:8e:f3:7e, Sun 
ETHER:  Source      = 8:0:20:1e:31:c1, Sun 
ETHER:  Ethertype = 0800 (IP) 
ETHER:
IP:   ----- IP Header ----- 
IP:
IP:   Version = 4 
IP:   Header length = 20 bytes 
IP:   Type of service = 0x00 
IP:         xxx. .... = 0 (precedence) 
IP:         ...0 .... = normal delay 
IP:         .... 0... = normal throughput 
IP:         .... .0.. = normal reliability 
IP:   Total length = 526 bytes 
IP:   Identification = 64667 
IP:   Flags = 0x4 IP:         .1.. .... = do not fragment 
IP:         ..0. .... = last fragment 
IP:   Fragment offset = 0 bytes 
IP:   Time to live = 254 seconds/hops 
IP:   Protocol = 17 (UDP) 
IP:   Header checksum = 157a 
IP:   Source address = 102.21.0.4, blue-servr2 
IP:   Destination address = 192.168.252.6, white-6 
IP:   No options 
IP:   UDP:  ----- UDP Header ----- 
UDP:
UDP:  Source port = 67 
UDP:  Destination port = 68 (BOOTPC) 
UDP:  Length = 506  
UDP:  Checksum = 5D4C  
UDP:
DHCP: ----- Dynamic Host Configuration Protocol ----- 
DHCP:
DHCP: Hardware address type (htype) =  1 (Ethernet (10Mb)) 
DHCP: Hardware address length (hlen) = 6 octets 
DHCP: Relay agent hops = 0 
DHCP: Transaction ID = 0x2e210f17 
DHCP: Time since boot = 0 seconds 
DHCP: Flags = 0x0000 
DHCP: Client address (ciaddr) = 0.0.0.0 
DHCP: Your client address (yiaddr) = 172.168.252.6 
DHCP: Next server address (siaddr) = 102.21.0.2 
DHCP: Relay agent address (giaddr) = 0.0.0.0 
DHCP: Client hardware address (chaddr) = 08:00:20:11:E0:1B 
DHCP:
DHCP: ----- (Options) field options ----- 
DHCP:
DHCP: Message type = DHCPACK 
DHCP: DHCP Server Identifier = 102.21.0.4 
DHCP: Subnet Mask = 255.255.255.0 
DHCP: Router at = 172.168.252.1 
DHCP: Broadcast Address = 172.168.252.255 
DHCP: NISPLUS Domainname = dhcp.test 
DHCP: IP Address Lease Time = 3600 seconds 
DHCP: UTC Time Offset = -14400 seconds 
DHCP: RFC868 Time Servers at = 102.21.0.4 
DHCP: DNS Domain Name = sem.west.dor.com 
DHCP: DNS Servers at = 102.21.0.1 
DHCP: Client Hostname = white-6 
DHCP: Vendor-specific Options (166 total octets):
DHCP:   (02) 04 octets  0x8194AE1B (unprintable) 
DHCP:   (03) 08 octets  "pacific" 
DHCP:   (10) 04 octets  0x8194AE1B (unprintable) 
DHCP:   (11) 08 octets  "pacific" 
DHCP:   (15) 05 octets  "xterm" 
DHCP:   (04) 53 octets  "/export/s28/base.s28s_nxt/latest/Solaris_8/Tools/Boot"
DHCP:   (12) 32 octets  "/export/s28/base.s28s_nxt/latest" 
DHCP:   (07) 27 octets  "/platform/sun4m/kernel/unix" 
DHCP:   (08) 07 octets  "EST5EDT" 
  0: 0800 208e f37e 0800 201e 31c1 0800 4500    .. .ó~.. .1...E.
 16: 020e fc9b 4000 fe11 157a ac15 0004 c0a8    ....@....z......           
 32: fc06 0043 0044 01fa 5d4c 0201 0600 2e21    ...C.D..]L.....!
 48: 0f17 0000 0000 0000 0000 c0a8 fc06 ac15    ................           
 64: 0002 0000 0000 0800 2011 e01b 0000 0000    ........ .......           
 80: 0000 0000 0000 0000 0000 0000 0000 0000    ................           
 96: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
112: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
128: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
144: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
160: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
176: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
192: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
208: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
224: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
240: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
256: 0000 0000 0000 0000 0000 0000 0000 0000    ................          
272: 0000 0000 0000 6382 5363 3501 0536 04ac    ......c.Sc5..6..          
288: 1500 0401 04ff ffff 0003 04c0 a8fc 011c    ................          
304: 04c0 a8fc ff40 0964 6863 702e 7465 7374    .....@.dhcp.test          
320: 3304 0000 0e10 0204 ffff c7c0 0404 ac15    3...............          
336: 0004 0f10 736e 742e 6561 7374 2e73 756e    ....sem.west.dor          
352: 2e63 6f6d 0604 ac15 0001 0c07 7768 6974    .com........whit          
368: 652d 362b a602 0481 94ae 1b03 0861 746c    e-6+.........pac          
384: 616e 7469 630a 0481 94ae 1b0b 0861 746c    ific.........pac          
400: 616e 7469 630f 0578 7465 726d 0435 2f65    ific...xterm.5/e          
416: 7870 6f72 742f 7332 382f 6261 7365 2e73    xport/s28/bcvf.s          
432: 3238 735f 776f 732f 6c61 7465 7374 2f53    28s_btf/latest/S          
448: 6f6c 6172 6973 5f38 2f54 6f6f 6c73 2f42    olaris_x/Tools/B          
464: 6f6f 740c 202f 6578 706f 7274 2f73 3238    oot. /export/s28          
480: 2f62 6173 652e 7332 3873 5f77 6f73 2f6c    /bcvf.s28s_btf/l         
496: 6174 6573 7407 1b2f 706c 6174 666f 726d    atest../platform          
512: 2f73 756e 346d 2f6b 6572 6e65 6c2f 756e    /sun4m/kernel/un          
528: 6978 0807 4553 5435 4544 54ff              ix..EST5EDT.