Temat: Sieć gościnna (guest network) - nowe podejście
Mój router to TP-LINK TL-WR1043ND z Backfire 10.03.1 od Cezarego, ale powinno działać też na innych (o ile chipset wspiera MultiSSID)
Chodzi o uruchomienie kilku sieci wifi na jednym routerze i możliwość definiowania różnych polityk dla każdej sieci. W przykładzie klienci sieci mają dostęp w zasadzie tylko internetu (oraz DNS i DHCP).
Standardowy sposób opisany tu: http://openrouter.info/forum/viewtopic. … &t=967 oraz w http://wiki.openwrt.org/doc/recipes/guest-wlan nie chciał u mnie działać. Wykluczam pomyłkę, bo spędziłem nad tym kilka godzin i kilka firstbootów.
Konfiguracja poniżej zawiera niektóre elementy skopiowane z podanych przepisów (DHCP i firewall)
Można sobie takich wirtualnych sieci wifi zafundować kilka - dla każdej trzeba dodać analogiczny komplet wpisów. Nie należy kasować definicji istniejącej sieci lan. Poniższe fragmenty należy dopisać do wskazanych plików. W wielu miejscach powtarza się (przykładowa) nazwa sieci 'guest'. Ta nazwa istnieje tylko w systemie, nie ma nic wspólnego z SSIDem. Można wybrać cokolwiek innego: public, dzieci, whatever, ale należy stosować ją konsekwentnie. Oprócz nazwy sieci powtarza się dwukrotnie macadres. Ma być ten sam.
/etc/config/wireless
config 'wifi-iface'
option 'device' 'xxxx'
option 'network' 'guest'
option 'mode' 'ap'
option 'macaddr' 'xx:xx:xx:xx:xx:xx'
option 'ssid' 'xxxx'
option 'encryption' 'xxxxxx'
option 'key' 'xxxx'
option 'isolate' '1'
option device: takie samo, jak ma pierwsza sekcja w tym pliku. U mnie to jest 'radio0'.
option network: tak się będzie nasza sieć nazywać w systemie i tej nazwy będziemy używać wielokrotnie.
option macaddr: trzeba sobie wybrać jakiś nowy adres MAC. Na przykład o jeden numerek większy, niż interfejs wifi.
option ssid, option encryption, option key: - według uznania.
option isolate: być może twoja karta sieciowa nie wspiera izolowania klientów i opcja nie zadziała. Ale opcja nie zaszkodzi.
/etc/config/network
config 'interface' 'guest'
option 'ifname' 'eth0.3'
option 'type' 'bridge'
option 'proto' 'static'
option 'netmask' '255.255.255.0'
option 'ipaddr' '192.168.4.1'
option macaddr 'xx:xx:xx:xx:xx:xx'
config interface: trzeba użyć tej samej nazwy sieci, co w opcji 'network' w pliku /etc/config/wireless
option ifname: Należy spojrzeć, jak jest zdefiniowany interfejs dla sieci 'lan' w tym pliku, który edytujesz i nowy interfejs nazwać podobnie, ale nazwa musi być nowa i unikalna. Albo spojrzeć na schemat topologii routera. W moim przykładzie lan mieszka na interfejsie 'eth0.1', wan na 'eth0.2', to nowy interfejs nazwałem 'eth0.3'. Nawiasem mówiąc, ten interfejs całkiem sztuczny i nieistniejący będzie powodem wpisów w logu: "command failed: No such device (-19)". Nie przejmować się.
option ipaddr, option netmask: do własnego uznania.
option macaddr: Taki sam, jak przed chwilą wpisaliśmy w pliku /etc/config/wireless.
/etc/config/dhcp
config dhcp guest
option interface guest
option start 100
option limit 150
option leasetime 12h
config dhcp, option interface: ta sama nazwa sieci, używana w obu plikach powyżej.
Pozostałe parametry: do własnego uznania.
/etc/config/firewall
config 'zone'
option 'name' 'guest'
option 'input' 'REJECT'
option 'forward' 'REJECT'
option 'output' 'ACCEPT'
config 'forwarding'
option 'src' 'guest'
option 'dest' 'wan'
config 'rule'
option 'src' 'guest'
option 'dest_port' '53'
option 'proto' 'tcpudp'
option 'target' 'ACCEPT'
config 'rule'
option 'src' 'guest'
option 'src_port' '67-68'
option 'dest_port' '67-68'
option 'proto' 'udp'
option 'target' 'ACCEPT'
W tym fragmencie powyżej parametr 'guest' występuje cztery razy. Należy użyć (4 razy) nazwy sieci tej samej, co w plikach powyżej.
Ta definicja separuje klientów nowej sieci wifi od zasobów routera oraz naszej sieci, do routera docierają tylko protokoły DHCP i DNS. Reszta ruchu z nowej sieci jest kierowana tylko do interfejsu wan.
Koniec.
Restart routera jest konieczny
Powodzenia.