Файли в /etc/network/interfaces.d ігноруються, але не / etc / network / інтерфейси


19

Для Ubuntu 16.04 LTS (GNU / Linux 3.10.96-113 armv7l)

Коли у мене є наступне, моя статична конфігурація ігнорується:

/ і т.д. / мережа / інтерфейси

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

Однак із наступним:

/ і т.д. / мережа / інтерфейси

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

статична конфігурація встановлюється під час завантаження (незалежно від того, що я маю в interfaces.d /).

У разі, якщо це доречно, я використовую правило udev для перейменування інтерфейсу eth0 (це було раніше "enx001e063110c0" ...)


Моя думка пов'язана з версією Kernel 3.10, яка може навіть більше не підтримуватися.
WinEunuuchs2Unix

Це не дуже схоже на проблему з ядром. Але я ще не знаю, як працює ініціалізація мережі після переходу на systemd - не кажу, що це
системна

Цікаво, чому ви використовуєте Linux 3.10 замість останньої версії?
wjandrea

Справа в ядрі полягає в тому, що я думав, що stystemd не вийшов до більш пізньої версії, але я все ще в телефоні і не можу підтвердити.
WinEunuuchs2Unix

@LuisdeArquer Я відповів на проблему з ядром нижче.
WinEunuuchs2Unix

Відповіді:


28

Я думаю, що знайшов. З посібника , здається, проблема пов'язана з source-directoryключовим словом. Схоже, що з 16.04 він більше не підтримується.

Тож замінюючи

source-directory /etc/network/interfaces.d

з

source /etc/network/interfaces.d/*

здається, вирішує проблему.


Добре вам. +1 за завзятість :) Не забудьте повернутися через два дні і позначте свою відповідь як вирішення питання (натисніть прапорець біля своєї відповіді та зробіть її зеленою)
WinEunuuchs2Unix

@ WinEunuuchs2Unix Дякую за допомогу! :)
Луїс де Аркер

Це, здається, вирішить ідентичну проблему з поточною (березень 2018 року) версією raspbian .
iX3

1
Дуже цікаво. Ця проблема також впливає на Odroid Ubuntu 16.04.
Маркус

5

У мене була приблизно однакова проблема. Виявляється, source-directoryпідтримується в моїй системі, але включає лише файли, назви файлів яких складаються з літер, цифр, тире та підкреслення.

Ось чому мій eth0.conf не прочитав, оскільки він містив крапку.


І все це варто - я перевірив на декількох машинах 14.04 і 16.04, що файли без розширень /etc/network/interfaces.dотримуються просто чудово /etc/network/interfacesз source-directory /etc/network/interfaces.d...;) Також варто зазначити, що в нашому середовищі мережевий менеджер видаляється з серверів; занадто непередбачуваний: D
тинк

2

Ваш ядро ​​3.10 занадто давнє для systemd IFF, використовуючи systemd-v230 або новішу версію .

Відповідно до systemdвимог ядра в github за адресою ( github.com - systemd README ), вам потрібна версія> = 3.12, якщо ви використовуєте systemd-v230чи новішу:

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

Рядки 37, 38 та 39 надруковані вище.

Ви працюєте під архітектурою ARM, про яку я, відверто кажучи, мало що знаю. Пошук Google повідомляє, що ви armvl7використовуєте Raspberry Pi і є 32-бітним ядром.

Оновлення вашого ядра до сучасних часів

Якщо ви хочете останнього ( 21 жовтня 2016 р. ) Захисту "брудної COW" ( що таке помилка "Брудна корова", і як я можу захистити свою систему від неї? ), А також безліч інших виправлень безпеки, виправлень помилок та системи удосконалення ( після вашої версії 2013 року ) ви повинні мати ядро ​​4.4.0-47.

На жаль, я не знаю, як це зробити для RaspberryPi. Я пов’язав це питання з людьми, які використовують RaspberryPi, і попросив їх критикувати цю відповідь.


Просто для підтвердження: процесор ARM в Pi дійсно є 32-розрядним.
Натан Осман

@NathanOsman Дякую за підтвердження цієї нової для мене теми :)
WinEunuuchs2Unix

+1, щоб вказати на це. Однак, будь ласка, дивіться це . Система, як правило, підтримує 2-х старих ядер, тож навіть ви можете мати рацію, я би був здивований, що це першопричина. Я перевірю системну версію, яку я запускаю. Але навіть якщо це нова версія, це не схоже на проблему з простором користувачів? Як ядро ​​могло дозволити вам читати один файл, але перешкоджало читати ще один? А конфігурація мережі чітко застосовується без проблем у другому випадку. [Детальніше про наступний коментар]
Луїс де Аркер

Зазвичай я б просто оновив ядро ​​і тестував, але це може бути важко в цьому випадку. Ця система працює на ODROID XU4, де безпека не викликає особливих проблем, але зміна ядер може зайняти деякий час, і, ймовірно, не є довгостроковим рішенням через стабільність. Якщо не
знайдеться

@NathanOsman Насправді, сам CPU має 64 біт на Raspberry 3 (але зазвичай він використовується з 32-бітовими ядрами)
Луїс де Аркер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.