web-dev-qa-db-fra.com

Est-il possible de désactiver le client DHCP dans Raspbian Linux sur un Raspberry Pi?

J'ai un serveur Linux (Rasperry Pi utilisant Raspbian comme système d'exploitation) qui devrait utiliser uniquement une adresse IP statique.

Cependant, j'ai remarqué qu'il avait aussi une adresse IP du serveur DHCP (l'adresse IP donnée par DHCP est 192.168.111.2). Selon les paramètres réseau, le serveur doit utiliser uniquement une adresse IP statique (192.168.111.100).

Le contenu de /etc/network/interfaces:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.111.100
netmask 255.255.255.0
gateway 192.168.111.1
dns-nameservers ip1 ip2

Malgré l'utilisation d'une configuration statique, je peux utiliser SSH sur le périphérique en utilisant également l'adresse IP donnée par DHCP. De plus, il semble que ntpd utilise la mauvaise adresse IP ainsi que la bonne.

Sortie de Netstat:

udp        0      0 192.168.111.2:123       0.0.0.0:*                           2774/ntpd
udp        0      0 192.168.111.100:123     0.0.0.0:*                           2774/ntpd

Selon ifconfig, l'IP 192.168.111.2 n'est pas utilisé:

eth0      Link encap:Ethernet  HWaddr b8:27:eb:be:18:1c
          inet addr:192.168.111.100  Bcast:192.168.111.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:138099 errors:0 dropped:0 overruns:0 frame:0
          TX packets:81146 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:95954711 (91.5 MiB)  TX bytes:27076870 (25.8 MiB)

ps -ef | grep dhcp indique que j'ai un démon DHCP en cours d'exécution:

root      2000     1  0 Oct07 ?        00:00:06 /sbin/dhcpcd

Comment désactiver le démon DHCP du démarrage et m'assurer que mon serveur utilise uniquement le paramètre static?

14
Madoc Comadrin

Ce scénario semble vraiment bizarre car votre configuration devrait fonctionner comme vous le décrivez - et espérer que cela fonctionnerait - si une adresse IP statique est définie dans /etc/network/interfaces. Cela dit, cette discussion sur le site officiel de Raspberry Pi est centrée sur le problème. L'utilisateur "rpdom" l'indique sur le message daté du "28 mai, 2015 6h21 ":

Cela se produit dans les dernières mises à jour. Cela est dû au fait que le nouveau client DHCP ignore ce que font les fichiers d'interface et fait sa propre chose en plus ... ça me rend dingue. Je regarderais comment reconfigurer le client DHCP (je ne peux pas me rappeler lequel ou comment le faire, je suis toujours sur l'ancien qui fonctionne pour moi), le désactiver ou le supprimer (si possible).

Plus profondément dans le fil, l'utilisateur "KLL" suggère l'autre article suivant dans sa réponse datée du "lundi 10 août 2015 à 12 h 59". Selon " knute ”:

Quelque part en cours de route, une mise à niveau a modifié mon fichier /etc/network/interfaces avec le mot "manuel" au lieu de dhcp ou static et je me suis retrouvé avec deux adresses IP, mon adresse statique et une adresse dhcp. J'ai finalement eu le temps de jouer avec et j'ai découvert que dhcpcd5 fonctionnait différemment de ce qu'il y avait auparavant. Pour obtenir uniquement votre adresse statique, ne modifiez pas /etc/network/interfaces. Remettez le mot 'manuel' si vous l'avez changé et modifiez plutôt le /etc/dhcpcd.conf comme indiqué dans l'exemple de la documentation.

L’idée est donc que le comportement de dhcpcd5 a changé dans l’une des mises à niveau. Et la solution pour résoudre le problème est de supprimer toutes les modifications de /etc/network/interfaces et d’ajuster les paramètres dans /etc/dhcpcd.conf pour obtenir une adresse IP statique; exemple de configuration ci-dessous:

static <value>
             Configures a static <value>.  If you set ip_address then dhcpcd
             will not attempt to obtain a lease and just use the value for the
             address with an infinite lease time.

             Here is an example which configures a static address, routes and
             dns.
                   interface eth0
                   static ip_address=192.168.0.10/24
                   static routers=192.168.0.1
                   static domain_name_servers=192.168.0.1

Vous trouverez plus d'informations sur le contenu de dhcpcd.confsur la page de manuel officielle correspondante .

Cela dit, une autre idée est de conserver les paramètres que vous avez dans /etc/network/interfaces, puis éditez /etc/dhcpcd.conf pour ajouter la ligne denyinterfaces eth0 afin d'indiquer au démon DHCP d'ignorer complètement eth0. L'une ou l'autre solution devrait fonctionner, mais une solution pourrait être une solution préférable en fonction de vos besoins/exigences globaux en matière de réseau.

11
JakeGould

ce qui a fonctionné pour moi est d’utiliser un fichier/etc/network/interfaces comme dans la question initiale et de simplement supprimer le client DHCP:

apt-get remove dhcpcd5 isc-dhcp-client isc-dhcp-common
7
docno

Je dois dire que, malheureusement, aucune des solutions proposées ici n’a fonctionné pour moi. Mais après une longue bataille avec DHCP, j'ai finalement réussi à résoudre le problème:

vi /etc/systemd/network/eth0.network

changement:

[Match]
Name=eth0

[Network]
DHCP=yes

à:

[Network]
DHCP=no

j'espère que cela t'aides.

1
lester289

Essayé quelques choses et a constaté que

 apt list --installed | grep dhcp

a trouvé:

dhcpcd5 
isc-dhcp-client
isc-dhcp-common

Je viens de désactiver dhcpcd5 et cela a été corrigé en utilisant:

 Sudo apt-get remove dhcpcd5

fait un redémarrage et tout était dandy

0
Mick65

Le meilleur moyen de désactiver tout service tel que dhcpcd consiste à utiliser les fonctions de gestion du système. Vous aurez besoin de redémarrer pour que cela prenne effet, à moins que vous n'interrompiez également le service.

Pour Jessie (qui utilise la gestion systemd):

Sudo systemctl disable dhcpcd.service

Et pour l’ancien Wheezy (gestion System-V):

Sudo update-rc.d dhcpcd disable

Mais si vous le désactivez, vous devez vous assurer que vous avez une configuration IP statique dans /etc/network/interfaces, sinon vos interfaces ne recevront pas d'adresse IP.

0
Pierz

Voici un résumé de ce que je devais faire pour Raspbian Jessie 2017-01-11:

Éditez/etc/network/interfaces et ajoutez la section d'adresse statique, supprimez les autres références à l'interface statique (eth0 dans ce cas). La ligne auto est importante sinon l'interface ne démarrera pas au démarrage:

    auto eth0
    iface eth0 inet static
      address 192.168.44.17
      netmask 255.255.255.0
      gateway 192.168.44.27

Ensuite, désactivez dhcpcd et activez la mise en réseau standard:

  • Désactiver dhcpcd: systemctl disable dhcpcd.service
  • Activer la mise en réseau: systemctl enable networking
  • redémarrer

Raspbian Jessie depuis la publication du 2017-01-11 ne semble pas utiliser le réseau de systemd

0
SteveB