Guide d'administration système : services IP

Problèmes de communication avec le serveur DHCP

Cette section décrit les problèmes que vous risquez de rencontrer lors de l'ajout de clients DHCP au réseau.

Après avoir activé le logiciel client et redémarré le système, le client essaie d'établir une liaison avec le serveur DHCP afin de connaître sa configuration réseau. S'il n'y parvient pas, voici les messages d'erreur que vous êtes susceptible d'obtenir :


DHCP or BOOTP server not responding 

    Pour déterminer l'origine du problème, vous devez réunir les éléments de diagnostic nécessaires à partir du client et du serveur. Les tâches suivantes vous seront très utiles à ce titre :

  1. Exécution du client DHCP en mode de débogage

  2. Exécution du serveur DHCP en mode de débogage

  3. Contrôle du trafic sur le réseau DHCP à l'aide de snoop

Vous pouvez réaliser ces tâches ensemble ou indépendamment les unes des autres.

Les informations que vous collectez permettent de savoir si le problème est lié au client, au serveur ou à un agent de relais. Une fois l'origine du problème identifiée, vous pourrez appliquer la solution qui convient.

ProcedureExécution du client DHCP en mode de débogage

Si le client n'est pas un client DHCP Oracle Solaris, reportez-vous à la documentation du client pour savoir comment exécuter le client en mode de débogage.

Si vous disposez d'un client DHCP Solaris, procédez de la façon suivante :

  1. Connectez-vous au système client DHCP en tant que superutilisateur.

  2. Détruisez le démon client DHCP.


    # pkill -x dhcpagent
    
  3. Redémarrez le démon en mode de débogage.


    # /sbin/dhcpagent -d1 -f &
    

    Le commutateur -d fait passer le client DHCP en mode de débogage avec un détail de niveau 1. Le commutateur -f permet de diriger la sortie vers la console au lieu de syslog.

  4. Configurez l'interface en vue de lancer la négociation DHCP.


    # ifconfig interface dhcp start
    

    Remplacez interface par le nom de l'interface réseau du client, tel que ge0.

    En mode de débogage, le démon du client affiche les messages à l'écran pendant l'exécution des requêtes DHCP. Pour plus d'informations sur la sortie du mode de débogage client, reportez-vous à la section Sortie du client DHCP en mode de débogage.

ProcedureExécution du serveur DHCP en mode de débogage

  1. Connectez-vous au système serveur en tant que superutilisateur.

  2. Arrêtez temporairement le serveur DHCP.


    # svcadm disable -t svc:/network/dhcp-server
    

    Vous pouvez également arrêter le serveur à l'aide du gestionnaire DHCP ou de la commande dhcpconfig.

  3. Redémarrez le démon en mode de débogage.


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

    N'oubliez pas d'insérer les options de ligne de commande in.dhcpd que vous utilisez normalement lors de l'exécution du démon. Si vous lancez, par exemple, le démon en tant qu'agent de relais BOOTP, pensez à associer l'option -r à la commande in.dhcpd -d -v.

    En mode de débogage, le démon affiche les messages à l'écran pendant le traitement des requêtes DHCP ou BOOTP. Pour plus d'informations sur la sortie du mode de débogage serveur, reportez-vous à la section Sortie du serveur DHCP en mode de débogage .

ProcedureContrôle du trafic sur le réseau DHCP à l'aide de snoop

  1. Connectez-vous au système serveur DHCP en tant que superutilisateur.

  2. Lancez la commande snoop pour commencer le suivi du trafic sur le réseau via l'interface réseau du serveur.


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

    Par exemple, vous entrez la commande suivante :


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

    snoop continue à contrôler l'interface tant que vous n'arrêtez pas snoop en appuyant sur Contrôle-C une fois que vous avez collecté les informations requises.

  3. Initialisez le système client ou relancez dhcpagent sur le système client.

    La section Exécution du client DHCP en mode de débogage explique comment redémarrer dhcpagent.

  4. Exécutez snoop sur le système serveur pour afficher les paquets du réseau consignés dans le fichier de sortie :


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

    Par exemple, vous entrez la commande suivante :

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

Pour savoir comment interpréter la sortie, reportez-vous à la section Sortie snoop DHCP.

Sortie du client DHCP en mode de débogage

L'exemple suivant présente une sortie normale correspondant à la situation suivante : un client DHCP en mode de débogage envoie sa requête DHCP et reçoit ses données de configuration à partir d'un serveur DHCP.


Exemple 17–1 Sortie normale du client DHCP en mode de débogage


/sbin/dhcpagent: debug: set_packet_filter: set filter 0x27fc8 (DHCP filter) 
/sbin/dhcpagent: debug: init_ifs: initted interface hme0 
/sbin/dhcpagent: debug: insert_ifs: hme0: sdumax 1500, optmax 1260, hwtype 1, hwlen 6 
/sbin/dhcpagent: debug: insert_ifs: inserted interface hme0 
/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 hme0 to 255.255.192.0 
/sbin/dhcpagent: info: setting IP address on hme0 to 10.23.3.233 
/sbin/dhcpagent: info: setting broadcast address on hme0 to 10.23.63.255 
/sbin/dhcpagent: info: added default router 10.23.0.1 on hme0 
/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: hme0 acquired lease, expires Tue Aug 10 16:18:33 2006 
/sbin/dhcpagent: info: hme0 begins renewal at Tue Aug 10 15:49:44 2006 
/sbin/dhcpagent: info: hme0 begins rebinding at Tue Aug 10 16:11:03 2006

Si le client ne parvient pas à joindre le serveur DHCP, il est possible que la sortie du mode de débogage affichée à l'écran soit similaire à la sortie illustrée dans l'exemple qui suit.


Exemple 17–2 Sortie signalant un problème du client DHCP en mode de débogage


/sbin/dhcpagent: debug: set_packet_filter: set filter 0x27fc8 (DHCP filter)
/sbin/dhcpagent: debug: init_ifs: initted interface hme0 
/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
 

Si vous voyez ce message, cela signifie que la requête du client n'a jamais atteint le serveur ou que le serveur n'est pas en mesure d'envoyer une réponse au client. Exécutez snoop sur le serveur comme indiqué à la section Contrôle du trafic sur le réseau DHCP à l'aide de snoop afin de déterminer si des paquets provenant du client sont parvenus au serveur.

Sortie du serveur DHCP en mode de débogage

La sortie normale du serveur en mode de débogage présente les informations de configuration du serveur suivies des données relatives à chaque interface réseau au démarrage du démon. À l'issue du démarrage du démon, la sortie du mode de débogage affiche les informations relatives aux requêtes traitées par le démon. L'Exemple 17–3 illustre la sortie du mode de débogage pour un serveur DHCP venant d'être démarré. Le serveur prolonge le bail pour un client utilisant une adresse appartenant à un autre serveur DHCP qui ne répond pas.


Exemple 17–3 Sortie normale pour le serveur DHCP en mode de débogage


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: 10.21.255.255 
Netmask: 255.255.0.0  
Address: 10.21.0.2  
Monitor (0006/nf0) started...  
Thread Id: 0006 - Monitoring Interface: nf0 *****  
MTU: 4352      Type: DLPI  
Broadcast: 10.22.255.255  
Netmask: 255.255.0.0  
Address: 10.22.0.1  
Monitor (0007/qfe0) started...  
Thread Id: 0007 - Monitoring Interface: qfe0 *****  
MTU: 1500      Type: DLPI   
Broadcast: 10.23.63.255  
Netmask: 255.255.192.0  
Address: 10.23.0.1  
Read 33 entries from DHCP macro database on Tue Aug 10 15:10:27 2006 
Datagram received on network device: qfe0  
Client: 0800201DBA3A is requesting verification of address owned by 10.21.0.4 
Datagram received on network device: qfe0  
Client: 0800201DBA3A is requesting verification of address owned by 10.21.0.4  
Datagram received on network device: qfe0  
Client: 0800201DBA3A is requesting verification of address owned by 10.21.0.4  
Datagram received on network device: qfe0  
Client: 0800201DBA3A maps to IP: 10.23.3.233  
Unicasting datagram to 10.23.3.233 address.  
Adding ARP entry: 10.23.3.233 == 0800201DBA3A  
DHCP EXTEND 0934312543 0934316143 10.23.3.233 10.21.0.2 
          0800201DBA3A SUNW.Ultra-5_10 0800201DBA3A

L'Exemple 17–4 illustre la sortie du mode de débogage d'un démon DHCP exécuté en tant qu'agent de relais BOOTP. L'agent transfère les requêtes d'un client vers un serveur DHCP et relaie les réponses du serveur au client.


Exemple 17–4 Sortie normale d'un agent de relais BOOTP en mode de débogage


Relay destination: 10.21.0.4 (blue-servr2)     network: 10.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: 10.21.255.255  
Netmask: 255.255.0.0  
Address: 10.21.0.2  
Monitor (0006/nf0) started...  
Thread Id: 0006 - Monitoring Interface: nf0 *****  
MTU: 4352      Type: DLPI  
Broadcast: 10.22.255.255  
Netmask: 255.255.0.0  
Address: 10.22.0.1  
Monitor (0007/qfe0) started...  
Thread Id: 0007 - Monitoring Interface: qfe0 *****  
MTU: 1500      Type: DLPI  
Broadcast: 10.23.63.255  
Netmask: 255.255.192.0  
Address: 10.23.0.1  
Relaying request 0800201DBA3A to 10.21.0.4, server port.  
BOOTP RELAY-SRVR 0934297685 0000000000 0.0.0.0 10.21.0.4 0800201DBA3A 
N/A 0800201DBA3A  
Packet received from relay agent: 10.23.0.1  
Relaying reply to client 0800201DBA3A  
Unicasting datagram to 10.23.3.233 address.  
Adding ARP entry: 10.23.3.233 == 0800201DBA3A  
BOOTP RELAY-CLNT 0934297688 0000000000 10.23.0.1 10.23.3.233 0800201DBA3A 
N/A 0800201DBA3A  
Relaying request 0800201DBA3A to 10.21.0.4, server port.  
BOOTP RELAY-SRVR 0934297689 0000000000 0.0.0.0 10.21.0.4 0800201DBA3A 
N/A 0800201DBA3A  
Packet received from relay agent: 10.23.0.1  
Relaying reply to client 0800201DBA3A  
Unicasting datagram to 10.23.3.233 address.  
Adding ARP entry: 10.23.3.233 == 0800201DBA3A 
 

Si vous constatez un problème avec DHCP, voici les avertissements ou messages d'erreur susceptibles d'être affichés dans la sortie du mode de débogage. Recherchez la solution appropriée dans la liste des messages d'erreur DHCP.


ICMP ECHO reply to OFFER candidate: adresse_ip disabling

Origine :

Avant de proposer une adresse IP à un client, le serveur DHCP effectue un test ping lors de l'envoi de l'adresse pour s'assurer que l'adresse n'est pas déjà utilisée. Si un client répond, cela signifie que l'adresse est effectivement utilisée.

Solution :

Vérifiez si l'adresse que vous avez configurée est libre. Vous pouvez, pour ce faire, exécuter la commande ping. Pour plus d'informations, reportez-vous à la page de manuel ping(1M).


No more IP addresses on adresse-réseau network.

Origine :

Aucune adresse IP n'est disponible dans la table de réseau DHCP associée au réseau du client.

Solution :

Créez d'autres d'adresses IP avec le gestionnaire DHCP ou à l'aide de la commande pntadm. Si le démon DHCP est chargé de contrôler plusieurs sous-réseaux, assurez-vous que les adresses supplémentaires s'appliquent au sous-réseau où figure le client. Pour plus d'informations, reportez-vous à la section Ajout d'adresses IP au service DHCP.


No more IP addresses for adresse-réseau network when you are running the DHCP daemon in BOOTP compatibility mode.

Origine :

BOOTP n'applique pas de durée de bail. Aussi, le serveur DHCP recherche des adresses libres dont l'indicateur BOOTP permet leur allocation aux clients BOOTP.

Solution :

Servez-vous du gestionnaire DHCP pour allouer des adresses BOOTP. Voir Prise en charge des clients BOOTP via le service DHCP (liste des tâches).


Demande d'accès à une base de données réseau inexistante : nom-base-de-données dans le magasin de données : magasin-de-données.

Origine :

Lors de la configuration du serveur DHCP, la table de réseau DHCP d'un sous-réseau n'a pas été créée.

Solution :

Servez-vous du gestionnaire DHCP ou de la commande pntadm pour créer la table de réseau DHCP et définir de nouvelles adresses IP. Voir Ajout de réseaux DHCP.


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

Origine :

Lors de la configuration du serveur DHCP, la table de réseau DHCP d'un sous-réseau n'a pas été créée.

Solution :

Servez-vous du gestionnaire DHCP ou de la commande pntadm pour créer la table de réseau DHCP et définir de nouvelles adresses IP. Voir Ajout de réseaux DHCP.


Client using non_RFC1048 BOOTP cookie.

Origine :

Un périphérique du réseau essaie d'accéder à une implémentation non prise en charge de BOOTP.

Solution :

Ignorez ce message, sauf si vous avez besoin de configurer ce périphérique. Pour savoir comment prendre en charge ce périphérique, reportez-vous à la section Prise en charge des clients BOOTP via le service DHCP (liste des tâches).

Sortie snoop DHCP

Dans la sortie snoop, assurez-vous que les paquets sont échangés entre le système client DHCP et le système serveur DHCP. L'adresse IP pour chaque système est indiquée dans chaque paquet. Les adresses IP des routeurs ou des agents de relais dans le chemin du paquet sont également mentionnées. Si vous constatez que les systèmes n'échangent pas de paquets, il est probable que le système client ne soit pas en mesure d'établir le contact avec le système serveur. Le problème se produit donc à un niveau inférieur.

Pour évaluer la sortie snoop, vous devez connaître le comportement normal de la commande. Vous devez, par exemple, savoir si la requête transite par un agent de relais BOOTP. Il est essentiel, en outre, de connaître les adresses MAC et l'adresse IP des systèmes impliqués de façon à déterminer si ces valeurs sont celles que vous attendiez. S'il existe plusieurs interfaces réseau, vous devez également connaître leurs adresses.

L'exemple suivant présente une sortie snoop normale pour un accusé de réception DHCP transmis depuis le serveur DHCP sur blue-servr2 à destination d'un client dont l'adresse MAC est 8:0:20:8e:f3:7e . Dans l'accusé de réception, le serveur alloue au client l'adresse IP 192.168.252.6 et le nom d'hôte white-6. Y figurent également un certain nombre d'options de réseau standard et plusieurs options spécifiques au fournisseur pour le client.


Exemple 17–5 Exemple de sortie snoop pour un paquet


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 = 10.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) = 192.168.252.6 
DHCP: Next server address (siaddr) = 10.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 = 10.21.0.4 
DHCP: Subnet Mask = 255.255.255.0 
DHCP: Router at = 192.168.252.1 
DHCP: Broadcast Address = 192.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 = 10.21.0.4 
DHCP: DNS Domain Name = sem.example.com 
DHCP: DNS Servers at = 10.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/s2/base.s2s/latest/Solaris_8/Tools/Boot" 
DHCP:   (12) 32 octets  "/export/s2/base.s2s/latest" 
DHCP:   (07) 27 octets  "/platform/sun4u/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.example.          
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/sx2/bcvf.s          
432: 3238 735f 776f 732f 6c61 7465 7374 2f53    2xs_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/s2x          
480: 2f62 6173 652e 7332 3873 5f77 6f73 2f6c    /bcvf.s2xs_btf/l         
496: 6174 6573 7407 1b2f 706c 6174 666f 726d    atest../platform          
512: 2f73 756e 346d 2f6b 6572 6e65 6c2f 756e    /sun4u/kernel/un          
528: 6978 0807 4553 5435 4544 54ff              ix..EST5EDT.