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 :(
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é.
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.
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
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