Los archivos en /etc/network/interfaces.d se ignoran, pero no / etc / network / interfaces en sí

19

Para Ubuntu 16.04 LTS (GNU / Linux 3.10.96-113 armv7l)

Cuando tengo lo siguiente, mi configuración estática se ignora:

/ etc / network / interfaces

source-directory /etc/network/interfaces.d

/etc/network/interfaces.d/eth0

auto eth0
iface eth0 inet static
        address 192.168.40.112
        netmask 255.255.255.0
        gateway 192.168.40.1
        dns-nameservers 8.8.8.8

Sin embargo, con lo siguiente:

/ etc / network / interfaces

auto eth0
iface eth0 inet static
        address 192.168.40.112
        netmask 255.255.255.0
        gateway 192.168.40.1
        dns-nameservers 8.8.8.8

source-directory /etc/network/interfaces.d

La configuración estática se establece en el arranque (independientemente de lo que tengo en interfaces.d /).

En caso de que sea relevante, estoy usando una regla udev para cambiar el nombre de la interfaz eth0 (solía ser "enx001e063110c0" ...)

Luis de Arquer
fuente
Mi presentimiento es algo que tiene que ver con Kernel versión 3.10 que tal vez ya no sea compatible.
WinEunuuchs2Unix
Realmente no me parece un problema de kernel. Pero estoy desorientado sin embargo, en la forma de una red de obras de inicialización después de la mudanza a systemd -no diciendo que es un problema de systemd
Luis de Arquer
Por curiosidad, ¿por qué estás ejecutando Linux 3.10 en lugar de la versión más reciente?
wjandrea
El punto sobre el kernel es que pensé que stystemd no salió hasta una versión posterior, pero todavía estoy en mi teléfono y no puedo confirmarlo.
WinEunuuchs2Unix
@LuisdeArquer He respondido el siguiente problema del kernel.
WinEunuuchs2Unix

Respuestas:

28

Creo que lo encontré. Desde el manual , el problema parece estar con la source-directorypalabra clave. Parece que, desde 16.04, ya no es compatible.

Entonces reemplazando

source-directory /etc/network/interfaces.d

con

source /etc/network/interfaces.d/*

Parece solucionar el problema.

Luis de Arquer
fuente
Ja bien para ti. +1 por tenacidad :) No olvide volver en dos días y marque su respuesta para resolver la pregunta (haga clic en la marca de verificación junto a su respuesta y
hágala
@ WinEunuuchs2Unix ¡Gracias por tu ayuda! :)
Luis de Arquer
Esto parece solucionar el problema idéntico con la versión actual (marzo de 2018) de raspbian también.
iX3
1
Muy interesante. Odroid Ubuntu 16.04 también se ve afectado por este problema.
Marcus
5

Tuve aproximadamente el mismo problema. Resulta que source-directoryes compatible con mi sistema, pero solo incluye archivos cuyos nombres de archivo consisten en letras, números, guiones y guiones bajos.

Es por eso que mi eth0.conf no se leyó, porque contenía un punto.

Sjoerd
fuente
Para todos vale la pena - He verificado con varias máquinas de 14.04 y 16.04 que los archivos w / o extensiones de /etc/network/interfaces.dobtener de fuentes bien de /etc/network/interfacescon source-directory /etc/network/interfaces.d...;) También cabe destacar que en nuestro entorno de red-manager se elimina de los servidores; demasiado impredecible: D
tink
2

Su Kernel 3.10 es demasiado viejo para systemd IFF usando systemd-v230 o más reciente .

De acuerdo con los systemdrequisitos del kernel en github en ( github.com - systemd README ) necesita la versión> = 3.12 si está utilizando systemd-v230o más reciente:

REQUIREMENTS:
        Linux kernel >= 3.12
        Linux kernel >= 4.2 for unified cgroup hierarchy support

Las líneas 37, 38 y 39 están impresas arriba.

Está ejecutando bajo arquitectura ARM de la que francamente sé poco. La búsqueda en Google me dice que armvl7Raspberry Pi lo usa y que es un kernel de 32 bits.

Actualizando su Kernel a los tiempos modernos

Si desea la última protección de seguridad ( 21 de octubre de 2016 ) "Dirty COW" ( ¿Qué es el error "Dirty COW" y cómo puedo proteger mi sistema contra él? ) Además de una serie de otros parches de seguridad, correcciones de errores y sistema mejoras ( después de su versión 2013 ) debería estar en el kernel 4.4.0-47.

Lamentablemente no sé cómo hacer eso para un RaspberryPi. He vinculado esta pregunta a las personas que usan RaspberryPi y les he pedido que critiquen esta respuesta.

WinEunuuchs2Unix
fuente
Solo para confirmar: la CPU ARM en el Pi es de hecho de 32 bits.
Nathan Osman
@NathanOsman Gracias por confirmar esta nueva área temática para mí :)
WinEunuuchs2Unix
+1 por señalar esto. Sin embargo, por favor vea esto . Systemd generalmente admite kernels de 2 años de antigüedad, por lo que incluso puede tener razón, me sorprendería que esta sea la causa raíz. Comprobaré la versión del sistema que estoy ejecutando. Pero incluso si es una versión más nueva, ¿no suena más como un problema de espacio de usuario? ¿Cómo podría el núcleo permitirle leer un archivo pero evitar que lea otro? Y la configuración de red se aplica claramente sin problemas en el segundo caso. [Más sobre el próximo comentario]
Luis de Arquer
Normalmente solo actualizaría el kernel y probaría, pero puede ser difícil en este caso. Este sistema se ejecuta en un ODROID XU4, donde la seguridad no es una preocupación, pero cambiar los núcleos puede llevar algo de tiempo, y probablemente no sea una solución a largo plazo debido a la estabilidad. Si no surge otra solución, puedo intentarlo solo por curiosidad
:)
@NathanOsman En realidad, la CPU en sí es de 64 bits en la Raspberry 3 (pero normalmente se usa con núcleos de 32 bits)
Luis de Arquer