Open vSwitch, l'alternative à Linux Bridge sur Proxmox VE

Découvrons ensemble Open vSwitch, une alternative à Linux Bridge et plus riche en fonctionnalités.

Open vSwitch, l'alternative à Linux Bridge sur Proxmox VE
pve proxmox proxmoxve openvswitch

Au sommaire :

  • 1-Qu'est-ce que Open vSwitch ?
  • 2-Linux Bridge ou Open vSwitch ?
  • 3-Installation
  • 4-Les appels de commande
  • 5-Vidéos complémentaires

1-Qu'est-ce que Open vSwitch ?

OVS est un SDN (Software Defined Network) sous licence Apache 2.0.

À première vue, il semble similaire à Linux Bridge mais il dispose de fonctionnalités sans commune mesure. Ce n'est pas pour rien qu'il est le SDN de référence sur l'ensemble des hyperviseurs du marché (Xen, KVM, ESXi, Hyper-V).

Voici quelques une de ses fonctionnalités :

  • QOS (Quality of Service)
  • VLAN-aware : nul besoin de créer des VLAN+pont ou des ponts traditionnels comme sur Linux Bridge. OVS est VLAN-aware de facto
  • Support du protocole IPv6
  • Compatible avec les protocoles de tunneling comme GRE, VXLAN, STT, et IPSEC

Vous pouvez vous contenter de Linux Bridge au niveau d'un serveur ou d'un petit cluster mais dans de larges environnements où vous devez avoir un contrôle plus précis des ressources, OVS s'impose de lui même.

Les deux peuvent cohabiter mais il est fortement déconseillé de ne pas mixer les deux SDN comme par exemple créer un OVS Bridge sur un Linux Bond et vice versa.

2-Linux Bridge ou Open vSwitch ?

Proxmox VE nous donne le choix d'utiliser en SDN (Software Defined Network) Linux Bridge et Open vSwitch.

J'ai déjà aborder Linux Bridge à travers ce guide pour ceux que ça intéresse.

Proxmox VE : Linux Bridge (partie 17)
Au sommaire : * 1-Prérequis * 2-Qu’est-ce que Linux Bridge ? * 3-Qu’est-ce qu’un vNIC ? * 4-Qu’est qu’un VLAN ? * 5-Le VLAN-aware * 6-Le pont + VLAN * 7-Le pont sans VLAN * 8-Agréger avec Linux Bond * 9-Présentation des modes * 10-Linux Bond + VLAN-Aware * 11-Linux Bond + Pont + VLAN *…

Lequel est le meilleur ? That is....

Linux Bridge est plus ancien, plus facile à manipuler avec une marge de progression plus rapide et propose plus de modes d'agrégation (7 contre 4 pour OVS).

OVS est le SDN par défaut des hyperviseurs Hyper-V, ESXi, Xen (XCP-NG) ainsi que des solutions IAAS (Openstack, OpenNebula), à une marge de progression plus lente mais propose plus de fonctionnalités.

Son gros avantage c'est que si vous vous formez dessus, vous pourrez travailler sur n'importe quel hyperviseur au niveau de la pile réseau.

Proxmox VE le propose en alternative via l'installation d'un paquet et préfère mettre en avant Linux Bridge pour sa simplicité d'utilisation.

Ces articles pourront vous aider à y voir plus clair.

Linux Bridge vs OpenVSwitch -- How to Improve Virtualization Network Performance
How to fix packet loss and latency in high bandwidth VPS servers by upgrading to OpenVSwitch Virtualization is one of the most pervasive and transformational technologies in the hosting world to have come along in the last decade. Despite this, maintaining the efficient operation of virtual m
Battle of the Switches - Open Virtual Switch vs. Linux Bridge
I’ve gotta come right out and say it: Open Virtual Switch– or OVS– is the wrong switch for Infrastructure as a Service (IaaS). That’s not to say it’s the wrong switch for virtual, or even as a base layer integration for Software Defined Networks…but it is absolutely the wrong solution ... Read More

Dans tout les cas, je compte utiliser OVS comme SDN par défaut dans mes maquettes virtuelles ainsi que dans mon cluster de production pour m'améliorer au niveau réseau.

3-Installation

Pour l'installer, rien de plus simple. Étant déjà dans les dépôts Debian, il vous suffit de taper la commande suivante.

root@pmx01:~# apt install openvswitch-switch -y

Copiez le fichier d'origine au cas où vous faites une fausse manipulation.

cp /etc/network/interfaces /etc/network/interfaces_old

Ensuite, ouvrez le fichier de configuration réseau

nano /etc/network/interfaces

Puis ajoutez les lignes suivantes en l'adaptant à votre configuration évidemment.

auto lo
iface lo inet loopback

auto ens18
iface ens18 inet manual
        ovs_type OVSPort
        ovs_bridge vmbr0

auto vmbr0
iface vmbr0 inet manual
        address 192.168.0.71/24
        gateway 192.168.0.254
        ovs_type OVSBridge
        ovs_ports ens18

Vérifiez bien que l'adresse IP et l'interface réseau physique correspondent à ce que vous avez et enregistrez le tout.

Vous devriez avoir une configuration similaire à la mienne.

Redémarrer le service réseau.

systemctl restart networking

OVS apparait bien comme SDN.

4-Les appels de commande

Décrire le fonctionnement de OVS dépasse largement le cadre de ce tutoriel car c'est un SDN extrêmement riche en fonctionnalités mais voici quelques commandes à connaitre :

  • ovs-appctl : interroger et contrôler le processus (daemon) de Open vSwitch,
  • ovs-vsctl : configuration de la base de donnée,
  • ovs-ofctl : monitoring et configuration de Open Flow switch,
  • ovs-dpctl : configuration des dossiers contenant les donnés,

Pour lister les ponts, ports et les interfaces.

ovs-vsctl list br
ovs-vsctl list port
ovs-vsctl list interface

Voir l'ensemble des ponts, ports et des interfaces.

ovs-vsctl show

Modifier une option sans redémarrer le serveur.

ovs-vsctl set <interface_type> <interface_name> <option>

Voir le statut

ovs-ofctl lshow vmbr0

Dump OpenFlow

ovs-appctl bridge/dump-flows vmbr0

Voir la version du OVS installé.

ovs-appctl version

En bonus, voici la liste des commandes pour ceux que ça intéresse :

5-Vidéos complémentaires

Une formation en 27 vidéos (regardez directement sur Youtube).