OpenWrt - konfiguracja sieci w różne tryby pracy
czyli klient, sta, ap, wds i inne trudne słowa
Ostatnia zmiana: 2011-03-05 13:18

1. Router bez AP
2. AccessPoint bez routingu
3. AccessPoint z routingiem
4. AP + WDS
5. Ad-hoc
6. Klient AP
7. Klient+AP
8. Wireless Bridge Client via Client
9. Wireless Bridge Client via Client z repeater
10. Wireless Bridge Client via WDS + AP
11. Zakończenie
 11.1. AccessPoint
 11.2. Klient (sta, APClient)


Podstawowa konfiguracja OpenWrt Kamikaze opisana jest na w innym dokumencie, tutaj zaprezentowane są szczegóły konfiguracji interfejsu radiowego w różnych trybach pracy. Różni producenci różnie te tryby nazywają, więc podaję także nazwy z jakimi się spotkałem. Podane konfiguracje przetestowano dla wersji 8.09.1 z kernelem 2.4 oraz drivera broadcom. Podobne konfiguracje powinny działać też dla sterownika madwifi (Atheros) czy mac80211. Jako platforma testowa posłużył Ovislink WL-1600GL.

UWAGA: w większości przypadków tryb bridge działa tylko dla sterowników broadcom z jądrem 2.4

Założenia:

nazwy interfejsów:
    - port WAN: eth0.1
    - porty LAN (switch): eth0.0
    - interfejs radiowy: wl0

Serwer ISP dostarczał adres z klasy 10.0.0.0/8 i miał adres 10.0.0.1, po Wifi: kanał 6, SSID: MOJ_ISP, kodowanie WPA2 z hasłem 0987654321.
W prezentowanych przykładach ruter został ustawiony na adres 192.168.1.1, ustawienia wifi to: kanał 6, nazwa sieci (SSID): moja_siec, zabezpieczenia: WPA2/PSK z hasłem 1234567890.

Jednym ze wspólnych plików konfiguracyjnych dla wszystkich scenariuszy jest /etc/config/dhcp; powinien on pozostać domyślny bez zmian. Bez zmian pozostaje też konfiguracja switcha (jeżeli jest) i interfejsu pętli zwrotnej, w tym przypadku wyglądała ona następująco (w pliku /etc/config/network)

    config 'switch' 'eth0'
        option 'vlan0' '0 1 2 3 5*'
        option 'vlan1' '4 5'

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

W poniższych przykładach w celu przejrzystości zostały zaprezentowane tylko sekcje lan i wan z pliku /etc/config/network. Jeżeli nie została podana jedna z sekcji (np. wan) - oznacza to że ma jej nie być.

UWAGA: Ustawienia (zwłaszcza /etc/config/wireless) mogą się znacznie różnić w zależności od stosowanego drivera (broadcom/atheros/mac80211). W szczególności niektóre tryby mogą nie działać, jeżeli nie wspiera ich danych sterownik.
Router bez AP
- "internet" dostarczany przez kabel do portu WAN
    - adres IP WAN dostarczany przez DHCP
    - adres rutera to 192.168.1.1/24
    - komputery podłączamy do rutera kablem (przewodowo)
    - adresy IP komputery otrzymują z rutera
    - nie działa interfejs radiowy

Taka konfiguracja jest domyślnie po wgraniu OpenWrt (wifi jest wyłączone).

/etc/config/network

    config 'interface' 'lan'
        option 'type' 'bridge'
        option 'ifname' 'eth0.0'
        option 'proto' 'static'
        option 'netmask' '255.255.255.0'
        option 'dns' '192.168.1.1'
        option 'ipaddr' '192.168.1.1'

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


/etc/config/wireless

    config 'wifi-device' 'wl0'
        option 'type' 'broadcom'
        option 'channel' '6'
        option 'disabled' '1'

AccessPoint bez routingu
- "internet" dostarczany przez kabel do jednego z portów LAN
    - port WAN połączony jest razem z portami LAN
    - adres IP rutera ustawiony na stałe z kasy adresowej serwera
    - komputery podłączamy do rutera kablem (przewodowo) lub przez Wifi (bezprzewodowo)
    - adresy IP komputery otrzymują z serwera (tutaj: 192.168.1.1 na którym jest serwer dhcp/dns)
    - serwer DNS/DHCP na ruterze musi zostać wyłączony

/etc/config/network

    config 'interface' 'lan'
        option 'type' 'bridge'
        option 'ifname' 'eth0.0 eth0.1'
        option 'proto' 'static'
        option 'netmask' '255.255.255.0'
        option 'dns' '192.168.1.1'
        option 'ipaddr' '192.168.1.2'


/etc/config/wireless

    config 'wifi-device' 'wl0'
        option 'type' 'broadcom'
        option 'channel' '6'
    
    config 'wifi-iface' 'cfg2'
        option 'device' 'wl0'
        option 'mode' 'ap'
        option 'network' 'lan'
        option 'ssid' 'moja_siec'
        option 'encryption' 'psk2'
        option 'key' '1234567890'

AccessPoint z routingiem
(Access Point Mode, AP, gateway)

Klasyczna konfiguracja:
    - "internet" dostarczany przez kabel do portu WAN
    - adres IP WAN dostarczany przez DHCP
    - adres rutera to 192.168.1.1
    - komputery podłączamy do rutera kablem (przewodowo) lub przez WiFi (bezprzewodowo)
    - adresy IP komputery otrzymują z rutera

Taka konfiguracja jest w OpenWrt po włączeniu interfejsu radiowego

/etc/config/network

    config 'interface' 'lan'
        option 'type' 'bridge'
        option 'ifname' 'eth0.0'
        option 'proto' 'static'
        option 'netmask' '255.255.255.0'
        option 'dns' '192.168.1.1'
        option 'ipaddr' '192.168.1.1'

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


/etc/config/wireless

    config 'wifi-device' 'wl0'
        option 'type' 'broadcom'
        option 'channel' '6'
    
    config 'wifi-iface' 'cfg2'
        option 'device' 'wl0'
        option 'mode' 'ap'
        option 'network' 'lan'
        option 'ssid' 'moja_siec'
        option 'encryption' 'psk2'
        option 'key' '1234567890'


Jeżeli adres WAN ma być ustawiony na stałe a nie pobierany z DHCP

    config 'interface' 'wan'
        option 'type' 'bridge'
        option 'proto' 'static'
        option 'ipaddr' '10.0.0.2'
        option 'netmask' '255.255.255.0'
        option 'gateway' '10.0.0.1'
        option 'dns' '10.0.0.1'


Jeżeli dostęp ma być przez PPPoE

    config 'interface' 'wan'
        option 'ifname' 'eth0.1'
        option 'proto' 'pppoe'
        option 'username' 'nazwa_uzytkownika'
        option 'password' 'haslo_uzytkownika'
        option 'keepalive' '3 5'

gdzie liczba 3 to liczba zagubionych pingów przed ponownym połączeniem a 5 - okres czasu pingowania

Jeżeli wymagana jest zamiana MAC adresu od strony wan

    config 'interface' 'wan'
        option 'macaddr' '00:11:22:33:44:55'
    ...


Ukrycie rozgłaszania SSID na interfejsie radiowym

    config 'wifi-iface' 'cfg2'
        option 'mode' 'ap'
        option 'hidden' '1'
    ...


Izolacja klientów WLAN

    config 'wifi-iface' 'cfg2'
        option 'mode' 'ap'
        option 'isolate' '1'
    ...


Zabezpieczenie WLAN:
- brak

    config 'wifi-iface' 'cfg2'
        option 'mode' 'ap'
        option 'encryption' 'none'
        option 'key' ''
    ...

- WEP

    config 'wifi-iface' 'cfg2'
        option 'mode' 'ap'
        option 'encryption' 'wep'
        option 'key' '1234567890'
    ...

- WPA / TKIP

    config 'wifi-iface' 'cfg2'
        option 'mode' 'ap'
        option 'encryption' 'psk'
        option 'key' '1234567890'
    ...

- WPA2 / AES

    config 'wifi-iface' 'cfg2'
        option 'mode' 'ap'
        option 'encryption' 'psk2'
        option 'key' '1234567890'
    ...

AP + WDS
Bardzo podobna do klasycznej konfiguracji:
    - "internet" dostarczany przez kabel do portu WAN
    - adres IP WAN dostarczany przez DHCP
    - adres rutera to 192.168.1.1
    - komputery podłączamy do rutera kablem (przewodowo) lub przez WiFi (bezprzewodowo)
    - adresy IP komputery otrzymują z rutera
    - można się połączyć do rutera drugim urządzeniem w trybie WDS

/etc/config/network

    config 'interface' 'lan'
        option 'type' 'bridge'
        option 'proto' 'static'
        option 'netmask' '255.255.255.0'
        option 'dns' '192.168.1.1'
        option 'ipaddr' '192.168.1.1'
        option 'ifname' 'eth0.0'

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


/etc/config/wireless

    config 'wifi-device' 'wl0'
        option 'type' 'broadcom'
        option 'channel' '6'

    config 'wifi-iface' 'cfg2'
        option 'device' 'wl0'
        option 'mode' 'ap'
        option 'network' 'lan'
        option 'ssid' 'moja_siec'
        option 'encryption' 'psk2'
        option 'key' '1234567890'

    config 'wifi-iface' 'cfg3'
        option 'device' 'wl0'
        option 'network' 'lan'
        option 'mode' 'wds'
        option 'ssid' 'moja_siec'
        option 'bssid' '11:22:33:44:55:66'
        option 'encryption' 'psk2'
        option 'key' '1234567890'

Gdzie bssid to adres MAC interfejsu radiowego drugiego (zdalnego) urządzenia

Sekcji z WDS może być wiele (dla różnych mac adresów) np.

    config 'wifi-iface' 'cfg4'
        option 'device' 'wl0'
        option 'network' 'lan'
        option 'mode' 'wds'
        option 'ssid' 'moja_siec'
        option 'bssid' '11:22:33:44:55:67'
        option 'encryption' 'psk2'
        option 'key' '1234567890'

Ad-hoc
Znów podobna konfiguracja w założeniach do klasycznego AP, tylko interfejs radiowy pracuje w trybie Ad-hoc (decentralizowana struktura)
    - "internet" dostarczany przez kabel do portu WAN
    - adres IP WAN dostarczany przez DHCP
    - adres rutera to 192.168.1.1
    - komputery podłączamy do rutera kablem (przewodowo) lub przez WiFi (bezprzewodowo) a trybie ad-hoc
    - adresy IP komputery otrzymują z rutera

/etc/config/network

    config 'interface' 'lan'
        option 'type' 'bridge'
        option 'proto' 'static'
        option 'netmask' '255.255.255.0'
        option 'dns' '192.168.1.1'
        option 'ipaddr' '192.168.1.1'
        option 'ifname' 'eth0.0'

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


/etc/config/wireless

    config 'wifi-device' 'wl0'
        option 'type' 'broadcom'
        option 'channel' '6'

    config 'wifi-iface' 'cfg2'
        option 'device' 'wl0'
        option 'mode' 'adhoc'
        option 'network' 'lan'
        option 'ssid' 'OpenWrt'
        option 'encryption' 'wep'

Klient AP
(STA, APClient, Wireless Routed Client, WISP (Wireless Internet Service Provider), Client Router Mode)

    - "internet" dostarczany przez WiFi, kanał 6, SSID: MOJ_ISP, kodowanie WPA2 z hasłem 0987654321
    - adres IP WAN dostarczany przez DHCP
    - adres rutera to 192.168.1.1
    - komputery podłączamy do rutera kablem (przewodowo)
    - adresy IP komputery otrzymują z rutera

/etc/config/network

    config 'interface' 'lan'
        option 'type' 'bridge'
        option 'ifname' 'eth0.0'
        option 'proto' 'static'
        option 'netmask' '255.255.255.0'
        option 'dns' '192.168.1.1'
        option 'ipaddr' '192.168.1.1'

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


/etc/config/wireless

    config 'wifi-device' 'wl0'
        option 'type' 'broadcom'
        option 'channel' '6'

    config 'wifi-iface' 'cfg2'
        option 'device' 'wl0'
        option 'mode' 'sta'
        option 'network' 'wan'
        option 'ssid' 'MOJ_ISP'
        option 'encryption' 'psk2'
        option 'key' '0987654321'


Jeżeli fizyczny port WAN ma być włączony do reszty switcha (czyli otrzymujemy 5 użytecznych portów zamiast 4)

    config 'interface' 'lan'
        option 'ifname' 'eth0.0 eth0.1'
    ...

Klient+AP
(tryb mieszany, repeater, WISP (Wireless Internet Service Provider) Repeater Mode)

    - "internet" dostarczany przez wifi, kanał 6, SSID: MOJ_ISP, kodowanie WPA2 z hasłem 0987654321
    - adres IP portu WAN dostarczany przez DHCP
    - adres rutera to 192.168.1.1
    - komputery podłączamy do rutera kablem (przewodowo) lub przez Wifi (bezprzewodowo)
    - adresy IP komputery otrzymują z rutera

/etc/config/network

    config 'interface' 'lan'
        option 'type' 'bridge'
        option 'ifname' 'eth0.0'
        option 'proto' 'static'
        option 'netmask' '255.255.255.0'
        option 'dns' '192.168.1.1'
        option 'ipaddr' '192.168.1.1'

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


/etc/config/wireless

    config 'wifi-device' 'wl0'
        option 'type' 'broadcom'
        option 'channel' '6'

    config 'wifi-iface' 'cfg2'
        option 'device' 'wl0'
        option 'mode' 'ap'
        option 'network' 'lan'
        option 'ssid' 'moja_siec'
        option 'encryption' 'psk2'
        option 'key' '1234567890'

    config 'wifi-iface' 'cfg3'
        option 'device' 'wl0'
        option 'mode' 'sta'
        option 'network' 'wan'
        option 'ssid' 'MOJ_ISP'
        option 'encryption' 'psk2'
        option 'key' '0987654321'

Wireless Bridge Client via Client
(AP Client Mode)

    - "internet" dostarczany przez wifi, kanał 6, SSID: MOJ_ISP, kodowanie WPA2 z hasłem 0987654321
    - komputery podłączamy do rutera kablem (przewodowo)
    - adresy IP komputery otrzymują z serwera zewnętrznego, nie rutera
    - nie zachodzi rutowanie pakietów, komputery są w tej samej klasie co serwer
    - serwer DNS/DHCP ruterze musi być wyłączony

/etc/config/network

    config 'interface' 'lan'
        option 'type' 'bridge'
        option 'ifname' 'eth0.0'
        option 'proto' 'static'
        option 'netmask' '255.255.255.0'
        option 'ipaddr' '10.0.0.2'
        option 'gateway' '10.0.0.1'
        option 'dns' '10.0.0.1'


/etc/config/wireless

    config 'wifi-device' 'wl0'
        option 'type' 'broadcom'
        option 'channel' '6'

    config 'wifi-iface' 'cfg2'
        option 'device' 'wl0'
        option 'network' 'lan'
        option 'mode' 'sta'
        option 'client_bridge' '1'
        option 'ssid' 'MOJ_ISP'
        option 'encryption' 'psk2'
        option 'key' '0987654321'


Zobacz także http://openrouter.info/forum/viewtopic.php?f=22&t=678 dla sterowników mac80211.

Wireless Bridge Client via Client z repeater

(Bridge with AP Mode)

    - "internet" dostarczany przez wifi, kanał 6, SSID: MOJ_ISP, kodowanie WPA2 z hasłem 0987654321
    - komputery podłączamy do rutera kablem (przewodowo) lub przez Wifi (bezprzewodowo)
    - adresy IP komputery otrzymują z serwera zewnętrznego, nie rutera
    - nie zachodzi rutowanie pakietów, komputery są w tej samej klasie co serwer
    - serwer DNS/DHCP ruterze musi być wyłączony

/etc/config/network

    config 'interface' 'lan'
        option 'type' 'bridge'
        option 'ifname' 'eth0.0'
        option 'proto' 'static'
        option 'netmask' '255.255.255.0'
        option 'ipaddr' '10.0.0.2'
        option 'gateway' '10.0.0.1'
        option 'dns' '10.0.0.1'


/etc/config/wireless

    config 'wifi-device' 'wl0'
        option 'type' 'broadcom'
        option 'channel' '6'

    config 'wifi-iface' 'cfg2'
        option 'device' 'wl0'
        option 'network' 'lan'
        option 'mode' 'sta'
        option 'client_bridge' '1'
        option 'ssid' 'MOJ_ISP'
        option 'encryption' 'psk2'
        option 'key' '0987654321'

    config 'wifi-iface' 'cfg3'
        option 'device' 'wl0'
        option 'network' 'lan'
        option 'mode' 'ap'
        option 'ssid' 'moja_siec'
        option 'encryption' 'psk2'
        option 'key' '1234567890'

Wireless Bridge Client via WDS + AP
- "internet" dostarczany przez wifi, kanał 6, SSID: MOJ_ISP, kodowanie WPA2 z hasłem 0987654321, ale przez WDS
    - adres IP WAN ustawiony na stałe z klasy adresowej serwera
    - komputery podłączamy do rutera kablem (przewodowo) lub przez Wifi (bezprzewodowo)
    - adresy IP komputery otrzymują z serwera zewnętrznego, nie rutera
    - nie zachodzi rutowanie pakietów, komputery są w tej samej klasie co serwer
    - serwer DNS/DHCP ruterze musi być wyłączony

/etc/config/network

    config 'interface' 'lan'
        option 'type' 'bridge'
        option 'ifname' 'eth0.0'
        option 'proto' 'static'
        option 'netmask' '255.255.255.0'
        option 'ipaddr' '10.0.0.2'
        option 'gateway' '10.0.0.1'
        option 'dns' '10.0.0.1'


/etc/config/wireless

    config 'wifi-device' 'wl0'
        option 'type' 'broadcom'
        option 'channel' '6'

    config 'wifi-iface' 'cfg2'
        option 'device' 'wl0'
        option 'network' 'lan'
        option 'mode' 'ap'
        option 'ssid' 'moja_siec'
        option 'encryption' 'psk2'
        option 'key' '1234567890'

    config 'wifi-iface' 'cfg3'
        option 'device' 'wl0'
        option 'network' 'lan'
        option 'mode' 'wds'
        option 'ssid' 'MOJ_ISP'
        option 'bssid' '11:22:33:44:55:65'
        option 'encryption' 'psk2'
        option 'key' '0987654321'

Zakończenie
Poniżej zaprezentowano do celów poglądowych pełne konfiguracje trybów AccessPoint i klient z routingiem
AccessPoint

/etc/config/dhcp

    config dnsmasq
        option domainneeded	1
        option boguspriv	1
        option filterwin2k	'0'  #enable for dial on demand
        option localise_queries	1
        option local	'/lan/'
        option domain	'lan'
        option expandhosts	1
        option nonegcache	0
        option authoritative	1
        option readethers	1
        option leasefile	'/tmp/dhcp.leases'
        option resolvfile	'/tmp/resolv.conf.auto'

    config dhcp lan
        option interface	lan
        option start 	100
        option limit	150
        option leasetime	12h

    config dhcp wan
        option interface	wan
        option ignore	1


/etc/config/network

    config 'switch' 'eth0'
        option 'vlan0' '0 1 2 3 5*'
        option 'vlan1' '4 5'

    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 'type' 'bridge'
        option 'ifname' 'eth0.0'
        option 'proto' 'static'
        option 'netmask' '255.255.255.0'
        option 'dns' '192.168.1.1'
        option 'ipaddr' '192.168.1.1'

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


/etc/config/wireless

    config 'wifi-device' 'wl0'
        option 'type' 'broadcom'
        option 'channel' '6'

    config 'wifi-iface' 'cfg2'
        option 'device' 'wl0'
        option 'mode' 'ap'
        option 'network' 'lan'
        option 'ssid' 'moja_siec'
        option 'encryption' 'psk2'
        option 'key' '1234567890'

Klient (sta, APClient)
/etc/config/dhcp

    config dnsmasq
        option domainneeded	1
        option boguspriv	1
        option filterwin2k	'0'  #enable for dial on demand
        option localise_queries	1
        option local	'/lan/'
        option domain	'lan'
        option expandhosts	1
        option nonegcache	0
        option authoritative	1
        option readethers	1
        option leasefile	'/tmp/dhcp.leases'
        option resolvfile	'/tmp/resolv.conf.auto'

    config dhcp lan
        option interface	lan
        option start 	100
        option limit	150
        option leasetime	12h

    config dhcp wan
        option interface	wan
        option ignore	1

/etc/config/network

    config 'switch' 'eth0'
        option 'vlan0' '0 1 2 3 5*'
        option 'vlan1' '4 5'

    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 'type' 'bridge'
        option 'ifname' 'eth0.0'
        option 'proto' 'static'
        option 'netmask' '255.255.255.0'
        option 'dns' '192.168.1.1'
        option 'ipaddr' '192.168.1.1'

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


/etc/config/wireless

    config 'wifi-device' 'wl0'
        option 'type' 'broadcom'
        option 'channel' '6'

    config 'wifi-iface' 'cfg2'
        option 'device' 'wl0'
        option 'mode' 'sta'
        option 'network' 'wan'
        option 'key' '0987654321'
        option 'ssid' 'MOJ_ISP'
        option 'encryption' 'psk2'