Propojení distribuované infrastruktury pomocí VXLAN a MacSec
Pro propojení virtuálních strojů v různých datových centrech bez veřejného internetu se používá VXLAN tunel se šifrováním MacSec. Tím se zajistí L2 propojení s minimálními režijními náklady. V příkladu jsou zapojeny dva poskytovatelé: DC1 (IP 192.0.2.135 na eth0) s databází a zálohami, DC2 (IP 198.51.100.75 na ens1) s webovou stránkou a zálohami.
Na každém uzlu se vytvoří VXLAN rozhraní s VNI 1 a UDP portem 4789. MAC adresy se nastavují ručně pro předvídatelnost.
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
Po přiřazení IP (např. 10.255.255.1/2) se kontroluje propojení příkazem ping a SSH. V tcpdump je vidět VXLAN provoz s inkapsulovanými ICMP/TCP pakety.
Šifrování provozu pomocí MacSec
Základní VXLAN neposkytuje důvěrnost. MacSec (802.1AE) se přidává přes VXLAN pro L2 šifrování vázané na MAC adresu. Režijní náklady jsou nízké, provoz není čitelný ani v 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
V tcpdump se balíčky zobrazují jako zašifrované 802.1AE rámy s PN a SCI. Vnitřní provoz (ICMP, TCP) je skrytý.
Výhody MacSec oproti TLS:
- Funguje na L2 úrovni.
- Minimální režie.
- Vazba na MAC bez dalšího protokolu.
Rozšíření na třetí uzel
Pro přidání domácí laboratoře (DC3, IP 203.0.113.52 na enp3s0 s monitorováním a zálohami) se používá stejné VNI. Přidávají se FDB záznamy a RX/TX klíče MacSec.
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
Na DC1 a DC2 se přidávají:
- FDB pro 203.0.113.52.
- RX adresa de:ad:be:ef:00:03 s klíčem 03.
Co je důležité
- L2 propojení: VXLAN zajišťuje průhlednou síť mezi poskytovateli bez NAT.
- Šifrování: MacSec chrání provoz na kanálové úrovni, tcpdump neodhalí obsah.
- Škálovatelnost: Nový uzel se připojí přidáním FDB a klíčů, bez přestavby tunelů.
- Výkon: Nízká zátěž na CPU/RAM oproti IPsec nebo WireGuard.
- Kompatibilita: Funguje na Linuxu s jádrem 4.7+ (VXLAN) a 4.6+ (MacSec).
— Editorial Team
Zatím žádné komentáře.