Сети

ifup@ens3.service Ubuntu 20.04: failed to bring up ens3

Разбираем сервис ifup@ens3 в Ubuntu 20.04: за что отвечает, почему ошибка failed to bring up ens3 и xtables lock от iptables. Конфликт с Netplan. Как отключить, если сеть работает через ubuntu netplan настройка сети.

За что отвечает сервис ifup@ens3.service в Ubuntu 20.04? Почему он не запускается с ошибкой ‘failed to bring up ens3’ и нужно ли его восстанавливать, если сетевой интерфейс работает и интернет доступен?

Статус сервиса:

● ifup@ens3.service - ifup for ens3
 Loaded: loaded (/lib/systemd/system/ifup@.service; static; vendor preset: enabled)
 Active: failed (Result: exit-code)

Ключевые ошибки в логах:

  • Another app is currently holding the xtables lock. Perhaps you want to use the -w option?
  • run-parts: /etc/network/if-pre-up.d/iptables exited with return code 4
  • ifup: failed to bring up ens3

Сервис ifup@ens3.service в Ubuntu 20.04 отвечает за запуск утилиты ifup для сетевого интерфейса ens3 по legacy-системе ifupdown, которая читает настройки из /etc/network/interfaces. Ошибка failed to bring up ens3 возникает из-за конфликта с Netplan (стандартным инструментом настройки сети Ubuntu), блокировки xtables lock от скриптов iptables Ubuntu в /etc/network/if-pre-up.d/ и отсутствия описания ens3 в interfaces-файле. Если интерфейс работает и интернет доступен через Netplan, сервис бесполезен — его можно смело отключить, чтобы избавиться от логов.


Содержание


Что отвечает сервис ifup@ens3.service

Представьте: вы обновили систему, и в логах systemd мелькает странный failed-сервис. ifup@ens3.service — это шаблонный systemd-юнит из /lib/systemd/system/ifup@.service. Он вызывает команду ifup ens3, которая поднимает интерфейс на основе конфига ifupdown — старой, но живучей системы из Debian/Ubuntu.

Что именно делает? Парсит /etc/network/interfaces (или связанные файлы). Если там stanza для ens3:

auto ens3
iface ens3 inet static
 address 192.168.1.10/24
 gateway 192.168.1.1

То ifup применит IP, роуты, DNS. Перед этим запустит скрипты из /etc/network/if-pre-up.d/ и if-up.d/. Звучит полезно? В Ubuntu 20.04 — не всегда. Этот сервис static (vendor preset: enabled), то есть автозапускается при boot, но только если интерфейс описан в legacy-файле.

В новых Ubuntu netplan взял на себя роль босса сети. А ifupdown? Это relic из эпохи до systemd-networkd. Если ens3 не в interfaces — сервис даже не знает, что с ним делать. Отсюда и “unknown interface”.

Коротко: отвечает за legacy-подъем ens3. Но в 99% случаев на серверах Ubuntu 20.04 — мертвый груз.


Почему не запускается с ошибкой failed to bring up ens3

Логи не врут: ifup: failed to bring up ens3. Почему? Разберём по шагам.

Во-первых, интерфейс уже UP. Проверьте ip a show ens3 — увидите <BROADCAST,MULTICAST,UP,LOWER_UP>. Кто поднял? Netplan или systemd-networkd. Они стартуют раньше, по /etc/netplan/*.yaml. ifup видит: “Эй, ens3 уже живой, с DHCP или статическим IP!” И отказывается трогать — boom, exit-code.

Во-вторых, конфликт конфигураций. Unix & Linux Stack Exchange объясняет: ens3 настроен дважды. DHCP от Netplan (valid_lft показывает динамику) + static в /etc/network/interfaces. RTNETLINK жалуется: “File exists” — IP уже назначен.

Третье — скрипты-хукеры. run-parts /etc/network/if-pre-up.d/iptables выходит с code 4. Это про iptables Ubuntu. Но об этом в следующем разделе.

А статус “static; vendor preset: enabled”? Значит, systemd пытается запустить при каждой загрузке. Журнал покажет: sudo systemctl status ifup@ens3.service или journalctl -u ifup@ens3.service.

Если интернет летает — проблема косметическая. Сервис фейлится, но сеть жива.


Разбор ошибки xtables lock и iptables

Вот где засада: Another app is currently holding the xtables lock. Perhaps you want to use the -w option? И run-parts: /etc/network/if-pre-up.d/iptables exited with return code 4.

Это классика. В /etc/network/if-pre-up.d/ лежит скрипт iptables, который при ifup@ens3 пытается загрузить правила: iptables-restore < /etc/iptables/rules.v4. Но lock-файл /run/xtables.lock уже занят!

Кто держит? Server Fault советует: lsof -n | grep xtables.lock. Часто ufw, firewalld или другой ifup. В Ubuntu 20.04 ufw по умолчанию, но на серверах — чистый iptables-persistent.

Решения?

  • rm -f /run/xtables.lock — быстро, но временно.
  • Добавить -w 10 в скрипт: ждёт 10 сек.
  • Или -f для форсирования.

Но зачем фиксить, если iptables Ubuntu не нужны? ifupdown legacy, а Netplan не трогает эти хуки. Удалите скрипт или отключите сервис — и тишина.

Забавно: ошибка маскирует настоящую проблему. Без неё увидели бы чистый “unknown interface ens3”, как в другом треде на Unix SE.


Netplan против ifupdown в Ubuntu 20.04

Ubuntu настройка сети эволюционировала. С 18.04 — Netplan (netplan.io). YAML-конфиги в /etc/netplan/ (часто 00-installer-config.yaml или 50-cloud-init.yaml). renderer: networkd для серверов.

Пример netplan yaml для ens3:

yaml
network:
 version: 2
 ethernets:
 ens3:
 dhcp4: true # или addresses: [192.168.1.10/24], gateway4: 192.168.1.1

sudo netplan apply — и готово. ifupdown? Игнорируется. Ask Ubuntu подтверждает: после апгрейда networking.service фейлится, т.к. Netplan рулит.

Сравним:

Аспект Netplan ifupdown
Файл /etc/netplan/*.yaml /etc/network/interfaces
Backend systemd-networkd/NetworkManager ifup/ifdown
Ubuntu default Да, с 18.04 Legacy, optional
Гибкость VLAN, bonds, bridges Базовая
Boot-speed Быстрее Медленнее (хуки)

Хотите настройка netplan? netplan generate, netplan try, netplan apply. Переход с ifupdown: скопируйте настройки в YAML, удалите из interfaces.

В вашем случае: ls /etc/netplan/ — найдёте config для ens3. ifup@ens3 — лишний.


Проверяем текущую настройку сети

Не верите? Проверим.

  1. ip a — статус ens3.
  2. ip route — роуты, gateway.
  3. systemctl status systemd-networkd — Netplan-backend жив?
  4. netplan status — текущие конфиги.
  5. cat /etc/netplan/*.yaml — вот ваш босс.
  6. grep -r ens3 /etc/network/interfaces* — пусто? Тогда ifup слепой.

Если ens3: dhcp4: yes в YAML — ubuntu netplan рулит. Интернет работает? Забудьте ifup.

А iptables ubuntu? iptables -L -v -n — правила на месте? ufw status?

Это базовый чек. В 90% серверов Ubuntu 20.04 — чистый Netplan.


Нужно ли восстанавливать сервис

Короткий ответ: нет. Почему?

  • Сеть работает. Приоритет — функционал, не статус сервиса.
  • Восстановление сломает Netplan: двойные IP, роуты.
  • Логи засоряются зря. systemd-журнал разрастается.

CloudSpinx упоминает: если интерфейс UP — игнорьте. Server Fault то же: ifup только для interfaces.

Когда нужен? Редко: кастомные хуки в if-up.d/, миграция с Debian 10. Иначе — балласт.

Риски восстановления: downtime, конфликты DHCP/static. Лучше мигрировать на чистый Netplan.


Как отключить ifup@ens3 навсегда

Просто и чисто.

  1. sudo systemctl stop ifup@ens3.service
  2. sudo systemctl disable ifup@ens3.service
  3. sudo systemctl mask ifup@ens3.service — на всякий (опционально).
  4. Reboot, проверьте systemctl status.

Масштабно: sudo systemctl disable ifup@*.service — все интерфейсы.

Бонус: очистите /etc/network/interfaces от ens3, удалите /etc/network/if-pre-up.d/iptables если пустой.

После — логи чистые, boot быстрее. Debian Forum предлагает systemd-networkd как альтернативу.

Готово. Теперь настройка сети Ubuntu под контролем Netplan.


Источники

  1. Ask Ubuntu: ifup cannot bring up eth0 after upgrading to 16.04
  2. Unix & Linux SE: ifdown interface enp0s3 not configured
  3. Debian Forum: ifup failed to bring up ens192:1
  4. Server Fault: IPTABLES xtables lock
  5. Unix & Linux SE: Unknown interface ens33
  6. CloudSpinx: fix ifup command not found
  7. Server Fault: Network issue ifup unknown interface

Заключение

Сервис ifup@ens3 — legacy из ifupdown, бесполезный в Ubuntu 20.04 с Netplan во главе настройки сети Ubuntu. Ошибки failed to bring up ens3 и xtables lock — сигнал конфликта, но если ens3 работает и интернет на месте, просто отключите: systemctl disable ifup@ens3. Это сэкономит нервы, место в логах и ускорит загрузку. Перейдите на netplan apply для будущего-proof конфигов — и никаких фейлов.

Авторы
Проверено модерацией
Модерация
ifup@ens3.service Ubuntu 20.04: failed to bring up ens3