Arquivos no /etc/network/interfaces.d ignorados, mas não no / etc / network / interfaces em si

19

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

Quando tenho o seguinte, minha configuração estática é ignorada:

/ 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

No entanto, com o seguinte:

/ 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

a configuração estática é definida na inicialização (independentemente do que eu tenho em interfaces.d /).

Caso seja relevante, estou usando uma regra do udev para renomear a interface eth0 (costumava ser "enx001e063110c0" ...)

Luis de Arquer
fonte
Meu palpite é algo a ver com a versão 3.10 do Kernel que talvez nem seja mais suportada.
WinEunuuchs2Unix
Realmente não soa como um problema de kernel para mim. Mas estou à nora mas, a forma como a rede funciona de inicialização após a mudança para systemd -não dizendo que é uma questão systemd
Luis de Arquer
Apenas curioso, por que você está executando o Linux 3.10 em vez da versão mais recente?
Wjandrea
O ponto sobre o kernel é que eu pensei que o stystemd não foi lançado até uma versão posterior, mas ainda estou no meu telefone e não posso confirmar.
WinEunuuchs2Unix
@LuisdeArquer Respondi ao problema do kernel abaixo.
WinEunuuchs2Unix 26/11/16

Respostas:

28

Eu acho que encontrei. No manual , o problema parece estar com a source-directorypalavra - chave. Parece que, desde 16.04, ele não é mais suportado.

Então substituindo

source-directory /etc/network/interfaces.d

com

source /etc/network/interfaces.d/*

parece corrigir o problema.

Luis de Arquer
fonte
Ha é bom para você. +1 para tenacidade :) Não se esqueça de voltar em dois dias e marcar sua resposta como resolver a questão (clique na marca de seleção ao lado de sua resposta e torná-lo verde)
WinEunuuchs2Unix
@ WinEunuuchs2Unix Obrigado pela ajuda! :)
Luis de Arquer 27/11
Isso parece corrigir o mesmo problema da versão atual (março de 2018) do raspbian também.
IX3 3/04
1
Muito interessante. O Odroid Ubuntu 16.04 também é afetado por esse problema.
Marcus
5

Eu tive aproximadamente o mesmo problema. Acontece que ele source-directoryé suportado no meu sistema, mas inclui apenas arquivos cujos nomes de arquivos consistem em letras, números, traços e sublinhados.

É por isso que meu eth0.conf não foi lido, porque continha um ponto.

Sjoerd
fonte
Por tudo o que vale a pena - eu verifiquei com várias máquinas nas versões 14.04 e 16.04 que os arquivos sem extensões /etc/network/interfaces.dsão originados muito bem /etc/network/interfacescom source-directory /etc/network/interfaces.d...;) Também vale a pena notar que, em nosso ambiente, o gerenciador de rede é removido dos servidores; muito imprevisível: D
tink
2

Seu Kernel 3.10 é muito antigo para o systemd IFF usando o systemd-v230 ou mais recente .

De acordo com systemdos requisitos do kernel no github em ( github.com - systemd README ), você precisará da versão> = 3.12 se estiver usando systemd-v230ou mais recente:

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

As linhas 37, 38 e 39 são impressas acima.

Você está executando a arquitetura ARM, sobre a qual eu francamente sei pouco. A pesquisa do Google diz que você armvl7é usado pelo Raspberry Pi e é um kernel de 32 bits.

Atualizando seu Kernel para os tempos modernos

Se você deseja a proteção de segurança mais recente ( 21 de outubro de 2016 ) "Dirty COW" (o que é o bug "Dirty COW" e como posso proteger meu sistema contra isso? ), Além de uma série de outras correções de segurança, correções de bugs e sistema melhorias ( após a versão 2013 ), você deve estar no kernel 4.4.0-47.

Infelizmente eu não sei como fazer isso para um RaspberryPi. Vinculei essa pergunta a pessoas que usam RaspberryPi e pedi que criticassem essa resposta.

WinEunuuchs2Unix
fonte
Apenas para confirmar: a CPU do ARM no Pi é realmente de 32 bits.
22616 Nathan Osman
@NathanOsman Obrigado por confirmar esta nova área de assunto para mim :) #
WinEunuuchs2Unix 26/16/16
+1 por apontar isso. No entanto, veja isso . O Systemd geralmente oferece suporte a kernels antigos de 2 anos; portanto, mesmo que você esteja certo, ficaria surpreso que essa seja a causa raiz. Vou verificar a versão do systemd que estou executando. Mas, mesmo que seja uma versão nova, não soa mais como um problema no espaço do usuário? Como o kernel pode permitir que você leia um arquivo, mas impede que ele leia outro? E a configuração de rede é claramente aplicada sem problemas no segundo caso. [Mais no próximo comentário]
Luis de Arquer 27/11
Normalmente, eu apenas atualizaria o kernel e testaria, mas pode ser difícil neste caso. Esse sistema é executado em um ODROID XU4, onde a segurança não é uma preocupação, mas a mudança de kernels pode levar algum tempo e provavelmente não é uma solução de longo prazo devido à estabilidade. Se nenhuma outra solução surge, posso experimentar embora só por curiosidade:)
Luis de Arquer
@NathanOsman Na verdade, a CPU em si é de 64 bits no framboesa 3 (mas normalmente ele é usado com sementes de 32 bits)
Luis de Arquer