// Poradnik techniczny // Sieć · VLAN Aktualizacja:

Sieci VLAN w Proxmox:
izolacja i segmentacja ruchu

VLAN (802.1Q) pozwala podzielić jedną fizyczną sieć na wiele logicznie odseparowanych segmentów — produkcję, zarządzanie, storage czy strefę DMZ — bez dokładania kabli i kart sieciowych. W Proxmox VE to fundament bezpiecznej, czytelnej architektury sieci po migracji z VMware vSphere, gdzie analogiczną rolę pełniły portgrupy na vSwitchu.

// 01 · Jak to działa

Jeden kabel, wiele odseparowanych sieci

VLAN dokłada do ramki ethernetowej 4-bajtowy znacznik 802.1Q z numerem (VLAN ID, 1–4094). Switche i hosty traktują ruch z różnymi tagami tak, jakby płynął przez fizycznie oddzielne sieci — urządzenia w VLAN 10 nie widzą bezpośrednio urządzeń w VLAN 20, nawet jeśli dzielą ten sam przełącznik i ten sam kabel uplink.

Port, który przenosi wiele otagowanych VLAN-ów naraz (np. uplink z hosta Proxmox do switcha), nazywamy trunkiem. Port przypisany na stałe do jednego VLAN-u, oddający ruch nieotagowany do urządzenia końcowego, to port access. Ruch bez znacznika trafia do tzw. native VLAN (PVID) danego portu.

ℹ️

VLAN to separacja w warstwie 2. Aby segmenty mogły się ze sobą komunikować, ruch musi przejść przez router lub firewall (warstwa 3) — to naturalne miejsce na reguły i kontrolę dostępu między strefami.

// 02 · Model VLAN-aware bridge

Tagowanie na mostku, nie na podinterfejsach

Proxmox VE obsługuje kilka modeli VLAN: mostek VLAN-aware, klasyczne podinterfejsy, Open vSwitch oraz tagi ustawione w gościu. Na mostku Linuksa najprostszy w utrzymaniu to VLAN-aware bridge: jeden mostek vmbr0 z włączoną obsługą VLAN obejmuje wszystkie segmenty, a numer VLAN-u przypisujesz per maszyna w konfiguracji karty sieciowej.

  • VLAN-aware bridge: jeden mostek dla wszystkich VLAN-ów, tag ustawiany w polu „VLAN Tag” karty VM/kontenera. Czyste, skalowalne, łatwe do audytu.
  • Tradycyjne podinterfejsy: osobne interfejsy eno1.10, eno1.20 i osobne mostki na każdy VLAN. Działa, ale szybko mnoży konfigurację.
  • Czego unikać: tagu na karcie i tagu w gościu naraz. Na mostku VLAN-aware tag z panelu dotyczy ramek nieotagowanych, a tag z gościa albo jest tym VLAN-em, albo ramka jest odrzucana — to nie jest QinQ.

Po stronie switcha port do hosta musi być trunkiem przepuszczającym wszystkie używane VLAN ID. To najczęstszy punkt, w którym konfiguracja się rozjeżdża: host taguje poprawnie, ale switch odrzuca nieznane VLAN-y.

// 03 · Konfiguracja w praktyce

Mostek VLAN-aware krok po kroku

VLAN-aware bridge włączysz w panelu (Node → System → Network → wybierz vmbr0 → „VLAN aware”) lub bezpośrednio w pliku /etc/network/interfaces:

ElementKonfiguracja
Mostek VLAN-awarebridge-vlan-aware yes + bridge-vids 2-4094
VLAN dla VMHardware → Network Device → VLAN Tag = np. 10
VLAN dla kontenera LXCNetwork → VLAN Tag w konfiguracji interfejsu
Adres zarządzania w VLANpodinterfejs vmbr0.99 z adresem IP hosta
Sprawdzenie tagówbridge vlan show

Dla redundancji łącza uplink łączymy w bond (LACP 802.3ad), a VLAN-aware bridge stawiamy na bondzie zamiast na pojedynczej karcie — uzyskujesz jednocześnie odporność na awarię łącza i pełną segmentację VLAN.

💡

Trzymaj sieć zarządzania Proxmox w osobnym VLAN-ie niż ruch maszyn produkcyjnych. To prosta zmiana, która znacząco ogranicza powierzchnię ataku na interfejs hosta i klaster.

// 04 · Switch NVIDIA SN4700 (Cumulus Linux)

Reguły VLAN na switchu Cumulus Linux

Switch NVIDIA SN4700 (Spectrum-3, 32 porty 400 GbE) domyślnie przychodzi z systemem Cumulus Linux. To korzystny scenariusz: Cumulus używa dokładnie tego samego modelu VLAN-aware bridge co Proxmox, więc obie strony trunku konfigurujesz bliźniaczo. W wydaniach 5.x standardem jest CLI NVUE (nv set); starsze wersje korzystały z NCLU (net add), a pod spodem zawsze pracuje ifupdown2 z plikiem /etc/network/interfaces — tym samym, co w Proxmox.

Załóżmy typowy podział: port swp1 prowadzi do hosta Proxmox i ma być trunkiem przenoszącym VLAN 10 (produkcja), 20 (storage), 30 (DMZ) i 99 (zarządzanie), a porty swp10–swp12 to porty access dla stojącego obok fizycznego serwera storage (blaszaka) w VLAN 20. Dzięki temu maszyny wirtualne na Proxmoxie i fizyczny storage są w tej samej sieci L2 (VLAN 20) i widzą się bezpośrednio — bez routera.

ℹ️

Porty access to opcjonalny przykład dla urządzeń fizycznych w tym samym VLAN-ie (tutaj: storage na blaszaku w VLAN 20). Jeśli w danym VLAN-ie masz wyłącznie maszyny wirtualne na Proxmoxie, nie konfigurujesz żadnych portów access — wystarczy sam trunk swp1, a VLAN „mieszka” w sieci, nie na hoście.

NVUE — Cumulus Linux 5.x
# Zdefiniuj VLAN-y na domyślnym mostku br_default
cumulus@sn4700:~$ nv set bridge domain br_default vlan 10,20,30,99
 
# swp1 → host Proxmox: trunk niosący wszystkie VLAN-y mostka
cumulus@sn4700:~$ nv set interface swp1 bridge domain br_default
 
# swp10–swp12 → porty access dla fizycznego storage w VLAN 20
cumulus@sn4700:~$ nv set interface swp10-12 bridge domain br_default access 20
 
# Zastosuj i zapisz konfigurację na trwałe
cumulus@sn4700:~$ nv config apply
cumulus@sn4700:~$ nv config save

Domyślnie port dodany do br_default staje się trunkiem przepuszczającym wszystkie VLAN-y mostka — dokładnie to, czego potrzebuje host Proxmox z VLAN-aware bridge. Ruch nieotagowany trafia do native VLAN (domyślnie 1); zarządzanie (VLAN 99) jedzie otagowane, bo po stronie hosta odbiera je podinterfejs vmbr0.99.

Dla redundancji zestaw dwa porty w bond LACP i wpuść go do mostka (przy dwóch switchach SN4700 w parze MLAG — Cumulus Linux 5 też nazywa to MLAG, a CLAG to określenie innych producentów — bond konfigurujesz analogicznie na obu):

NVUE — bond LACP do hosta
# Bond 802.3ad z dwóch portów jako trunk do hosta
cumulus@sn4700:~$ nv set interface bond1 bond member swp1,swp2
cumulus@sn4700:~$ nv set interface bond1 bond mode lacp
cumulus@sn4700:~$ nv set interface bond1 bridge domain br_default
cumulus@sn4700:~$ nv config apply

Wolisz edytować plik wprost? Ten sam trunk w /etc/network/interfaces (składnia ifupdown2, wspólna z Proxmoxem) wygląda tak. Wybierz jedną metodę: NVUE przy nv config apply nadpisuje ręczne zmiany w tym pliku, więc nie łącz obu sposobów konfiguracji.

/etc/network/interfaces
auto br_default
iface br_default
    bridge-ports swp1 swp10 swp11 swp12
    bridge-vlan-aware yes
    bridge-vids 10 20 30 99
    bridge-pvid 1
 
auto swp10
iface swp10
    bridge-access 20
auto swp11
iface swp11
    bridge-access 20
auto swp12
iface swp12
    bridge-access 20

Na koniec zweryfikuj tagi po obu stronach łącza. Uniwersalne polecenie bridge vlan show działa i na switchu, i na hoście Proxmox; natywnie w NVUE użyjesz:

weryfikacja VLAN
cumulus@sn4700:~$ nv show interface swp1 bridge domain
cumulus@sn4700:~$ nv show bridge domain br_default vlan
💡

Lista VLAN-ów i native VLAN muszą się zgadzać po obu stronach trunku. Skoro zarządzanie Proxmox odbiera otagowany vmbr0.99, zostaw VLAN 99 w zestawie otagowanych (bridge-vids) — nie ustawiaj go jako untagged/PVID na porcie switcha, bo stracisz dostęp do hosta zaraz po nv config apply.

// 05 · Dobre praktyki i pułapki

O czym pamiętać

  • Trunk na switchu: brak danego VLAN ID na trunku to najczęstsza przyczyna „milczącej” sieci. Najpierw sprawdzaj konfigurację portu na przełączniku.
  • Native VLAN / PVID: ustal świadomie, co dzieje się z ruchem nieotagowanym. Niedopasowanie native VLAN między hostem a switchem prowadzi do trudnych do wykrycia wycieków ruchu.
  • MTU: znacznik VLAN dokłada bajty do ramki. Przy jumbo frames (storage, Ceph) upewnij się, że MTU jest spójne na hoście, bondzie, mostku i switchu.
  • Firewall Proxmox: VLAN izoluje warstwę 2, ale reguły między strefami i tak warto egzekwować na firewallu — Proxmox ma wbudowany, działający per VM/kontener.
⚠️

VLAN to izolacja logiczna, nie szyfrowanie. Dla naprawdę wrażliwych segmentów łącz VLAN-y z firewallem i — tam, gdzie to konieczne — z separacją fizyczną lub szyfrowaniem ruchu.

Zaprojektujemy Twoją sieć w Proxmox

Trunki, VLAN-aware bridge, bondy LACP, segmentacja zarządzania i firewall — przeniesiemy logikę sieciową z VMware do Proxmox VE czysto i bezpiecznie.

⚡ Bezpłatna konsultacja → Kontenery LXC w Proxmox