Поднимите, но не присваивайте адрес с Netplan

У меня есть интерфейс, который я хочу поднять при начальной загрузке, но иначе оставить ненастроенным. Никакой DHCP, никакой статический IP. Существует ли способ сделать это с Netplan в 18,04?

Я попробовал следующее (где enp10s0f1 рассматриваемое устройство), но оно все еще просто снижает интерфейс:

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp10s0f0:
      dhcp4: yes
    enp10s0f1:
      dhcp4: no

Причина это имеет значение, у меня есть контейнеры LXD с помощью того интерфейса через образование моста macvlan, таким образом, интерфейс должен произойти, но этому не нужно (и я не имел бы), IP-адрес на хосте. Я действительно предпочел бы не должен помнить ip link set up enp10s0f1 когда я перезагружаю.

Обновление:

Я нашел этот отчет об ошибках в Панели запуска Netplan, которая выглядит связанной, но настолько лучше всего, как я могу сказать, это для противоположного случая: скажите Netplan настраивать интерфейс, но автоматически не поднимать его. Однако это действительно сортирует, предполагают, что то, что я хочу сделать, не возможно еще также. Имеет место это? Есть ли какое-либо обходное решение помимо отказа от Netplan?

3
задан 17 May 2018 в 21:26

2 ответа

Редактирование, середина 2019: ошибка, которая вызвала это, была исправлена.

С этим исправлением ошибки теперь возможно поднять интерфейс без адреса путем добавления его с пустой конфигурацией: {}.

Используя пример от вопроса, делая это с enp10s0f1 был бы похож на это:

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp10s0f0:
      dhcp4: yes
    enp10s0f1: {}

Исходный ответ:

Это - на самом деле ошибка в Netplan: ошибка № 1728134, ошибка № 1763608. Один из netplan devs подтвердил последнего, но не ясно, будет ли фиксация обеспечена.

Одно обходное решение должно было бы вручную создать systemd единицу для перевода в рабочее состояние интерфейса. Создайте файл /etc/systemd/system/manual-iface.service со следующим содержанием:

[Unit]
Description=Service to bring up/down unconfigured nic enp10s0f1
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/sbin/ip link set enp10s0f1 up
ExecStop=/sbin/ip link set enp10s0f1 down

[Install]
WantedBy=multi-user.target

Затем позвольте этому работать при начальной загрузке:

sudo systemctl enable manual-iface.service

И Вы хороши для движения. Необходимо видеть enp10s0f1 подходит в автоматически следующий раз, когда Вы загружаетесь.

С другой стороны, если Вы не хотите делать, это, возвращаясь к ifupdown является все еще опцией как состояния вопроса. Нейтрализация описана здесь. Подводя итоги, установите ifupdown, и затем можно реализовать конфигурацию с помощью традиционного /etc/network/interfaces (который хорошо зарегистрирован через сеть).

0
ответ дан 1 December 2019 в 20:25

Как обходное решение, если только адрес IPv4 требуется, IPv6 может быть настроен через DHCP, который автоматически включает интерфейс:

# cat /etc/netplan/10-eth1.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth1:
      dhcp4: false
      dhcp6: true
      optional: true
0
ответ дан 1 December 2019 в 20:25

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

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