Connexion d'une infrastructure distribuée avec VXLAN et MacSec
Pour relier des machines virtuelles entre centres de données sans passer par Internet public, nous utilisons un tunnel VXLAN sécurisé par chiffrement MacSec. Cela offre une connectivité L2 avec un surcoût minimal. La configuration implique deux fournisseurs : DC1 (IP 192.0.2.135 sur eth0) qui héberge les bases de données et les sauvegardes, et DC2 (IP 198.51.100.75 sur ens1) qui fait tourner le site web et les sauvegardes.
Sur chaque nœud, nous créons une interface VXLAN avec VNI 1 et port UDP 4789. Les adresses MAC sont définies manuellement pour plus de prévisibilité.
DC1 :
sudo ip link add vxlan0 type vxlan id 1 dstport 4789 dev eth0
sudo ip link set vxlan0 up
sudo ip link set vxlan0 address de:ad:be:ef:00:01
sudo bridge fdb append to 00:00:00:00:00:00 dst 198.51.100.75 dev vxlan0
DC2 :
sudo ip link add vxlan0 type vxlan id 1 dstport 4789 dev ens1
sudo ip link set vxlan0 up
sudo ip link set vxlan0 address de:ad:be:ef:00:02
sudo bridge fdb append to 00:00:00:00:00:00 dst 192.0.2.135 dev vxlan0
Après attribution des IP (par ex. 10.255.255.1/2), testez la connectivité avec ping et SSH. Tcpdump affiche le trafic VXLAN encapsulant les paquets ICMP/TCP.
Chiffrement du trafic avec MacSec
Le VXLAN pur n'assure aucune confidentialité. MacSec (802.1AE) s'ajoute par-dessus pour un chiffrement L2 lié aux adresses MAC. Le surcoût est faible, et le trafic reste illisible même dans tcpdump.
DC1 :
sudo ip link add link vxlan0 macsec0 type macsec encrypt on
sudo ip macsec add macsec0 tx sa 0 pn 1 on key 01 0123456789abcdef0123456789abcdef
sudo ip link set macsec0 up
sudo ip macsec add macsec0 rx address de:ad:be:ef:00:02 port 1
sudo ip macsec add macsec0 rx address de:ad:be:ef:00:02 port 1 sa 0 pn 1 on key 02 fedcba9876543210fedcba9876543210
sudo ip address add 192.168.255.1/24 dev macsec0
DC2 :
sudo ip link add link vxlan0 macsec0 type macsec encrypt on
sudo ip macsec add macsec0 tx sa 0 pn 1 on key 02 fedcba9876543210fedcba9876543210
sudo ip link set macsec0 up
sudo ip macsec add macsec0 rx address de:ad:be:ef:00:01 port 1
sudo ip macsec add macsec0 rx address de:ad:be:ef:00:01 port 1 sa 0 pn 1 on key 01 0123456789abcdef0123456789abcdef
sudo ip address add 192.168.255.2/24 dev macsec0
Dans tcpdump, les paquets apparaissent comme des trames chiffrées 802.1AE avec PN et SCI. Le trafic interne (ICMP, TCP) reste masqué.
Avantages de MacSec par rapport à TLS :
- Fonctionne au niveau L2.
- Surcoût minimal.
- Lié aux MAC sans protocoles supplémentaires.
Mise à l'échelle vers un troisième nœud
Pour ajouter un lab maison (DC3, IP 203.0.113.52 sur enp3s0 avec monitoring et sauvegardes), réutilisez le même VNI. Ajoutez des entrées FDB et des clés MacSec RX/TX.
DC3 :
sudo ip link add vxlan0 type vxlan id 1 dstport 4789 dev enp3s0
sudo ip link set vxlan0 up
sudo bridge fdb append to 00:00:00:00:00:00 dst 198.51.100.75 dev vxlan0
sudo bridge fdb append to 00:00:00:00:00:00 dst 192.0.2.135 dev vxlan0
sudo ip link add link vxlan0 macsec0 type macsec encrypt on
sudo ip macsec add macsec0 tx sa 0 pn 1 on key 03 abcdef0123456789abcdef0123456789
sudo ip link set macsec0 up
sudo ip macsec add macsec0 rx address de:ad:be:ef:00:01 port 1 sa 0 pn 1 on key 01 0123456789abcdef0123456789abcdef
sudo ip macsec add macsec0 rx address de:ad:be:ef:00:02 port 1 sa 0 pn 1 on key 02 fedcba9876543210fedcba9876543210
sudo ip address add 192.168.255.3/24 dev macsec0
Sur DC1 et DC2, ajoutez :
- FDB pour 203.0.113.52.
- Adresse RX de:ad:be:ef:00:03 avec clé 03.
Points clés
- Connectivité L2 : VXLAN assure un réseau fluide entre fournisseurs sans NAT.
- Chiffrement : MacSec sécurise le trafic au niveau liaison, masquant les charges utiles à tcpdump.
- Évolutivité : Les nouveaux nœuds s'intègrent via entrées FDB et clés — pas besoin de recréer les tunnels.
- Efficacité : Faible surcharge CPU/RAM par rapport à IPsec ou WireGuard.
- Compatibilité : Fonctionne sur noyaux Linux 4.7+ (VXLAN) et 4.6+ (MacSec).
— Editorial Team
Aucun commentaire pour le moment.