Не удалось запустить Raise network interfaces после обновления до Ubuntu 18.04.1 LTS.

Вопрос или проблема

ifup зависает, и загрузка занимает много времени при запуске и завершении.

me@K501L:~$ systemctl status networking.service
● networking.service - Поднять сетевые интерфейсы
   Загружено: загружено (/lib/systemd/system/networking.service; включено; предустановка вендора: включено)
   Активен: неудача (Результат: время ожидания) с ср 2018-08-01 13:24:54 CEST; 1ч 0мин назад
     Документы: man:interfaces(5)
  Процесс: 1049 ExecStart=/sbin/ifup -a --read-environment (код=убит, сигнал=TERM)

  Процесс: 918 ExecStartPre=/bin/sh -c [ "$CONFIGURE_INTERFACES" != "no" ] && [ -n "$(ifquery --read-environment --list --exclude=lo)" ] &&
 Основной PID: 1049 (код=убит, сигнал=TERM)

01 авг 13:19:52 K501L systemd[1]: Запуск поднятия сетевых интерфейсов...
01 авг 13:19:55 K501L ifup[1049]: проверьте кабель
01 авг 13:20:00 K501L ifup[1049]: /sbin/ifup: ожидает блокировку на /run/network/ifstate.enp2s0
01 авг 13:24:54 K501L systemd[1]: networking.service: Операция запуска превысила время ожидания. Завершение.
01 авг 13:24:54 K501L systemd[1]: networking.service: Основной процесс завершился, код=убит, статус=15/TERM
01 авг 13:24:54 K501L systemd[1]: networking.service: Не удалось с результатом 'время ожидания'.
01 авг 13:24:54 K501L systemd[1]: Не удалось запустить поднятие сетевых интерфейсов.

/etc/interfaces

#LAN
auto enp2s0
iface enp2s0 inet static
    address 10.0.0.2/24 
    gateway 10.0.0.1
    dns-nameserver 10.0.0.1

хотя там написано, что он не поднялся:

2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000

/etc/resolv.conf

# Динамический resolv.conf(5) файл для glibc resolver(3), сгенерированный resolvconf(8)
#     НЕ ИЗМЕНЯЙТЕ ЭТОТ ФАЙЛ ВРУЧНУЮ -- ВАШИ ИЗМЕНЕНИЯ БУДУТ ЗАПИСАНЫ ПЕРЕПИСАНЫ
# 127.0.0.53 это системный resolver stub.
# выполните "systemd-resolve --status", чтобы увидеть подробности о фактических DNS-серверах.
nameserver 10.0.0.1
nameserver 127.0.0.53

он работает, если я удаляю эту строку из /etc/interfaces

dns-nameserver 10.0.0.1

это связано с avahi-daemon, после обновления Bionic:

avahi-daemon-check-dns.sh висит бесконечно

Это можно исправить, удалив avahi-daemon:

apt-get remove avahi-daemon

или отредактировав “/usr/lib/avahi/avahi-daemon-check-dns.sh”:

в dns_has_local() замените

OUT=`LC_ALL=C host -t soa local. 2>&1  

на

OUT=`LC_ALL=C /usr/bin/timeout 5 host -t soa local. 2>&1`

и вы будете зависать только пять секунд

Ответ или решение

Решение проблемы с запуском сетевых интерфейсов после обновления до Ubuntu 18.04.1 LTS

Обновление вашей системы до Ubuntu 18.04.1 LTS может привести к различным проблемам с сетью, таким как длительное время загрузки или зависание при запуске службы сетевых интерфейсов. В данном случае, сообщение об ошибке:

Failed to start Raise network interfaces.

сопровождается ошибкой таймаута в службе networking.service, причиной которой является блокировка, связанная с файлом /run/network/ifstate.enp2s0.

Анализ проблемы

Как показано в предоставленных данных:

  1. Статус службы networking указывает на таймаут:

    Active: failed (Result: timeout)
  2. Сообщения от ifup свидетельствуют о том, что он ожидает разблокировки:

    /sbin/ifup: waiting for lock on /run/network/ifstate.enp2s0
  3. Конфигурация /etc/interfaces:

    auto enp2s0
    iface enp2s0 inet static
       address 10.0.0.2/24 
       gateway 10.0.0.1
       dns-nameserver 10.0.0.1
  4. Интересно, что функционирование сети восстанавливается после удаления строки:

    dns-nameserver 10.0.0.1

Согласно вашему описанию, проблема происходит из-за взаимодействия между avahi-daemon и конфигурацией сети, в частности, вызова avahi-daemon-check-dns.sh.

Решение проблемы

Есть несколько методов для решения данной проблемы:

  1. Удаление avahi-daemon:
    Если ваш сервер не требует автоматического обнаружения сетевых сервисов, вы можете решить проблему, просто удалив avahi-daemon командой:

    sudo apt-get remove avahi-daemon
  2. Изменение скрипта avahi-daemon-check-dns.sh:
    Если вам нужно сохранить avahi-daemon, вы можете внести изменения в скрипт для установки таймаута.
    Для этого откройте файл:

    sudo nano /usr/lib/avahi/avahi-daemon-check-dns.sh

    Найдите строку:

    OUT=`LC_ALL=C host -t soa local. 2>&1`

    Замените её на:

    OUT=`LC_ALL=C /usr/bin/timeout 5 host -t soa local. 2>&1`

    Это позволит вашей системе продолжать выполнение, даже если DNS-запросы занимают слишком много времени, установив лимит в 5 секунд.

Заключение

После внесения изменений рекомендуется перезагрузить вашу систему или перезапустить сетевые службы:

sudo systemctl restart networking.service

Таким образом, указанные методы позволяют устранить зависание службы сетевых интерфейсов и сократить время загрузки системы. Если у вас остались вопросы или возникли сложности в процессе выполнения, не стесняйтесь обращаться за помощью.

Оцените материал
Добавить комментарий

Капча загружается...