web-dev-qa-db-fra.com

L'hôte LXD configuré par Netplan ne restaure pas la configuration réseau au redémarrage

J'ai 17.10 serveur avec LXD installé via snap (2 conteneurs).

J'ai configuré Host pour avoir une adresse IP statique et laisser les conteneurs accessibles depuis le réseau local.

Mon 01-netcfg.yaml dans/etc/netplan:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0:
      dhcp4: no
      dhcp6: no
  bridges:
    lxdbr0:
      dhcp4: no
      interfaces:
        - enp1s0
      addresses: [192.168.0.10/24]
      gateway4: 192.168.0.1
      nameservers:
        addresses: [192.168.0.1,8.8.8.8,8.8.4.4]
      parameters:
        stp: false
        forward-delay: 0

Après avoir exécuté Sudo netplan appliquer tout fonctionne, j'ai un accès Internet de l'hôte.

ifconfig donne les informations suivantes:

enp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 2c:4d:54:4f:33:30  txqueuelen 1000  (Ethernet)
        RX packets 5412  bytes 5196030 (5.1 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 4483  bytes 624400 (624.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<Host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 222  bytes 19478 (19.4 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 222  bytes 19478 (19.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lxdbr0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.10  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::60c5:c9ff:fee3:a28f  prefixlen 64  scopeid 0x20<link>
        ether 62:c5:c9:e3:a2:8f  txqueuelen 1000  (Ethernet)
        RX packets 2646  bytes 1973322 (1.9 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2640  bytes 332354 (332.3 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vethAUK196: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::fca4:95ff:fed5:a908  prefixlen 64  scopeid 0x20<link>
        ether fe:a4:95:d5:a9:08  txqueuelen 1000  (Ethernet)
        RX packets 1787  bytes 291994 (291.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2916  bytes 3204729 (3.2 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vethBY974H: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::fccc:7dff:fe51:3ae6  prefixlen 64  scopeid 0x20<link>
        ether fe:cc:7d:51:3a:e6  txqueuelen 1000  (Ethernet)
        RX packets 23  bytes 1958 (1.9 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 326  bytes 26711 (26.7 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

vethP62W14: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet6 fe80::fce2:c7ff:fe4d:d7da  prefixlen 64  scopeid 0x20<link>
        ether fe:e2:c7:4d:d7:da  txqueuelen 1000  (Ethernet)
        RX packets 46  bytes 3508 (3.5 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 317  bytes 26407 (26.4 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Après le redémarrage, il n'y a pas d'internet dans l'hôte (cependant, le ping dans le sous-réseau LAN et l'internet dans les conteneurs fonctionnent).

ifconfig affiche exactement la même chose, sauf que lxdbr0 a diffusé la version 0.0.0.0 au lieu de la diffusion de la valeur d'origine 192.168.0.255.

Après avoir exécuté Sudo netplan apply après le redémarrage, il recommence à fonctionner et la diffusion pour lxdbr0 se remplit à nouveau avec une valeur opérationnelle.

Des idées?

Upd: NetworkManager installé et essayé de l'utiliser comme moteur de rendu - aucun effet, tout fonctionne comme avec networkd :(

2
Sergey Durnov

Copié dans solution comme réponse, car je l’avais manquée la première fois que j’y ai regardé (dans les commentaires). Crédit à @ user4124, marqué comme wiki de la communauté.

Installer LXD (hôte uniquement)

Sudo apt remove --purge lxd lxd-client && apt install bridge-utils
Sudo snap install lxd
Sudo reboot
Sudo lxd init

Lors de l'installation, ne créez pas de pont réseau.

Configurer le réseau pour l'hôte

Sudo nano /etc/netplan/01-netcfg.yaml

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp1s0:
      dhcp4: no
      dhcp6: no
  bridges:
    br0:
      dhcp4: no
      dhcp6: no
      interfaces:
        - enp1s0
      addresses: [ 192.168.0.2/24 ]
      gateway4: 192.168.0.1
      nameservers:
          addresses:
              - 192.168.0.1
              - 8.8.8.8
              - 8.8.4.4
      parameters:
          stp: false
          forward-delay: 0

Sudo netplan --debug apply

Redémarrez et confirmez que la configuration est correcte:

Sudo reboot
ifconfig -a
ping google.com

Editez le profil par défaut pour vous assurer que seul le pont est présent dans config, sans nic supplémentaire

Sudo lxc profile show default // add '> out.yaml' to output to file
Sudo lxc profile edit default // add '< out.yaml' to read from file

Exemple out.yaml:

### This is a yaml representation of the profile.
### Any line starting with a '# will be ignored.
###
### A profile consists of a set of configuration items followed by a set of
### devices.
###
### An example would look like:
### name: onenic
### config:
###   raw.lxc: lxc.aa_profile=unconfined
### devices:
###   eth0:
###     nictype: bridged
###     parent: lxdbr0
###     type: nic
###
### Note that the name is shown but cannot be changed

config: {}
description: Default LXD profile
devices:
  br0:
    nictype: bridged
    parent: br0
    type: nic
  root:
    path: /
    pool: default
    type: disk
name: default
used_by:
- /1.0/containers/Apache

Configuration du réseau pour le conteneur

Courir:

Sudo lxc exec <container> bash
nano /etc/netplan/50-cloud-init.yaml

Insérer:

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: no
      dhcp6: no
      addresses:
        - 192.168.0.5/24
      gateway4: 192.168.0.1
      nameservers:
        addresses:
          - 192.168.0.1
          - 8.8.8.8

    netplan --debug apply
1
dpb