I file in /etc/network/interfaces.d sono stati ignorati, ma non / etc / network / interfaces stesso


19

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

Quando ho quanto segue, la mia configurazione statica viene ignorata:

/ 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

Tuttavia, con quanto segue:

/ 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 configurazione statica viene impostata all'avvio (indipendentemente da quello che ho nelle interfacce.d /).

Nel caso sia rilevante, sto usando una regola udev per rinominare l'interfaccia eth0 (era "enx001e063110c0" ...)


La mia impressione è qualcosa a che fare con la versione 3.10 del kernel che potrebbe non essere più supportata.
WinEunuuchs2Unix

A me non sembra un problema con il kernel. Ma non sono ancora a conoscenza di come funziona l'inizializzazione della rete dopo il passaggio a systemd, non dicendo che si tratta di un problema di systemd
Luis de Arquer,

Solo curioso, perché usi Linux 3.10 invece della versione più recente?
wjandrea,

Il punto sul kernel è che pensavo che stystemd non fosse uscito fino a una versione successiva, ma sono ancora sul mio telefono e non posso confermare.
WinEunuuchs2Unix

@LuisdeArquer Ho risposto al problema del kernel di seguito.
WinEunuuchs2Unix il

Risposte:


28

Penso di averlo trovato. Dal manuale , il problema sembra riguardare la source-directoryparola chiave. Sembra che, dal 16.04, non sia più supportato.

Quindi sostituendo

source-directory /etc/network/interfaces.d

con

source /etc/network/interfaces.d/*

sembra risolvere il problema.


Ha buon per te. +1 per la tenacia :) Non dimenticare di tornare tra due giorni e contrassegnare la tua risposta come risolutiva la domanda (fai clic sul segno di spunta accanto alla tua risposta e
rendila

@ WinEunuuchs2Unix Grazie per il tuo aiuto! :)
Luis de Arquer,

Ciò sembra risolvere anche lo stesso problema con l'attuale versione ( rasp 2018) di raspbian .
iX3,

1
Molto interessante. Anche Odroid Ubuntu 16.04 è interessato da questo problema.
Marcus,

5

Ho avuto approssimativamente lo stesso problema. Si scopre che source-directoryè supportato sul mio sistema, ma include solo file i cui nomi di file sono costituiti da lettere, numeri, trattini e caratteri di sottolineatura.

Ecco perché il mio eth0.conf non è stato letto, perché conteneva un punto.


Per tutto ciò che vale - ho verificato con diverse macchine su 14.04 e 16.04 che i file senza estensioni /etc/network/interfaces.dprovengono proprio da /etc/network/interfacescon source-directory /etc/network/interfaces.d...;) Vale anche la pena notare che nel nostro ambiente il gestore di rete viene rimosso dai server; troppo imprevedibile: D
tink

2

Il tuo kernel 3.10 è troppo vecchio per systemd IFF usando systemd-v230 o più recente .

In base ai systemdrequisiti del kernel in github su ( github.com - systemd README ) è necessaria la versione> = 3.12 se si sta utilizzando systemd-v230o più recente:

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

Le righe 37, 38 e 39 sono stampate sopra.

Stai funzionando con l'architettura ARM di cui so francamente poco. Ricerca Google mi dice che armvl7è usato da Raspberry Pi ed è un kernel a 32 bit.

Aggiornamento del tuo kernel ai tempi moderni

Se desideri l'ultima protezione di sicurezza "Dirty COW" ( 21 ottobre 2016 ) ( Che cos'è il bug "Dirty COW" e come posso proteggere il mio sistema da esso? ) Più una serie di altre patch di sicurezza, correzioni di bug e sistema miglioramenti ( dopo la versione del 2013 ) dovresti essere sul kernel 4.4.0-47.

Sfortunatamente non so come farlo per un RaspberryPi. Ho collegato questa domanda alle persone che usano RaspberryPi e ho chiesto loro di criticare questa risposta.


Giusto per confermare: la CPU ARM nel Pi è davvero a 32 bit.
Nathan Osman,

@NathanOsman Grazie per avermi confermato questa nuova area tematica :)
WinEunuuchs2Unix

+1 per la precisazione. Tuttavia, per favore vedi questo . Systemd generalmente supporta 2 vecchi kernel, quindi anche tu potresti avere ragione, sarei sorpreso che questa sia la causa principale. Controllerò la versione di systemd che sto eseguendo. Ma anche se si tratta di una versione nuova, non sembra più un problema di spazio utente? Come può il kernel permetterti di leggere un file ma impedirti di leggerne un altro? E la configurazione di rete è chiaramente applicata senza problemi nel secondo caso. [Altre informazioni sul prossimo commento]
Luis de Arquer,

Normalmente aggiornerei il kernel e testerei, ma in questo caso potrebbe essere difficile. Questo sistema funziona su un ODROID XU4, dove la sicurezza non è un problema, ma cambiare kernel può richiedere del tempo e probabilmente non è una soluzione a lungo termine a causa della stabilità. Se non viene fuori nessun'altra soluzione, potrei provarlo anche solo per curiosità
:)

@NathanOsman In realtà, la CPU stessa è a 64 bit su Raspberry 3 (ma normalmente viene utilizzata con kernel a 32 bit)
Luis de Arquer,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.