Ubuntu 16.04.3: не удалось запустить сетевые интерфейсы повышения

У меня есть Ubuntu 16.04.3 LTS с КАНУНОМ-NG, работая сверху его. Я столкнулся с известной проблемой с Predictable-Network-Interface-Names и изменил имена интерфейса на старый стиль, но что-то все еще неправильно.

Во время начальной загрузки я вижу "отказавший для запуска сообщения" сетевых интерфейсов повышения. Затем это - то, что показывает systemctl:

* networking.service - Raise network interfaces
   Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
  Drop-In: /run/systemd/generator/networking.service.d
           `-50-insserv.conf-$network.conf
   Active: failed (Result: exit-code) since Tue 2017-11-14 07:06:04 EST; 20min ago
     Docs: man:interfaces(5)
  Process: 677 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1/FAILURE)
  Process: 570 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [ -n "$(ifquery --read-environment --list --exclude=lo)" ] && udevadm settle (
 Main PID: 677 (code=exited, status=1/FAILURE)

Nov 14 07:06:03 eve-ng ifup[677]: Waiting for pnet2 to get ready (MAXWAIT is 32 seconds).
Nov 14 07:06:04 eve-ng ifup[677]: SIOCADDRT: File exists
Nov 14 07:06:04 eve-ng ifup[677]: Failed to bring up pnet2.
Nov 14 07:06:04 eve-ng ifup[677]: Waiting for pnet3 to get ready (MAXWAIT is 32 seconds).
Nov 14 07:06:04 eve-ng ifup[677]: interface eth4 does not exist!
Nov 14 07:06:04 eve-ng ifup[677]: Waiting for pnet4 to get ready (MAXWAIT is 32 seconds).
Nov 14 07:06:04 eve-ng systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
Nov 14 07:06:04 eve-ng systemd[1]: Failed to start Raise network interfaces.
Nov 14 07:06:04 eve-ng systemd[1]: networking.service: Unit entered failed state.
Nov 14 07:06:04 eve-ng systemd[1]: networking.service: Failed with result 'exit-code'

Однако мои интерфейсы успешно переименованы: dmesg | grep eth подтверждает, что никакой renamig не происходит во время начальной загрузки.

Все интерфейсы в порядке, я могу к SSH к этому хосту.

Существует четыре вещи, которые я уже сделал (и ни один не работал):

Вы отключаете присвоение фиксированных имен, так, чтобы непредсказуемые имена ядра использовались снова. Для этого, просто файл правила udev's маски для политики по умолчанию: ln-s/dev/null/etc/udev/rules.d/80-net-setup-link.rules//сделанный

Вы передаете сеть ifnames=0 командной строке ядра//сделанный

Вы создаете свою собственную ручную схему именования, например, путем именования интерфейсов "internet0", "dmz0" или "lan0". Поскольку это создает Ваши собственные .link файлы в/etc/systemd/network/, которые выбирают явное имя или лучшую схему именования для одной, некоторых или всех Ваших интерфейсов.//сделанный:

cat /etc/systemd/network/10-eth.link
[Match]
MACAddress=00:0c:29:20:c2:66
[Link]
Name=eth0
[Match]
MACAddress=00:0c:29:20:c2:70
[Link]
Name=eth1
[Match]
MACAddress=00:0c:29:20:c2:7a
[Link]
Name=eth2
[Match]
MACAddress=00:0c:29:20:c2:84
Name=eth3

Я действительно создавал новый файл 10, переименовывают network.rules в/etc/udev/rules.d/и добавил следующее содержание к нему: ПОДСИСТЕМА == "сеть", ДЕЙСТВИЕ == "добавляет", ATTR {адрес} == "ff:ff:ff:ff:ff:ff", ИМЯ = "eth0"//сделанный:

cat /etc/udev/rules.d/10-rename-network.rules
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:0c:29:20:c2:66", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:0c:29:20:c2:70", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:0c:29:20:c2:7a", NAME="eth2"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:0c:29:20:c2:84", NAME="eth3"

Есть ли что-нибудь, что я пропускаю?

1
задан 14 November 2017 в 16:03

1 ответ

Причина

Проблема была вызвана Predictable-Network-Interface-Names от systemd/udev. Возможное решение

Согласно этому источнику Вы можете также:

You disable the assignment of fixed names, so that the unpredictable kernel names are used again. For this, simply mask udev's rule file for the default policy: ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
You create your own manual naming scheme, for example by naming your interfaces "internet0", "dmz0" or "lan0". For that create your own .link files in /etc/systemd/network/, that choose an explicit name or a better naming scheme for one, some, or all of your interfaces. See systemd.link(5) for more information.
You pass the net.ifnames=0 on the kernel command line

Прикладные решения

Я действительно создавал новый файл 10, переименовывают network.rules в/etc/udev/rules.d/и добавил следующее содержание к нему:

ПОДСИСТЕМА == "сеть", ДЕЙСТВИЕ == "добавляет", ATTR {адрес} == "ff:ff:ff:ff:ff:ff", ИМЯ = "eth0"

где

eth0 = desired network interface name, used in /etc/network/interfaces
ff:ff:ff:ff:ff:ff = hardware mac address of the network device

Я рекомендовал бы перезагрузить после завершения этого, чтобы удостовериться, что изменение является липким.

0
ответ дан 8 December 2019 в 03:24

Другие вопросы по тегам:

Похожие вопросы: