Dateien in /etc/network/interfaces.d werden ignoriert, nicht jedoch / etc / network / interfaces

19

Für Ubuntu 16.04 LTS (GNU / Linux 3.10.96-113 armv7l)

Wenn ich Folgendes habe, wird meine statische Konfiguration ignoriert:

/ 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

Mit den folgenden:

/ 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

Die statische Konfiguration wird beim Booten festgelegt (unabhängig davon, was ich in interfaces.d / habe).

Falls es relevant ist, benenne ich die eth0-Schnittstelle mit einer udev-Regel um (früher war es "enx001e063110c0" ...)

Luis de Arquer
quelle
Meine Vermutung hat etwas mit Kernel-Version 3.10 zu tun, das möglicherweise nicht einmal mehr unterstützt wird.
WinEunuuchs2Unix
Es klingt für mich nicht wirklich nach einem Kernel-Problem. Aber ich weiß noch nicht, wie die Netzwerkinitialisierung nach dem Wechsel zu systemd funktioniert - nicht, dass es sich um ein systemd-Problem handelt
Luis de Arquer,
Nur neugierig, warum läuft Linux 3.10 statt der neuesten Version?
wjandrea
Der Punkt über den Kernel ist, dass ich dachte, dass stystemd erst in einer späteren Version herauskommt, aber ich bin immer noch auf meinem Handy und kann es nicht bestätigen.
WinEunuuchs2Unix
@ LuisdeArquer Ich habe das Kernel-Problem unten beantwortet.
WinEunuuchs2Unix

Antworten:

28

Ich glaube, ich habe es gefunden. Aus dem Handbuch scheint das Problem mit dem source-directorySchlüsselwort zu sein. Es sieht so aus, als ob es seit 16.04 nicht mehr unterstützt wird.

Also austauschen

source-directory /etc/network/interfaces.d

mit

source /etc/network/interfaces.d/*

scheint das Problem zu beheben.

Luis de Arquer
quelle
Ha gut für dich. +1 für Hartnäckigkeit :) Vergessen Sie nicht, in zwei Tagen zurückzukommen und Ihre Antwort als Lösung der Frage zu markieren (klicken Sie auf das Häkchen neben Ihrer Antwort und machen Sie es grün)
WinEunuuchs2Unix
@ WinEunuuchs2Unix Danke für deine Hilfe! :)
Luis de Arquer
Dies scheint auch das identische Problem mit der aktuellen (März 2018) Version von Raspbian zu beheben .
iX3
1
Sehr interessant. Das Odroid Ubuntu 16.04 ist ebenfalls von diesem Problem betroffen.
Marcus
5

Ich hatte ungefähr das gleiche Problem. Es hat sich herausgestellt, dass source-directorydies auf meinem System unterstützt wird, aber nur Dateien, deren Dateinamen aus Buchstaben, Zahlen, Bindestrichen und Unterstrichen bestehen.

Deshalb wurde meine eth0.conf nicht gelesen, weil sie einen Punkt enthielt.

Sjoerd
quelle
Für alle im Wert - ich mit mehreren Maschinen auf 14,04 prüft haben und 16.04 dass Dateien w / o Erweiterungen in /etc/network/interfaces.dsourced erhält ganz gut aus /etc/network/interfacesmit source-directory /etc/network/interfaces.d...;) Auch erwähnenswert, dass in unserer Umgebung Netzwerk-Manager von den Servern entfernt wird; zu unvorhersehbar: D
Tink
2

Ihr Kernel 3.10 ist zu alt für systemd IFF mit systemd-v230 oder neuer .

Entsprechend den systemdKernelanforderungen in github unter ( github.com - systemd README ) benötigen Sie Version> = 3.12, wenn Sie Folgendes verwenden systemd-v230oder neuer:

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

Die Zeilen 37, 38 und 39 sind oben gedruckt.

Sie arbeiten mit einer ARM-Architektur, von der ich ehrlich gesagt wenig weiß. Die Google-Suche gibt an, dass Sie armvl7von Raspberry Pi verwendet werden und ein 32-Bit-Kernel sind.

Aktualisieren Sie Ihren Kernel auf die moderne Zeit

Wenn Sie den neuesten ( 21. Oktober 2016 ) "Dirty COW" -Sicherheitsschutz ( Was ist der "Dirty COW" -Fehler und wie kann ich mein System davor schützen ? ) Sowie eine Vielzahl weiterer Sicherheitspatches, Fehlerkorrekturen und -systeme wünschen Verbesserungen ( nach Ihrer Version 2013 ) sollten Sie auf Kernel 4.4.0-47 sein.

Leider weiß ich nicht, wie man das für einen RaspberryPi macht. Ich habe diese Frage mit Leuten verknüpft, die RaspberryPi verwenden, und sie gebeten, diese Antwort zu kritisieren.

WinEunuuchs2Unix
quelle
Nur zur Bestätigung: Die ARM-CPU im Pi ist in der Tat 32-Bit.
Nathan Osman
@ NathanOsman Vielen Dank für die Bestätigung dieses neuen Themenbereichs für mich :)
WinEunuuchs2Unix
+1 für diesen Hinweis. Bitte sehen Sie dies jedoch . Systemd unterstützt im Allgemeinen 2 Jahre alte Kernel. Selbst wenn Sie Recht haben, wäre ich überrascht, dass dies die Hauptursache ist. Ich überprüfe die Systemversion, die ich verwende. Aber selbst wenn es sich um eine neue Version handelt, klingt es dann nicht eher nach einem User-Space-Problem? Wie kann der Kernel Ihnen erlauben, eine Datei zu lesen, aber Sie davon abhalten, eine andere zu lesen? Und die Netzwerkkonfiguration wird im zweiten Fall klar und problemlos angewendet. [Mehr zum nächsten Kommentar]
Luis de Arquer
Normalerweise würde ich nur den Kernel aktualisieren und testen, aber in diesem Fall kann es schwierig sein. Dieses System läuft auf einem ODROID XU4, bei dem die Sicherheit keine Rolle spielt, das Wechseln des Kernels jedoch einige Zeit in Anspruch nehmen kann und aufgrund der Stabilität wahrscheinlich keine langfristige Lösung darstellt. Wenn es keine andere Lösung gibt, kann ich es aus Neugier versuchen
:)
@ NathanOsman Eigentlich ist die CPU selbst 64-Bit auf der Himbeere 3 (aber normalerweise wird es mit 32-Bit-Kernel verwendet)
Luis de Arquer