File di /etc/network/interfaces.d diabaikan, tetapi tidak / etc / network / interfaces sendiri

19

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

Ketika saya memiliki yang berikut ini, konfigurasi statis saya diabaikan:

/ 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

Namun, dengan yang berikut ini:

/ 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

konfigurasi statis diatur saat boot (terlepas dari apa yang saya miliki di interfaces.d /).

Dalam hal ini relevan, saya menggunakan aturan udev untuk mengubah nama antarmuka eth0 (dulu "enx001e063110c0" ...)

Luis de Arquer
sumber
Firasat saya ada hubungannya dengan Kernel versi 3.10 yang bahkan mungkin tidak didukung lagi.
WinEunuuchs2Unix
Bagi saya, itu tidak terdengar seperti masalah kernel. Tapi saya belum mengerti bagaimana inisialisasi jaringan bekerja setelah pindah ke systemd -tidak mengatakan itu adalah masalah systemd
Luis de Arquer
Hanya ingin tahu, mengapa Anda menjalankan Linux 3.10 bukan versi terbaru?
wjandrea
Intinya tentang kernel adalah saya pikir stystemd tidak keluar sampai versi yang lebih baru tetapi saya masih menggunakan ponsel saya dan tidak dapat mengkonfirmasi.
WinEunuuchs2Unix
@LuisdeArquer Saya telah menjawab masalah kernel di bawah ini.
WinEunuuchs2Unix

Jawaban:

28

Saya rasa saya menemukannya. Dari manual , masalahnya tampaknya dengan source-directorykata kunci. Tampaknya, sejak 16.04, tidak didukung lagi.

Jadi gantikan

source-directory /etc/network/interfaces.d

dengan

source /etc/network/interfaces.d/*

tampaknya memperbaiki masalah.

Luis de Arquer
sumber
Ha bagus untukmu. +1 untuk kegigihan :) Jangan lupa untuk kembali dalam dua hari dan tandai jawaban Anda sebagai menyelesaikan pertanyaan (klik tanda centang di sebelah jawaban Anda dan buatlah hijau)
WinEunuuchs2Unix
@ WinEunuuchs2Unix Terima kasih atas bantuan Anda! :)
Luis de Arquer
Ini sepertinya memperbaiki masalah yang sama dengan versi raspbian saat ini (Maret 2018) .
iX3
1
Sangat menarik. Ubuntu 16,04 Odroid dipengaruhi oleh masalah ini juga.
Marcus
5

Saya memiliki masalah yang kira-kira sama. Ternyata source-directorydidukung pada sistem saya, tetapi hanya menyertakan file yang nama file-nya terdiri dari huruf, angka, tanda hubung dan garis bawah.

Itulah sebabnya eth0.conf saya tidak dibaca, karena mengandung titik.

Sjoerd
sumber
Untuk semua itu layak - saya telah diverifikasi dengan beberapa mesin pada 14,04 dan 16,04 bahwa file tanpa ekstensi di /etc/network/interfaces.ddapatkan baik-baik saja dari /etc/network/interfacesdengan source-directory /etc/network/interfaces.d...;) Juga perlu dicatat bahwa dalam lingkungan kami manajer jaringan akan dihapus dari server; terlalu tidak terduga: D
tink
2

Kernel 3.10 Anda terlalu tua untuk systemd IFF menggunakan systemd-v230 atau yang lebih baru .

Menurut systemdpersyaratan kernel di github di ( github.com - systemd README ) Anda memerlukan versi> = 3.12 jika Anda menggunakan systemd-v230atau lebih baru:

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

Baris 37, 38 dan 39 dicetak di atas.

Anda berjalan di bawah arsitektur ARM yang terus terang saya tahu sedikit tentang. Pencarian Google memberi tahu saya bahwa Anda armvl7digunakan oleh Raspberry Pi dan merupakan kernel 32 bit.

Memperbarui Kernel Anda ke zaman modern

Jika Anda menginginkan perlindungan keamanan "Dirty COW" terbaru ( 21 Oktober 2016 ) ( Apa itu bug "Dirty COW", dan bagaimana saya bisa mengamankan sistem saya terhadapnya? ) Plus sejumlah patch keamanan lainnya, perbaikan bug dan sistem perbaikan ( setelah versi 2013 Anda), Anda harus menggunakan kernel 4.4.0-47.

Sayangnya saya tidak tahu bagaimana melakukan itu untuk RaspberryPi. Saya telah menautkan pertanyaan ini kepada orang-orang yang menggunakan RaspberryPi dan telah meminta mereka untuk mengkritik jawaban ini.

WinEunuuchs2Unix
sumber
Hanya untuk mengonfirmasi: CPU ARM di Pi memang 32-bit.
Nathan Osman
@NathanOsman Terima kasih telah mengonfirmasi area subjek baru ini untuk saya :)
WinEunuuchs2Unix
+1 untuk menunjukkan ini. Namun, tolong lihat ini . Systemd umumnya mendukung kernel lama 2th, jadi meskipun Anda mungkin benar, saya akan terkejut bahwa ini adalah penyebab utamanya. Saya akan memeriksa versi systemd yang saya jalankan. Tetapi bahkan jika itu adalah versi yang agak baru, bukankah itu terdengar lebih seperti masalah userspace? Bagaimana kernel memungkinkan Anda membaca satu file tetapi menghentikan Anda dari membaca yang lain? Dan konfigurasi jaringan jelas diterapkan tanpa masalah dalam kasus kedua. [Lebih lanjut tentang komentar berikutnya]
Luis de Arquer
Biasanya saya hanya akan memutakhirkan kernel dan menguji, tetapi mungkin sulit dalam hal ini. Sistem ini berjalan pada ODROID XU4, di mana keamanan tidak menjadi masalah, tetapi mengubah kernel dapat memakan waktu, dan mungkin bukan solusi jangka panjang karena stabilitas. Jika tidak ada solusi lain yang muncul, saya dapat mencobanya meskipun hanya untuk rasa ingin tahu
:)
@NathanOsman Sebenarnya, CPU itu sendiri adalah 64 bit pada Raspberry 3 (tetapi biasanya digunakan dengan kernel 32 bit)
Luis de Arquer