web-dev-qa-db-fra.com

Afficher mais ne pas attribuer d'adresse avec Netplan

J'ai une interface que je veux faire apparaître au démarrage, mais sinon je ne la configure pas. Pas de DHCP, pas d'IP statique. Existe-t-il un moyen de le faire avec Netplan en 18.04?

J'ai essayé ce qui suit (où enp10s0f1 est le périphérique en question) mais il laisse toujours l'interface en panne:

# 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

La raison pour laquelle cela compte est que j'ai des conteneurs LXD utilisant cette interface via un pontage macvlan, donc l'interface doit être active, mais elle n'a pas besoin (et je préfère ne pas avoir) d'adresse IP sur l'hôte. Je préfère vraiment ne pas avoir besoin de me souvenir ip link set up enp10s0f1 lorsque je redémarre.

Mise à jour:

J'ai trouvé ce rapport de bogue dans le Launchpad de Netplan qui semble lié, mais autant que je sache, c'est pour le cas contraire: dites à Netplan de configurer une interface mais ne la lancez pas automatiquement. Cependant, cela suggère en quelque sorte que ce que je veux faire n'est pas encore possible non plus. Est-ce le cas? Existe-t-il une solution de contournement en plus de l'abandon de Netplan?

4
Dominick Pastore

Édition, mi-2019: Le bug qui a provoqué cela a été corrigé.

Avec cette correction de bogue, il est désormais possible de faire apparaître une interface sans adresse en l'ajoutant avec une configuration vide: {}.

En utilisant l'exemple de la question, faites ceci avec enp10s0f1 ressemblerait à ceci:

# 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: {}

Réponse originale:

Il s'agit en fait d'un bug dans Netplan: bug # 1728134 , bug # 1763608 . L'un des développeurs de netplan a reconnu ce dernier, mais il n'est pas clair si un correctif sera fourni ou non.

Une solution de contournement consisterait à créer manuellement une unité systemd pour activer l'interface. Créez un fichier /etc/systemd/system/manual-iface.service avec le contenu suivant:

[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

Ensuite, activez-le au démarrage:

Sudo systemctl enable manual-iface.service

Et vous êtes prêt à partir. Tu devrais voir enp10s0f1 s'affiche automatiquement au prochain démarrage.

Alternativement, si vous ne voulez pas faire cela, revenir à ifupdown est toujours une option, comme l'indique la question. Le repli est décrit ici . Pour résumer, installez ifupdown, puis vous pouvez effectuer la configuration à l'aide de la méthode traditionnelle /etc/network/interfaces (qui est bien documenté sur le Web).

1
Dominick Pastore

Comme solution de contournement, si seule une adresse IPv4 est requise, IPv6 peut être configuré via DHCP, ce qui active automatiquement l'interface:

# cat /etc/netplan/10-eth1.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    eth1:
      dhcp4: false
      dhcp6: true
      optional: true
0
panticz.de