GNU/Linux >> Tutoriales Linux >  >> Linux

No se ejecuta dhcpcd porque /etc/network/interfaces define algunas interfaces que usarán un cliente DHCP o una dirección estática

Pregunta 1.) Lo siento, parece que no entendiste algunas cosas.

dhcpcd es un cliente de DHCP daemon, que normalmente inicia NetworkManager o ifupdown , no directamente por systemd . Es lo que se encargará de la asignación de la dirección IP para su wlan0 .

Tu puedes usa dhcpcd como iniciado por systemd si lo desea, sin embargo, eso requerirá deshabilitar toda la lógica de configuración de la interfaz de red normal (es decir, /etc/network/interfaces debe estar vacío de líneas que no sean comentarios) de la distribución y reemplazarlo con su propio script personalizado cuando sea necesario. Eso es solo para usos especiales; si no está absolutamente seguro de que debe hacerlo, no debe hacerlo.

dhcpcd nunca entregará direcciones IP a otros hosts. Esta parte que agregaste a dhcpcd.conf parece que pertenecería al archivo de configuración del servidor DHCP de ISC demonio, dhcpd (sí, es solo una diferencia de una letra) en su lugar:

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;
}

Pero si estás siguiendo el tutorial de YouTube que mencionaste, es posible que ni siquiera tengas dhcpd instalado, desde dnsmasq se supone que debe hacer ese trabajo.

Por lo que puedo decir, la sintaxis equivalente para dnsmasq.conf sería:

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

Descargo de responsabilidad:en realidad no he usado dnsmasq , por lo que esto se basa en buscar rápidamente en Google su página de manual.

Pregunta 2.) En el tutorial que mencionaste, dnsmasq se suponía que actuaría como un servidor DHCP en eth0 . No dijiste nada al respecto, así que no sé si estaba funcionando o no. De lo contrario, el único cliente que siempre obtenía la misma IP podría haber estado simplemente recurriendo a una concesión de DHCP antigua recibida anteriormente que aún no había caducado. Sí, los clientes de DHCP pueden almacenar una concesión de DHCP de forma persistente y seguir utilizándola si una red no parece tener un servidor DHCP en funcionamiento disponible.

Pregunta 3.):/etc/network/interfaces es un archivo de configuración de interfaz de red estilo Debian/Ubuntu clásico. Utilice man interfaces para ver la documentación al respecto, o mira aquí.

En Debian, *Ubuntu, Raspbian, etc., NetworkManager tendrá un complemento que leerá /etc/network/interfaces pero no escribir a ella.

Si las herramientas de configuración de NetworkManager como nmcli , nmtui o las herramientas de configuración de NetworkManager basadas en GUI del entorno de escritorio de su elección, la configuración se guardaría en archivos en /etc/NetworkManager/system-connections/ directorio en su lugar.

Si NetworkManager no está instalado, el /etc/network/interfaces el archivo es utilizado por el ifupdown paquete, que incluye los comandos ifup y ifdown . El paquete también incluye un script de inicio del sistema que ejecutará ifup -a en el arranque, habilitando todas las interfaces de red que tienen auto <interface name> en /etc/network/interfaces . También hay una regla udev que ejecutará ifup <interface name> si un controlador para una nueva interfaz de red se carga automáticamente y /etc/network/interfaces tiene un allow-hotplug <interface name> línea para ello.


Encontré la razón de este "error".

dhcpcd utiliza algún tipo de "protección para principiantes/novatos", lo que garantiza una forma segura de manejar la administración de la red, en caso de que algún "novato/novato" intente usar ambos dhcpcd y /etc/interfaces .

dhcpcd comprueba el /etc/interfaces con el siguiente script de shell /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]

Simplemente alterné la línea

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

eliminando el |static argumento, a

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

y ajustó la última línea de eco a:

echo "DHCP client"

PD asegúrese de agregar un denyinterfaces "NAME OF YOUR STATIC INTERFACE, WHICH SHALL BE CONTROLLED ONLY BY /etc/interfaces" , por ejemplo denyinterfaces eth0 a tu /etc/dhcpcd.conf .


Linux
  1. ¿Buena explicación detallada de la sintaxis de /etc/network/interfaces?

  2. ¿Por qué las interfaces de red no están en /dev como otros dispositivos?

  3. ¿Cambiar la dirección Mac de forma permanente dentro de /etc/network/interfaces?

  4. Explicación del archivo de configuración de DHCP /etc/dhcp/dhcpd.conf

  5. ¿Cuándo debo usar /dev/shm/ y cuándo debo usar /tmp/?

/etc/network/interfaces para conectar Ubuntu a una red inalámbrica

CentOS / RHEL:cómo recuperarse de un archivo /etc/passwd eliminado

Django static_root en /var/www/... - sin permisos para recopilar estática

¿Cómo saber desde qué carpeta se está ejecutando un proceso?

¿Qué hace source /etc/network/interfaces.d/* en la parte superior del archivo /etc/network/interfaces?

Linux asigna una dirección fe80::/64 a una interfaz. ¿No debería ser fe80::/10?