4 votes

Existe-t-il un moyen officiel de détecter un serveur DHCP existant ?

Je prévois une nouvelle fonctionnalité sur notre produit pour prendre en charge un réseau local. Comme l'installation sera effectuée par des personnes relativement peu techniques (c'est pour les bateaux), je pensais qu'il serait utile de détecter automatiquement si nous devions fournir un serveur DHCP ou non, en fonction de l'existence d'un serveur sur le réseau. Existe-t-il un moyen officiel de vérifier s'il y a déjà un serveur DHCP (ou plus d'un) sur le réseau ?

Nous utilisons Embedded Linux sur le produit.

0 votes

Avez-vous trouvé une réponse à cette question ?

0 votes

Je n'ai pas encore eu l'occasion d'essayer dhcp_probe sur notre appareil.

10voto

Tom Points 10766

Fedora semble avoir le paquet suivant dans le dépôt "dhcp_probe".

Description : dhcp_probe tente de découvrir des serveurs DHCP et BootP sur un réseau Ethernet à connexion directe. Un administrateur réseau peut utiliser cet outil pour localiser les serveurs DHCP et BootP non autorisés.


On dirait que le man dhcp_probe propose quelques bons conseils en matière de stratégie de découverte DHCP qui pourraient valoir la peine d'être consultés, même si vous avez décidé de créer les paquets vous-même.

PAQUETS FLAVORS
Aucun paquet de requête unique n'est susceptible de provoquer une réponse de tous les serveurs BootP et DHCP possibles. Certains serveurs serveurs peuvent ne répondre qu'à BootP ou DHCP, mais pas aux deux. Certains serveurs peuvent être configurés pour ne configurés pour ne répondre qu'à un petit ensemble de clients connus. Certains serveurs DHCP ne fourniront des baux qu'à un petit ensemble de clients connus, mais ils peuvent être prêts à accepter d'autres baux. clients connus, mais peuvent être disposés à répondre (négativement) aux clients inconnus qui demandent un renouvellement de bail sur une adresse IP inappropriée. sur une adresse IP inappropriée. Par conséquent, dhcp_probe n'envoie pas un, mais cinq paquets de requête de saveur différente, dans l'espoir d'obtenir une réponse négative. différents, dans l'espoir de provoquer des réponses d'une plus grande variété de serveurs inconnus.

$ rpm -qil dhcp_probe
Name        : dhcp_probe
Version     : 1.3.0
Release     : 8.fc15
Architecture: x86_64
Install Date: Mon 30 Apr 2012 12:20:46 AM BST
Group       : System Environment/Daemons
Size        : 133600
License     : GPLv2+ and MIT
Signature   : RSA/SHA256, Thu 28 Jul 2011 11:45:40 AM BST, Key ID 067f00b6a82ba4b7
Source RPM  : dhcp_probe-1.3.0-8.fc15.src.rpm
Build Date  : Tue 08 Feb 2011 01:58:57 PM GMT
Build Host  : x86-18.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://www.net.princeton.edu/software/dhcp_probe/
Summary     : Tool for discover DHCP and BootP servers
Description :
dhcp_probe attempts to discover DHCP and BootP servers on a directly-attached
Ethernet network. A network administrator can use this tool to locate
unauthorized DHCP and BootP servers.
/etc/dhcp_probe.cf
/etc/rc.d/init.d/dhcp_probe
/usr/sbin/dhcp_probe
/usr/share/doc/dhcp_probe-1.3.0
/usr/share/doc/dhcp_probe-1.3.0/AUTHORS
/usr/share/doc/dhcp_probe-1.3.0/COPYING
/usr/share/doc/dhcp_probe-1.3.0/COPYING.GPL
/usr/share/doc/dhcp_probe-1.3.0/COPYING.LIB
/usr/share/doc/dhcp_probe-1.3.0/NEWS
/usr/share/doc/dhcp_probe-1.3.0/README
/usr/share/doc/dhcp_probe-1.3.0/TODO
/usr/share/man/man5/dhcp_probe.cf.5.gz
/usr/share/man/man8/dhcp_probe.8.gz

0 votes

Il semble qu'il y ait une assez bonne description des différentes stratégies pour la découverte des serveurs bootp et dhpc dans la page de manuel de dhcp_probe

8voto

joeqwerty Points 106914

Ne confondons pas le mot "officiel" avec le concept de "méthode généralement acceptée".

Une méthode généralement acceptée consiste à émettre un paquet DHCPDiscover et à attendre une réponse.

0 votes

Compris. Je voulais juste savoir s'il y avait une façon "correcte" de faire les choses avant de mettre en place la mienne !

4voto

mulaz Points 10362

Si vous avez installé "dhcpcd", vous pouvez utiliser l'option "-T", pour obtenir le mode "test", qui ne fait que répéter les paramètres, mais ne définit pas réellement l'adresse IP et la passerelle.

dhcpcd -T

et la sortie :

emily ~ # dhcpcd -T wlan0
dhcpcd[6205]: version 5.2.12 starting
dhcpcd[6205]: wlan0: broadcasting for a lease
dhcpcd[6205]: wlan0: offered 192.168.2.194 from 192.168.2.1
interface=wlan0
pid=6205
reason=TEST
skip_hooks=lookup-hostname
new_broadcast_address=192.168.2.255
new_dhcp_lease_time=86400
new_dhcp_message_type=2
new_dhcp_server_identifier=192.168.2.1
new_domain_name_servers='192.168.2.1 193.189.160.13 193.189.160.23'
new_ip_address=192.168.2.194
new_network_number=192.168.2.0
new_routers=192.168.2.1
new_subnet_cidr=24
new_subnet_mask=255.255.255.0

1voto

Magellan Points 4431

Vous pouvez faire votre propre DHCPDISCOVER pour voir si quelque chose est configuré pour répondre, mais si le serveur DHCP est verrouillé sur des MACS spécifiques, vous n'obtiendrez peut-être pas de réponse.

Vous pourriez en théorie effectuer un scan des ports UDP pour UDP67 et UDP68, mais je ne suis pas sûr que ce soit une bonne idée, car il est plus probable que cela soit signalé comme un comportement potentiellement malveillant.

De manière générale, les produits qui ne sont pas des équipements de réseau ne devraient pas offrir de DHCP. Cela complique le travail d'un véritable administrateur système, surtout s'il a tendance à s'activer par défaut s'il perd ses paramètres.

C'est une chose qui m'a toujours rendu fou avec les vieux boîtiers convertisseurs Hawking Ethernet vers USB "serveur d'impression".

-1voto

Robin Gill Points 2493

Envoyez une requête DHCP et attendez de voir si vous recevez une offre DHCP.

Méthode plus grossière - configurer une carte réseau pour qu'elle reçoive une adresse IP via DHCP puis vérifier après un certain temps si elle reçoit une adresse APIPA. S'il reçoit une adresse APIPA, il est peu probable qu'il y ait un serveur DHCP existant connecté au réseau en question.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X