Fichiers dans /etc/network/interfaces.d ignorés, mais pas / etc / network / interfaces lui-même

19

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

Lorsque j'ai ce qui suit, ma configuration statique est ignorée:

/ 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

Cependant, avec les éléments suivants:

/ 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 configuration statique est définie au démarrage (indépendamment de ce que j'ai dans interfaces.d /).

Dans le cas où cela est pertinent, j'utilise une règle udev pour renommer l'interface eth0 (c'était "enx001e063110c0" ...)

Luis de Arquer
la source
Mon intuition est quelque chose à voir avec la version 3.10 du noyau qui pourrait même ne plus être prise en charge.
WinEunuuchs2Unix
Cela ne ressemble pas vraiment à un problème de noyau pour moi. Mais je ne sais pas encore comment fonctionne l'initialisation du réseau après le passage à systemd - sans dire que c'est un problème systemd
Luis de Arquer
Juste curieux, pourquoi utilisez-vous Linux 3.10 au lieu de la version la plus récente?
wjandrea
Le point au sujet du noyau est que je pensais que stystemd n'était pas sorti avant une version ultérieure, mais je suis toujours sur mon téléphone et je ne peux pas confirmer.
WinEunuuchs2Unix
@LuisdeArquer J'ai répondu au problème du noyau ci-dessous.
WinEunuuchs2Unix

Réponses:

28

Je pense que je l'ai trouvé. D'après le manuel , le problème semble être avec le source-directorymot - clé. Il semble que, depuis le 16.04, il ne soit plus supporté.

Donc, en remplaçant

source-directory /etc/network/interfaces.d

avec

source /etc/network/interfaces.d/*

semble résoudre le problème.

Luis de Arquer
la source
Ha bien pour toi. +1 pour la ténacité :) N'oubliez pas de revenir dans deux jours et de marquer votre réponse comme résolvant la question (cliquez sur la coche à côté de votre réponse et rendez-la verte)
WinEunuuchs2Unix
@ WinEunuuchs2Unix Merci pour votre aide! :)
Luis de Arquer
Cela semble résoudre le problème identique avec la version actuelle (mars 2018) de raspbian .
iX3
1
Très intéressant. L'Odroid Ubuntu 16.04 est également affecté par ce problème.
Marcus
5

J'ai eu à peu près le même problème. Il s'avère qu'il source-directoryest pris en charge sur mon système, mais n'inclut que les fichiers dont les noms de fichiers sont constitués de lettres, de chiffres, de tirets et de traits de soulignement.

C'est pourquoi mon eth0.conf n'a pas été lu, car il contenait un point.

Sjoerd
la source
Pour tout ce que ça vaut - j'ai vérifié avec plusieurs machines le 14.04 et le 16.04 que les fichiers sans extensions /etc/network/interfaces.dsont très bien obtenus /etc/network/interfacesavec source-directory /etc/network/interfaces.d...;) Également intéressant de noter que dans notre environnement, le gestionnaire de réseau est supprimé des serveurs; trop imprévisible: D
tink
2

Votre noyau 3.10 est trop ancien pour systemd IFF utilisant systemd-v230 ou plus récent .

Selon systemdles exigences du noyau dans github à ( github.com - systemd README ), vous avez besoin de la version> = 3.12 si vous utilisez systemd-v230ou plus récent:

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

Les lignes 37, 38 et 39 sont imprimées ci-dessus.

Vous utilisez l'architecture ARM que je connais franchement peu. La recherche Google me dit que votre armvl7est utilisé par Raspberry Pi et est un noyau 32 bits.

Mise à jour de votre noyau vers les temps modernes

Si vous voulez la dernière protection de sécurité "Dirty COW" ( 21 octobre 2016 ) ( Qu'est-ce que le bogue "Dirty COW", et comment puis-je sécuriser mon système contre lui? ) Plus une foule d'autres correctifs de sécurité, corrections de bogues et système améliorations ( après votre version 2013 ), vous devriez être sur le noyau 4.4.0-47.

Malheureusement, je ne sais pas comment faire cela pour un RaspberryPi. J'ai lié cette question aux personnes qui utilisent RaspberryPi et leur ai demandé de critiquer cette réponse.

WinEunuuchs2Unix
la source
Juste pour confirmer: le processeur ARM du Pi est en effet 32 ​​bits.
Nathan Osman
@NathanOsman Merci d'avoir confirmé ce nouveau sujet pour moi :)
WinEunuuchs2Unix
+1 pour l'avoir signalé. Cependant, veuillez voir ceci . Systemd prend généralement en charge les noyaux vieux de 2 ans, donc même vous avez peut-être raison, je serais surpris que ce soit la cause première. Je vais vérifier la version systemd que j'utilise. Mais même s'il s'agit d'une version récente, cela ne ressemble-t-il pas davantage à un problème d'espace utilisateur? Comment le noyau pourrait-il vous permettre de lire un fichier mais vous empêcher d'en lire un autre? Et la configuration du réseau est clairement appliquée sans problème dans le deuxième cas. [Plus sur le commentaire suivant]
Luis de Arquer
Normalement, je voudrais simplement mettre à jour le noyau et tester, mais cela peut être difficile dans ce cas. Ce système fonctionne sur un ODROID XU4, où la sécurité n'est pas un problème, mais le changement de noyaux peut prendre un certain temps et n'est probablement pas une solution à long terme en raison de la stabilité. Si aucune autre solution ne se présente, je peux l'essayer, mais par curiosité
:)
@NathanOsman En fait, le CPU lui-même est 64 bits sur le Raspberry 3 (mais normalement il est utilisé avec des noyaux 32 bits)
Luis de Arquer