Powrót do strony głównej

VXLAN MacSec: łączność infrastruktury między DC

Artykuł opisuje konfigurację tunelu VXLAN z MacSec do stworzenia zabezpieczonej sieci L2 między centrami danych różnych dostawców. Podane są komendy dla Linux, przykłady tcpdump i skalowanie na trzeci węzeł. Nadaje się dla specjalistów middle/senior.

Jak połączyć centra danych VXLAN + szyfrowaniem MacSec
Advertisement 728x90

Łączność rozproszonej infrastruktury za pomocą VXLAN i MacSec

Do połączenia maszyn wirtualnych w różnych centrach danych bez korzystania z publicznego internetu stosuje się tunel VXLAN z szyfrowaniem MacSec. Zapewnia to łączność L2 z minimalnymi nakładami. W przykładzie wykorzystano dwóch dostawców: DC1 (IP 192.0.2.135 na eth0) z bazą danych i backupami, DC2 (IP 198.51.100.75 na ens1) z witryną WWW i backupami.

Na każdym węźle tworzony jest interfejs VXLAN z VNI 1 i portem UDP 4789. Adresy MAC są ustawiane ręcznie dla przewidywalności.

DC1:

Google AdInline article slot
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 przypisaniu IP (np. 10.255.255.1/2) sprawdza się łączność za pomocą ping i SSH. W tcpdump widoczny jest ruch VXLAN z enkapsulowanymi pakietami ICMP/TCP.

Szyfrowanie ruchu za pomocą MacSec

Podstawowy VXLAN nie zapewnia poufności. MacSec (802.1AE) dodawany jest na wierzchu VXLAN dla szyfrowania L2 z wiązaniem do adresu MAC. Nakłady są niskie, ruch jest nieczytelny nawet w tcpdump.

Google AdInline article slot

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

W tcpdump pakiety wyświetlają się jako zaszyfrowane ramki 802.1AE z PN i SCI. Wewnętrzny ruch (ICMP, TCP) jest ukryty.

Google AdInline article slot

Zalety MacSec nad TLS:

  • Działa na poziomie L2.
  • Minimalne nakłady.
  • Wiązanie do MAC bez dodatkowego protokołu.

Skalowanie na trzeci węzeł

Do dodania domowej laboratorium (DC3, IP 203.0.113.52 na enp3s0 z monitoringiem i backupami) używa się tego samego VNI. Dodawane są wpisy FDB oraz klucze RX/TX 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 i DC2 dodaje się:

  • FDB dla 203.0.113.52.
  • Adres RX de:ad:be:ef:00:03 z kluczem 03.

Co jest ważne

  • Łączność L2: VXLAN zapewnia transparentną sieć między dostawcami bez NAT.
  • Szyfrowanie: MacSec chroni ruch na poziomie kanału, tcpdump nie ujawnia payloadu.
  • Skalowalność: Nowy węzeł podłącza się przez dodanie FDB i kluczy, bez przebudowy tuneli.
  • Zasoby: Niski nakład CPU/RAM w porównaniu z IPsec czy WireGuard.
  • Kompatybilność: Działa na Linuksie z jądrem 4.7+ (VXLAN) i 4.6+ (MacSec).

— Editorial Team

Advertisement 728x90

Czytaj dalej