Arduino YUN jako router

Arduino YUN można najkrócej scharakteryzować, że  jest to Arduino Leonardo połączone z małym komputerem z WiFi działającym w oparciu o OpenWRT. Skoro tak, to czy YUN może działać jako router? Oczywiście, że tak, domyślnie taka opcja nie jest włączona, wymaga zmian kilku ustawień.

Mając YUN jeszcze nie skonfigurowane podłączamy je do zasilania i czekamy aż pojawi się nam otwarta sieć WiFi o SSID Arduino YUN-XYZ, gdzie XYZ to MAC adres waszego YUN. Pamiętajcie, że jeżeli przytrzymacie przycisk WLAN RST przez 30 sekund, wszystkie ustawienia OpenWRT zostaną skasowane i YUN wystartuje z fabryczną konfiguracją. Przyda się jeżeli kiedyś zapomnicie hasła, albo w wyniku błędu stracicie łączność z YUN.

Normalnie, tak jak opisywałem w Rozpoznaniu Bojem podłączamy YUN do istniejącej sieci WiFi. Teraz spróbujemy innego scenariusza – Arduino pozostanie access pointem a jego port Ethernet podłączymy do jakiegoś routera.

Okno konfiguracji
Okno konfiguracji

Konfiguracja Arduino Yun

Konfiguracja minimum przebiega następująco:

Po podłączeniu się do WiFi Arduino YUN-XYZ  wchodzimy na stronę http://arduinio.local (domyślne hasło to arduino) klikamy w CONFIGURE następnie w Advanced configutation panel (luci). Jeżeli mieliście do czynienia z routerami OpenWRT to powinniście dobrze się czuć w tym interfejsie. Jeżeli dla Was to pierwszy raz, to w menu Network wybieramy WiFi. Będzie tam jedna sieć o SSID Arduino YUN-XYZ, klikamy w Edit przy tej sieci i w zakładce General setup zmieniamy ESSID na nowe, jakiego chcemy używać. UWAGA w czasie testów miałem problemy z podłączaniem się do sieci (laptop z Ubuntu 13.04) gdy SSID miał w nazwie spację i przy szyfrowaniu WPA2. Nie wiem czy to jest jakiś błąd, ale jeżeli nie możesz się potem podłączyć a SSID ma w sobie spację, spróbuj zmienić nazwę SSID.

W zakładce Wireless Security wybieramy rodzaj sieci na szyfrowaną (WPA2) i podajemy hasło. Na dole strony Save&apply. Po restarcie YUN, powinna pojawić się nowa sieć WiFi o nazwie jaką podaliśmy. Podłączamy się do niej i ponownie logujemy na http://arduino.local. Teraz pora zmienić hasło z domyślnego arduino. Nie zostawiajcie domyślnych haseł na urządzeniach, nawet jeżeli sądzicie że to nie będzie nic istotnego. W celu zmiany hasła po zalogowaniu, znowu idziemy do zaawansowanego interfejsu konfiguracyjnego i w menu System wybieramy Administration, podajemy nowe hasło i Save&apply.

Teraz czas na właściwą konfigurację sieci. YUN wstępnie jest skonfigurowany tak jak chcemy, tzn port Ethernet jest przypisany do logicznej sieci WAN a WiFi do sieci LAN. Takie ustawienia nam odpowiadają, pozostaje tylko zezwolić na ruch w odpowiednich kierunkach. Najpierw Network/Firewall i tam docelowa konfiguracja ma wyglądać następująco:

Konfiguracja firewalla na YUN
Konfiguracja firewalla na YUN

 

Najpierw klikamy na Edit przy sieci LAN i tam zmieniamy politykę Forward z reject na accept, ponadto zezwalamy na ruch między strefą LAN a WAN (tylko w tym kierunku), robimy to w sekcji Inter-Zone Forwarding:

Konfiguracja interfejsu LAN
Konfiguracja interfejsu LAN

 

Klikamy Save i pozostaje konfiguracja WAN. Po kliknięciu Edit przy sieci WAN, nie zmieniamy polityk ruchu, tylko włączamy tzw. maskaradę (Masquerading) i pozwalamy na ruch z sieci LAN:

Konfiguracja sieci WAN
Konfiguracja sieci WAN

 

I to tyle. Od teraz YUN działa jako router WiFi, mając sieć WAN (Internet) podłączony do Ethernetu. Jeżeli potrzebujecie odwrotnej konfiguracji to czeka was więcej klikania :) bo trzeba zmienić przypisanie interfejsów (Ethernet i WiFi) do sieci WAN/LAN i potem skonfigurować  polityki firewall’a między LAN i WAN dokładnie tak jak jest opisane tutaj.