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.
Tagowanie na mostku, nie na podinterfejsach
Proxmox oferuje dwa podejścia do VLAN-ów. Zalecane i najprostsze 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.20i osobne mostki na każdy VLAN. Działa, ale szybko mnoży konfigurację. - Czego unikać: tagowanie wewnątrz gościa przy jednoczesnym tagowaniu na hoście — podwójne znaczniki (QinQ) wprowadzane przez pomyłkę to klasyczne źródło „sieci, która nie działa”.
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.
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:
| Element | Konfiguracja |
|---|---|
| Mostek VLAN-aware | bridge-vlan-aware yes + bridge-vids 2-4094 |
| VLAN dla VM | Hardware → Network Device → VLAN Tag = np. 10 |
| VLAN dla kontenera LXC | Network → VLAN Tag w konfiguracji interfejsu |
| Adres zarządzania w VLAN | podinterfejs vmbr0.99 z adresem IP hosta |
| Sprawdzenie tagów | bridge 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.
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.
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 pracujących w MLAG — po stronie Cumulus zwanym CLAG — bond konfigurujesz analogicznie na obu):
Wolisz edytować plik wprost? Ten sam trunk w /etc/network/interfaces (składnia ifupdown2, wspólna z Proxmoxem) wygląda tak:
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:
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.
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