Tajemne życie sieci wirtualnych
Ostatnia zmiana: 2026-02-17 13:16

VLAN (Virtual Local Area Network / Wirtualna sieć lokalna) - to wydzielony logicznie obszar sieci komputerowej. W routerach wykorzystuje się VLANy do podziału portów przełącznika (switcha) na oddzielne sekcje (w starszych wersjach oprogramowania), można także wykorzystać je do odseparowania kilku sieci od siebie. W pierwszym przypadku mówimy zwykle o VLANach typu port based, w drugim o typie 802.1q. W starszych wersjach OpenWrt VLANy były wykorzystywane m.in do podziału switcha na WAN i LAN w większości modeli routerów; w nowszych wersjach OpenWrt zostało wprowadzone tzw. DSA - Distributed Switch Architecture, czyli krótko mówiąc znikła definicja switcha, a każdy fizyczny port traktowany jest jako oddzielny interfejs. Jednakże obsługa VLANów pozostała, choć robi się to obecnie trochę inaczej.

Przedstawione konfiguracje przetestowano na OpenWrt 24.10

Różnice w konfiguracji

Aby zobrazować różnice jakie wprowadza DSA posłużymy się znanym routerem Netgear R6220. W starszych wydaniach OpenWrt konfiguracja sieci wyglądała następująco (pominięto tu mniej istotne elementy konfiguracji takie jak IPv6 czy przypisanie adresów MAC do interfejsów; jest to częściowa zawartość pliku /etc/config/network):


    config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

    config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'

    config interface 'wan'
        option ifname 'eth0.2'
        option proto 'dhcp'

    config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

    config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '0 1 2 3 6t'

    config switch_vlan
        option device 'switch0'
        option vlan '2'
        option ports '4 6t'

Cały switch był pięcioportowy (wan + cztery lany), podzielony logicznie na wan (fizyczny port wan odpowiadał portowi 4 switcha) oraz cztery lany (fizyczne porty lan odpowiadały odpowiednio portowi 0, 1, 2 i 3 swictha). Aby był możliwy ruch do urządzenia switch połączony był z portem CPU o numerze 6 (tagowany).

Po wprowadzeniu DSA znikła definicja switcha, pojawiły się za to fizyczne interfejsy które nazwano wan, lan1, lan2, lan3 oraz lan4 (dotyczy to konkretnie routera Netgear R6220, w innych modelach mogą być inne nazwy interfejsów):


    config interface 'loopback'
        option device 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

    config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'lan4'

    config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option ipaddr '192.168.1.1'
        option netmask '255.255.255.0'

    config interface 'wan'
        option device 'wan'
        option proto 'dhcp'

Definicja jest prostrza, bardziej przejrzysta i jednoznacznie wskazuje który port jest konkretnie przypisany do jakiej sekcji konfiguracyjnym.
Przy okazji zaprezentowano także nowy sposób tworzenia bridge wprowadzony po wydaniu OpenWrt 21.02-rc2. Obecnie w sekcji nie ma opcji type bridge oraz ifname, jest za to opcja device która może wskazywać albo odpowiedni interfejs (np. wan) albo interfejs bridge (w tym przykładzie - br-lan), którego definicja jest osobnej sekcji typu device. Sekcja ta zawiera listę portów wchodzących w skład tego bridge.

Definiowane VLANów na WAN

Zróbmy klasyczny przykład - potrzebujemy tagowany VLAN 35 na interfejsie wan. Wg starej konfiguracji wyglądało to tak:


    config interface 'wan'
        option ifname 'eth0.35'
        option proto 'dhcp'

    config switch
        option name 'switch0'
        option reset '1'
        option enable_vlan '1'

    config switch_vlan
        option device 'switch0'
        option vlan '1'
        option ports '0 1 2 3 6t'

    config switch_vlan
        option device 'switch0'
        option vlan '35'
        option ports '4t 6t'

lub ostatnią sekcję można zamienić na poniższą:


    config switch_vlan
        option device 'switch0'
        option vlan '2'
        option vid 35
        option ports '4t 6t'

co jest taką samą definicją.

Dla DSA VLANy definiuje się przez stworzenie nowej sekcji typu 802.11q


    config interface 'wan'
        option proto 'dhcp'
        option device 'wan.35'

    config device
        option type '8021q'
        option ifname 'wan'
        option vid '35'
        option name 'wan.35'

Sieć WiFi na innym VLAN

Sytuacja często spotykana w "przemysłowych" punktach dostępowych, gdzie mamy rozdzieloną sieć do zarządzenia AP oraz ruch dla klientów. W przypadku AP Ubiquiti konfiguracja można wyglądać następująco:

image

AP mamy dołączony kablem do portu LAN1. Musimy teraz ustawić nasz router. Tworzymy sieć gościnną a następnie modyfikujemy konfigurację sieci, a właściwie bridge do następującej postaci:


    config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'lan1'
        list ports 'lan2'
        list ports 'lan3'
        list ports 'lan4'

    config interface 'lan'
        option device 'br-lan'
        option proto 'static'
        option netmask '255.255.255.0'
        option ipaddr '192.168.1.1'

    config interface 'guest'
        option device 'br-guest'
        option proto 'static'
        option ipaddr '172.16.0.1'
        option netmask '255.240.0.0'

    config device
        option name 'br-guest'
        option type 'bridge'
        list ports lan1.7

Po restarcie utworzy się VLAN 7 na interfejsie LAN1, będzie dostęp do panelu zarządzenia AP (w tym przypadku: 192.168.1.20) oraz klient podłączony do wifi dostanie adres z sieci gościnnej.

Sieć LAN i WAN na jednym kablu

Mamy urządzenie z jednym portem ethernet (np. PC lub RPi) i chcemy na vlanach zrobić lan i wan. Dodatkowo, to tego portu będzie podłączony zarządzalny switch, który zamieni te VLANy na normalnie gniadka.

Konfiguracja urządzenia


    config device
        option name 'br-lan'
        option type 'bridge'
        list ports 'eth0'

    config bridge-vlan
        option device 'br-lan'
        option vlan '10'
        list ports 'eth0:t'

    config bridge-vlan
        option device 'br-lan'
        option vlan '20'
        list ports 'eth0:t'

    config interface 'lan'
        option device 'br-lan.10'
        option proto 'static'
        list ipaddr '192.168.1.1/24'
    
    config interface wan
        option device br-lan.2
        option proto dhcp


Logiczny LAN jest na tagowanym VLAN 10, zaś logiczny WAN na tagowanym VLAN 20. Teraz wystarczy dołączyć switch kablem do portu 1 skonfigurowany następująco:
- VLAN 20: tagged port 1, untagged port 2, reszta portów exclude
- VLAN 10: tagged port 1, exclude port 2, reszta portów untagged

W takiej konfiguracji od urządzenia dołączamy kablem switch do portu 1, do portu 2 można dać kabel "do internetu", reszta portów pracuje jako LAN.

Inne konfiguracje

Inne możliwości definiowana VLANów dla DSA można znaleźć na forum OpenWrt.