17.10.2008
Większość małych i średnich firm w Polsce niestety nie ma ochoty inwestować w droższe routery np. Cisco, których ceny zaczynają się od kilku tysięcy złotych. Z kolei tańszy sprzęt zwykle niewiele może. Szczęśliwie i tutaj z pomocą przychodzi społeczność wolnego oprogramowania. Interesującą alternatywą (w cenie ok. 200 zł) dla drogich routerów jest Linksys WRT54GL. Umożliwia on zainstalowanie na nim różnego rodzaju dedykowanych dystrybucji GNU Linksa. Jedną z bardziej zaawansowanych (rekomendacja z #debian.pl - dziękuję) jest OpenWRT.
Kilka słów o sprzęcie
Router zbudowany jest w oparciu o architekturę MIPS. Ma chipset Broadcom 5352EKPB, a procesor taktowany jest zegarem 200MHz. Ma 16MB RAM i 4MB flash. Szczegółowe informacje o sprzęcie można znaleźć tutaj.
Instalacja OpenWRT
Uwagi wstępne:
OpenWRT można sobie skompilować lub pobrać gotową paczkę. Kompilacja jest dość prosta, więc jeśli zależy nam na "szytej na miarę" dystrybucji, lepiej wybrać tą drogę. Paczkę pobieramy z downloads.openwrt.org. Na dzień dzisiejszy najnowszą wersją jest kamikaze 7.09. Paczki dla naszego chipsetu znajdują się w katalogach brcm*. Uwaga: wersja z jądrem 2.6 na razie nie obsługuje WiFi! Paczka gotowa nazywa się openwrt-wrt54g-2.4-squashfs.bin.
Jeśli mam jeszcze oryginalny firmware linksys, wówczas instalujemy korzystając ze standardowej procedury upgradeu firmware, przez przeglądarkę www. Jeśli mamy już wcześniej zainstalowaną wersję OpenWRT, którą chcemy zmienić na nowszą, możemy skorzystać z polecenia mtd -r write openwrt-wrt54g-2.4-squashfs.bin linux.
Konfiguracja
Po instalacji WiFi jest domyślnie wyłączone. Do konfiguracji różnych parametrów służy polecenie uci. Uruchamiamy sieć bezprzewodową następująco:
uci set wireless.wl0.disabled=0 # Ustawienie parametru
uci commit wireless && wifi # Zatwierdzenie zmian w sekcji wireless i wymuszenie odczytania ich komedną wifi
Po tym kroku dioda WLAN powinna się zaświecić.
Warto też zainstalować sobie pakiet wl:
ipkg update # Aktualizacja listy pakietów
ipkg install wl # Instalacja pakietu wl
Jeśli chcemy sprawdzić kto korzysta z WiFi robimy to poleceniem wl assoclist.
W razie problemów
W przypadku kłopotów Linksys zaleca metodę 30/30/30:
Warto też sprawdzić czy nawet jeśli nie działają inne porty (http, ssh) to może zadziała np. TFTP. Procedura instalacji przez tftp wygląda następująco:
tftp 192.168.1.1
binary
rexmt 1
timeout 60
trace
Packet tracing on.
tftp> put openwrt-xxx-x.x-xxx.bin
Inne przydatne polecenia
logread - wyświetlenie zawartości logów syslogd.
Diagnostyka Wi-Fi
Przydatne polecenia do diagnostyki sieci WiFi:
wl isup
wl assoclist
iwconfig
tcpdump -i wl0
Uwaga! Wykonanie polecenia iwlist scan może powodować wyłączenie sieci WiFi.
Duże obciążenie
Zdarzyła mi się (po ok. 2 miesiącach działania routera) sytuacja kiedy obciążenie routera monitorowane poleceniem top zbliżało się do jedynki. Praca zdalna wtedy okazywała się praktycznie niemożliwa. Połączenie kablowe w miarę działało, natomiast wszystkich chętnych do połączenia bezprzewodowego po chwili wyrzucało z sieci. Najbardziej obciążającym procesem był ksoftirqd_CPU0, który odpowiada za połączenia bezprzewodowe. Wyłączenie i włączenie zasilania niewiele zmieniało - po chwili obciążenie znowu rosło. Pomogło wyłączenie sieci wifi poleceniem wifi down na minutkę i potem włączenie jej ponowne wifi up.
Przepełnienie dysku - uwaga!
System plików JFFS ma pewną nieprzyjemną właściwość. Przepełnienie go powoduje brak możliwości zapisu na dysk, nawet pomimo późniejszego skasowania kilku plików. Nie można nawet zmienić zawartości istniejących plików, tym samym zmienić konfiguracji itp. Rozwiązaniem może być zwolnienie co najmniej 256kB. Więcej na ten temat jest tutaj.
Dalsza lektura
Oprócz wymienionych wyżej stron www polecam też książkę Linksys WRT54G Ultimate Hacking.
Happy hacking :)