Mon but était de mettre en marche la configuration réseau suivant sous Ubuntu 18.04 (bionic) en utilisant un pont et de ports Open vSwitch.
Le port eth0 est connecté à un port trunk.
VLAN Tagged Interface IP trunk eth0 100 no vlan100 192.168.100.3 200 yes vlan200 192.168.200.4
Netplan est l'utilitaire par défaut sous on Ubuntu 18.04 (bionic) pour la configuration réseau.
Malheureusement Netplan ne configure pas les ponts et ports Open vSwitch comme ifupdown le fait.
En fait on a les possibilités suivantes:
La route classique et d'installer ifupdown pour la configuration IP et éventuellement resolvconf pour configurer le serveur DNS.
Installer les packages.
apt-get install ifupdown openvswitch-switch resolvconf
Editer /etc/network/interfaces.
auto br0 allow-ovs br0 iface br0 inet manual ovs_type OVSBridge ovs_ports eth0 vlan100 vlan200 dns-nameservers 192.168.100.10 dns-search example.com allow-br0 eth0 iface eth0 inet manual ovs_bridge br0 ovs_type OVSPort ovs_options vlan_mode=native-untagged tag=100 allow-br0 vlan100 iface vlan100 inet static address 192.168.100.3 netmask 255.255.255.0 gateway 192.168.100.1 ovs_type OVSIntPort ovs_bridge br0 ovs_options tag=100 allow-br0 vlan200 iface vlan200 inet static address 192.168.200.4 netmask 255.255.255.0 ovs_type OVSIntPort ovs_bridge br0 ovs_options tag=200
Note: Comme README.Debian for openvswitch-switch mention, et Ubuntu bug #1448254 décrit (workaround proposé) n'écrit pas auto br0 dans le fichier /etc/network/interfaces, mais cela a fonctionné pour moi sous bionic.
Netplan ne gére pas Open vSwitch.
On doit mettre en marche Open vSwitch avant la configuration IP.
Il est simple de gérer Netplan avec Ansible, car la configuration réseau peut être stocker dans des variables d'inventaire group ou hôte dans le format YAML.
Installer Open vSwitch.
apt-get install openvswitch-switch
Configurer Open vSwitch.
ovs-vsctl add-br br0 ovs-vsctl add-port br0 eth0 ovs-vsctl set port eth0 tag=100 vlan_mode=native-untagged ovs-vsctl add-port br0 vlan100 tag=100 -- set interface vlan100 type=internal ovs-vsctl add-port br0 vlan200 tag=200 -- set interface vlan200 type=internal
Créer la configuration Netplan.
network: version: 2 renderer: networkd ethernets: vlan100: dhcp4: no addresses: - 192.168.100.3/24 gateway4: 192.168.100.1 nameservers: search: [example.com] addresses: [192.168.100.10] vlan200: dhcp4: no addresses: - 192.168.200.4/24
Appliquer la configuration.
sudo netplan generate sudo netplan apply
Systemd-networkd ne gere pas Open vSwitch.
On doit mettre en marche Open vSwitch avant la configuration IP.
Installer and configurer Open vSwitch d'une façon similaire comme en cas de Netplan.
/etc/systemd/network/10-eth0.network:
[Match] Name=eth0
/etc/systemd/network/10-vlan100.network:
[Match] Name=vlan1 [Network] Address=192.168.100.3/24 Gateway=192.168.100.1 DNS=192.168.100.10
/etc/systemd/network/10-vlan200.network:
[Match] Name=vlan11 [Network] Address=192.168.200.4/24
Redémarrer systemd-networkd.
sudo systemctl restart systemd-networkd