Radioamatorska sieć HamNET/Oprogramowanie
Publikacja elektroniczna | |
Autor | Waldemar SP2ONG |
Data publikacji | grudzień 2015 |
Miejsce publikacji | Toruń |
W zależności od przejętej topologi lokalnej sieci możemy użyć różnego firmware w routerach WiFi.
W przypadku topologi Access Point ↔ Station znanej w szerokim zastosowaniu domowym możemy wykorzystać oryginalny firmware na sprzęcie Ubiquiti lub Mikrotik. Jak skonfigurować i używać w takiej topologi sieci odsyłam do opracowania OE1KDA „Poradnik Hamnetu” wydanej w 2015 roku.
W przypadku kiedy chcemy zastosować technologie Mesh Network musimy wgrać alternatywne oprogramowanie do routera na bazie OpenWRT. Wersja HamNET by SP2ONG pozwala pracować na częstotliwościach zgodnie z bandplanem na 2.3 GHz i 5.7 GHz oraz na typowych kanałach WiFi w tych pasmach i konfigurować sieci typu Mesh Network. Poniżej przedstawiony będzie opis zastosowanie routerów do pracy w sieci Mesh network.
Wgrywanie firmware na sprzęt UBIQUITI, TP-Link lub Miktorik znajdziecie w osobnych rozdziałach na końcu tego opracowania.
Zanim przystąpisz do konfiguracji swojego routera będziesz musiał zebrać kilka niezbędnych informacji.
Nazwa node: Dla stacji indywidualnych więc nazwa noda będzie SP2ABC , SQ9ART itd. Kolejne nody uruchamiane pod własnym znakiem które są np. tylko jako router dla linków mogą mieć nazwy: SP2ABC-lnk1, SP2ABC-lnk2, SP2ABC-lnk3 itd. HamnET Node z stacja pogody: SP2ABC-WX, HamNET Node z Webcamer: SP2ABC-webcam
Inna propozycja to nazwy w formie np. SP2ABC (pierwszy nod z SSID 0 wiec nia podajemy) i nazwę będzie pełna hosta będzie sp2abc.ampr.org. Jeśli chcemy uruchomić kolejne nody kontrolowane przez nas używamy kolejnych SSID: SP2ABC-1, SP2ABC-2, SP2ABC-3 tak aż do 15.
Musimy pamiętać ze nasza nazwę pełna hosta jeśli już będziemy częścią sieci AMPRNET musimy zarejestrować na głównym serwerze ampr.org aby np kolega w DL czy w innym miejscu w PL mógł np w swojej przeglądarce napisać: http://sp2abc.amp.org
i połączy się bez konieczności znania IP adresu bo po to jest właśnie nasz główny DNS serwer ampr.org.
QRA Locator: określ w jakim lokatorze będzie uruchomiony Twój router np JO93HA itp
Współrzędne: określ przy pomocy https://www.google.pl/maps w miarę dokładne położenie Twojego routera. Współrzędne muszą być w formacie np:
lat: 53.013754 lon: 18.597901
Adres IP tę informacje dostaniesz od lokalnego koordynatora sieci HamNET.
Po wgraniu firmware odczekać aż NanoStation 2 przeładuje się. Może to potrwać do 5 min. Przestawić kartę sieciowa PC w tryb pobierania automatycznego adresu i kiedy NanoStation 2 przeładuje nasz PC otrzyma IP adres 172.16.1.x gdzie x może byc np 100. następnie w terminalu należy połączyć się z NanoStation 2 poleceniem
telnet 172.16.1.1
Po zalogowaniu ustawić hasło dla użytkownika ‘root’ poleceniem:
# passwd
po wpisaniu tego polecenia pojawi się:
Changing password for root
New password:
Teraz należy wpisać hasło i zatwierdzić klawiszem ENTER (hasło nie jest wyświetlane podczas pisania). Następnie pojawi się prośba o powtórzenie hasła:
Retype password:
Ponownie wpisać hasło i zatwierdzić klawiszem ENTER (hasło nie jest wyświetlane podczas pisania). Jeśli hasła zgadzają się - pojawi się komunikat:
Password for root changed by root
Od tego momentu do systemu można dostać się z zewnątrz poprzez SSH np wykorzystując do tego program PuTTY. Po ustawieniu hasła dla root należy skonfigurować Nano Station 2 do pracy HamNET Mesh pisząc w konsoli polecenie np. dla pasma 2.3 GHz:
hamnet SP2ABC 44.128.1.1 JO93HA
gdzie:
- zamiast SP2ABC wpisujesz swój znak (kolejne wezly można nazywać np SP2ABC-L1, SP2ABC-L2 itd)
- zamiast 44.128.1.1 podać przydzielony przez koordynatora lokalnej sieci Twój IP adres oraz własny QRA lokator.
Po przeładowaniu routera HamNET i ustawienia karty sieciowej komputera w tryb automatycznego pobierania adresu (DHCP) z routera do którego podłączony jest nasz komputer wpisz w przeglądarce web adres:
http://172.16.1.1:8080
Po wpisaniu tego adresu zostaniesz przeniesiony do strony ze statusem routera na bazie OLSRD, wyglądającej mniej więcej tak:
Pliki tekstowe konfiguracyjne możesz edytować na swoim PC wcześniej pobierając je na swojego PC przy pomocy program WinSCP (logować się jako użytkownik ‘root’ oraz hasło jakie ustawiłeś podczas konfiguracji oraz trybu SCP).
Jeśli urządzenie ma być używane na pasmie 5.7 GHz należy użyć komendy do konfiguracji:
hamnet5 SP2ABC 44.128.1.1 JO93HA
gdzie domyślnie ustawione jest kanał pracy 135 (5.675 GHz).
Aby zmienić kanał pracy należy użyć następujące polecenia w konsoli routera:
uci set wireless.@wifi-device[0].channel=xxx
uci commit wireless
wifi
gdzie xxx
to numer kanału - patrz rozdział o Bandplanie.
Aktualizacja firmware
Aktualizacja firmware dla urządzenie typu Ubiquiti NanoStation M2, Ubiquiti NanoStation M5, TP-Link TP-WA5210G polega wgraniu poprzez oprogramowanie tftpd.
Poniżej opis jak zrobić aktualizacje firmware na urządzeniach typu Ubiquiti seria Mx oraz TP-Link (uwaga poniższa metoda nie zadziała na Ubiquiti NanoStation 2, Nano Station 5)
- Ściągnij obraz na dysk (ten z sysupgrade w nazwie), zapisz na dysk pod nazwą
a.bin
. Jeżeli używasz Windows upewnij się, że obraz nazywa sięa.bin
a niea.bin.bin
(Windows domyślnie ukrywa rozszerzenia plików). - Przy pomocy programu WinSCP przekopiuj plik
a.bin
do routera w katalog/tmp/
- Zaloguj się przez ssh do routera przy pomocy program putty, IP: 172.16.1.1, użytkownik root, hasło takie jak ustawiłeś
- Uruchom polecenie
sysupgrade -n /tmp/a.bin
Po wykonaniu aktualizacji należy zalogować się poprzez telnet na router i ponownie go skonfigurować.
Jeśli chcemy zachowac konfiguracje bieżącą to aktualizacje wykonujemy: sysupgrade /tmp/a.bin
Kilka użytecznych komend w HamNET OpenWRT
Generalnie nie będziesz potrzebował używać konsoli pod OpenWRT poza pierwszą konfiguracją ale jeśli chciałbyś coś pozmieniać w plikach konfiguracyjnych sprawdzić ustawienia poniżej parę użytecznych komend.
- Zmiana całej konfiguracji systemu: ponownie wywołać skrypt
hamnet
dla 2 GHz lubhamnet5
dla 5 GHz - Zmiana nazwy noda:
changename nowa_nazwa_noda
np.changename SP2ABC
- Zmiana adresu IP na porcie radiowym:
changeip nowy_adres_ip nowa_maska_sieci
np.changeip 44.128.1.2 255.255.255.0
- Zmiana współrzędnych lokalizacji routera:
changexy lat lon
np.changexy 53.2345 18.1234
. Zwróć uwagę na format współrzędnych jakie należy użyć.
Adres IP dla komputera
Aby wymusić na routerze przydzielanie konkretnego IP adresu np. 172.16.1.2 dla naszego komputera podłączonego do routera HamNET możemy zrobić edycje pliku /etc/dhcp.hosts
i wpisać adres MAC karty sieciowej PC i adres dla niego. Składnia pliku: adres_mac, adres_ip
. Może to być potrzebne jeśli chcemy aby reguły firewall na routerze działały dla tego konkretnego komputera np. przekierowanie portów.
Firewall
Konfiguracja firewall (zapory sieciowej) na routerze HamNET jest w pliku konfiguracyjnym /etc/config/firewall
.
Aby przekierować zapytanie z sieci HamNET po łączu radiowym do naszego web serwera, który jest w sieci domowej podpięty do switcha, gdzie z kolei także jest podpięty router HamNET, z którego następnie nasz web serwer otrzymał IP adres 172.16.1.2 musimy w /etc/config/firewall
dopisać regułę (zamiast adresu 44.128.1.1 wpisujemy swój adres na porcie radiowym):
config redirect
option name WWW Server
option src wlan
option dest lan
option proto tcpudp
option src_dport 80
option dest_port 80
option src_dip 44.128.1.1
option dest_ip 172.16.1.2
Synchronizacja czasu na OpenWRT
Ponieważ OpenWRT na NanoStation 2 nie ma systemu podtrzymywania czasu więc po zaniku zasilania lub reboot ustawienia czasu zostaną wyzerowane i należy ponownie ustawić ręcznie czas. Rozwiązaniem tego problemu jest synchronizacja czasu po sieci poprzez protokół NTP. Aby to zastosować należy mieć w lokalnej sieci dostęp do Sewera czasu NTP który będzie oferował informacje o dokładnym czasie. Zazwyczaj taki serwer jest uruchomiony na gateway AMPRNET lokalnej sieci. Ale można uruchomić niezależnie od niego taki serwera czasu i wszyscy użytkownicy wpisują adres IP tego serwera czasu w swojej konfiguracji i dzięki temu po reboocie routera HamNET automatycznie system ustawi prawidłową datę i czas.
Konfiguracja synchronizacji czasu polega na wpisaniu ip adresu lokalnego serwera czasu w pliku /etc/config/ntpclient
.
Bikon APRS
Jeśli nasza lokalna sieć oferuje dostęp do serwera APRS w sieci AMPRNet możemy uruchomić beacon APRS który będzie wysłał informacje o obiekcie typu „802.11 WLAN” i na mapie APRS będzie widać nasz HamNET Node.
W tym celu należy wykonać edycje pliku /etc/config/aprsbeacon
.
Wpisać swoje dane tzn znak, kod dostępu do serwera APRS (passcode) , adres IP aprs server, współrzędne noda w formacie ddmm.xx.
Mmożna pobrać współrzędne korzystając z mapy http://aprs.fi ustawiając kursor myszki na swojej pozycji odczytać informacje w lewym górnym rogu)
# APRS Server IP
host="44.xx.xx.xx"
port="14580"
# Your callsign
call="NOCALL"
# Your passcode
passcode="xxxxxx"
# Lat corrdinates DDdd.xxN
# Jesli mamy z mapy 531.23N to musimy dolozyc zero tzn: 5301.23N
lat="5312.23N"
# Lon corridnates 0DDdd.xxE
# Jesli mamy z mapy 0182.25E to musimy dolozyc zero tzn: 01802.25E
lon="01802.25E"
Następnie należy w pliku /etc/crontabs/root
usunąć znak komentarza # z linii
# */30 * * * * /etc/config/aprsbeacon
i po zapisaniu pliku uruchomić cron ponownie poleceniem:
/etc/init.d/cron restart
i co 30 min nasz node będzie wysyłał beacon o naszej pozycji i zobaczymy swój znak na mapie APRS.
Optymalizacja parametrów łącza radiowego
Technologia WiFi oraz dostępny sprzęt na rynku wraz oprogramowaniem generalnie jest przeznaczony do używania na małe odległości. W naszym przypadku budujemy sieć bardziej rozległą gdzie odległość pomiędzy routerami mogą być liczone w kilometrach. Dlatego będziemy musieli poeksperymentować z pewnymi dostępnymi parametrami linku radiowego które zazwyczaj nie są ustawiane i używane.
Pierwszym parametrem dostępnym w pliku /etc/config/wireless
jest distance
, gdzie podajemy odległość pomiędzy routerami pomnożoną przez 2 czyli jeśli odległość pomiędzy routerami jest 1800 metrów wpisujemy 3600. Wartości te należy dobrać indywidualnie. Zdefiniowana odległość kontroluje na łączu radiowym wartość ACK. Warto zapoznać się z opisem na stronie: http://www.air-stream.org.au/ACK_Timeouts.
Warto zwrócić uwagę na wielkość mocy ustawianej. Nie zawsze ustawienie maksymalnej mocy karty WiFi poprawia jakość łączą radiowego. Zwiększanie mocy prowadzi także do podnoszenia poziomu szumu. Warto znaleźć optymalną wartości poziomu mocy ustawianej w /etc/config/wireless
przy której link pracuje stabilnie. Lepiej jeśli jest możliwość podłączyć lepszej anteny o lepszym zysku niż zwiększać tylko moc. Antena z lepszym zyskiem mamy korzyści w obie strony tzn podczas nadawania i odbioru.
Warto eksperymentować z ustawieniem parametru w /etc/config/wireless
„Request to Send” RTS. Parametr ten określa długość wysyłanej ramki jaką ma wysyłać urządzenie podczas transmisji na łączu radiowym. W zależności od jakości łącza radiowego, im gorsze łącze tym bardziej trzeba wartość zmniejszać, bo np: jak twoja ramka będzie miała długość ponad 1500 bajtów to jeżeli będzie uszkodzona to będzie odrzucona a nadajnik powtórnie będzie ją nadawał , jeżeli ramki są krótsze to wtedy nawet jak jest odrzucona to traci ciąg tych np: 250 a nie 1500 bajtów.
Drugim parametrem któremu warto próbować optymalizować jest „Frag” czyli fragmentacja która określa od jakiej długości ramki system ma zacząć fragmentować ramki na mniejsze.
Zalecane parametry dla sieci typu mesh:
RTS=250
Frag=512
Eksperymenty warto zacząć od ustawiania wartości RTS przy wyłączonym Frag a dopiero po optymalnym wybraniu RTS można zobaczyć czy ustawiania Frag poprawią nam jakość linku. Należy pamiętać aby wartość Frag była większa niż wartość RTS. Protokól TCP jest bardzo wrażliwy na kolizje, dlatego ważne jest, aby włączyć i dobrać RTS.
Pasma 2.3 GHz oraz 5.7 GHz rządzą się swoimi zasadami i warto poświęcić trochę czasu na optymalne ustawienie wysokości i kierunku anteny.