GNU/Linux >> Tutoriels Linux >  >> Linux

N'exécute pas dhcpcd car /etc/network/interfaces définit certaines interfaces qui utiliseront un client DHCP ou une adresse statique

Question 1.) Désolé, il semble que vous ayez mal compris certaines choses.

dhcpcd est un client DHCP démon, qui est normalement lancé par NetworkManager ou ifupdown , pas directement par systemd . C'est ce qui va gérer l'attribution de l'adresse IP pour votre wlan0 .

Vous pouvez utilisez dhcpcd comme commencé par systemd si vous le souhaitez, cependant, cela nécessitera de désactiver toute la logique de configuration normale de l'interface réseau (c'est-à-dire /etc/network/interfaces doit être vide de lignes sans commentaires) de la distribution et en le remplaçant par votre propre script personnalisé si nécessaire. C'est pour des usages spéciaux seulement; si vous n'êtes pas absolument certain de devoir le faire, vous ne devriez pas.

dhcpcd ne servira jamais d'adresses IP à d'autres hôtes. Cette partie que vous avez ajoutée à dhcpcd.conf semble appartenir au fichier de configuration du serveur DHCP ISC démon, dhcpd (oui, c'est juste une différence d'une lettre) à la place :

host Accountant {
hardware ethernet 10:60:4b:68:03:21;
fixed-address 192.168.2.83;
}

host Accountant1 {
hardware ethernet 00:0c:29:35:95:ed;
fixed-address 192.168.2.66;
}
host Accountant3 {
hardware ethernet 30:85:A9:1B:C4:8B;
fixed-address 192.168.2.70;
}

Mais si vous suivez le tutoriel YouTube que vous avez mentionné, vous n'avez peut-être même pas dhcpd installé, depuis dnsmasq est censé faire ce travail.

Autant que je sache, la syntaxe équivalente pour dnsmasq.conf serait :

dhcp-host=10:60:4b:68:03:21,192.168.2.83,Accountant
dhcp-host=00:0c:29:35:95:ed,192.168.2.66,Accountant1
dhcp-host=30:85:A9:1B:C4:8B,192.168.2.70,Accountant3

Avis de non-responsabilité :je n'ai pas utilisé dnsmasq , donc ceci est basé sur une simple recherche rapide sur Google de sa page de manuel.

Question 2.) Dans le tutoriel que vous avez mentionné, dnsmasq était censé agir en tant que serveur DHCP sur eth0 . Vous n'avez rien dit à ce sujet, donc je ne sais pas s'il fonctionnait ou non. Sinon, le seul client qui obtenait toujours la même adresse IP aurait peut-être simplement recouru à un ancien bail DHCP précédemment reçu qui n'était pas encore expiré. Oui, les clients DHCP peuvent stocker un bail DHCP de manière persistante et continuer à l'utiliser si un réseau ne semble pas disposer d'un serveur DHCP fonctionnel.

Question 3.) :/etc/network/interfaces est un fichier de configuration d'interface réseau de style Debian/Ubuntu classique. Utilisez man interfaces pour voir la documentation à ce sujet, ou regardez ici.

Dans Debian, *Ubuntu, Raspbian etc., NetworkManager aura un plug-in qui va lire /etc/network/interfaces mais ne veut pas écrire à elle.

Si les outils de configuration de NetworkManager comme nmcli , nmtui ou les outils de configuration NetworkManager basés sur l'interface graphique de votre environnement de bureau de choix sont utilisés, la configuration sera enregistrée dans des fichiers dans /etc/NetworkManager/system-connections/ répertoire à la place.

Si NetworkManager n'est pas installé, le /etc/network/interfaces le fichier est utilisé par le ifupdown package, qui inclut les commandes ifup et ifdown . Le package comprend également un script de démarrage du système qui exécutera ifup -a au démarrage, activant toutes les interfaces réseau qui ont auto <interface name> en /etc/network/interfaces . Il existe également une règle udev qui exécutera ifup <interface name> si un pilote pour une nouvelle interface réseau est chargé automatiquement et /etc/network/interfaces a un allow-hotplug <interface name> ligne pour cela.


J'ai trouvé la raison de cette "erreur".

dhcpcd utilise une sorte de "noob/newbie protection", qui garantit un moyen sûr de gérer la gestion du réseau, si un "noob/newbie" essaie d'utiliser les deux dhcpcd et /etc/interfaces .

dhcpcd vérifie le /etc/interfaces avec le script shell suivant /usr/lib/dhcpcd5/dhcpcd :

#!/bin/sh -e

DHCPCD=/sbin/dhcpcd
INTERFACES=/etc/network/interfaces

if grep -q -E "^[[:space:]]*iface[[:space:]]*.*[[:space:]]*inet[[:space:]]*(dhcp|static)" \
                $INTERFACES; then
        echo "Not running dhcpcd because $INTERFACES"
        echo "defines some interfaces that will use a"
        echo "DHCP client or static address"
        exit 6
fi

exec $DHCPCD [email protected]

J'ai simplement alterné la ligne

if grep -q -E "^[[:space:]]*iface[[:space:]]*.*[[:space:]]*inet[[:space:]]*(dhcp|static)" \

en supprimant le |static argument, pour

if grep -q -E "^[[:space:]]*iface[[:space:]]*.*[[:space:]]*inet[[:space:]]*(dhcp)" \

et ajusté la dernière ligne d'écho à :

echo "DHCP client"

PS assurez-vous d'ajouter un denyinterfaces "NAME OF YOUR STATIC INTERFACE, WHICH SHALL BE CONTROLLED ONLY BY /etc/interfaces" , par exemple denyinterfaces eth0 à votre /etc/dhcpcd.conf .


Linux
  1. Pourquoi les interfaces réseau ne sont-elles pas dans /dev comme les autres périphériques ?

  2. Comment /etc/motd est-il mis à jour ?

  3. Changer l'adresse Mac de manière permanente dans /etc/network/interfaces ?

  4. CentOS / RHEL :Comment récupérer à partir d'un fichier /etc/passwd supprimé

  5. Quand dois-je utiliser /dev/shm/ et quand dois-je utiliser /tmp/?

/etc/network/interfaces pour connecter Ubuntu à un réseau sans fil

Django static_root dans /var/www/... - aucune autorisation pour collectstatic

Comment savoir à partir de quel dossier un processus est en cours d'exécution ?

Existe-t-il un moyen de désactiver le client DHCP dans Raspbian Linux sur un Rasperry Pi ?

Que fait la source /etc/network/interfaces.d/* en haut du fichier /etc/network/interfaces ?

Linux attribue une adresse fe80::/64 à une interface. Cela ne devrait-il pas être fe80::/10 ?