ESP8266 Repeater, Mesh, NAT, Firewall
Durch einen Zufall bin ich über dieses absolut großartige GitHub Repository gestolpert. Mit diesem Projekt ist es möglich aus einem ESP8266 einen Wifi-Repeater zu bauen, welcher
- ein Mesh aufbauen kann (mehrere ESP8266)
- ein eigenes Subnetz aufbauen kann (NAT)
- eine zusätzliche Firewall Funktionalität besitzt
- eine Monitoring-Schnittstelle bietet
und noch ein paar weitere Funktionalitäten besitzt. Diese Firmware bietet also wesentlich mehr Funktionalität, als ein standardisierter WLAN-Repeater und die Hardwarekosten liegen bei ca. 3,50 EUR pro Stück (zzgl. Hardware für die Stromversorgung, Gehäuse etc.).
In meinem letzten Beitrag habe ich beschrieben, wie ein Temperatursensor am ESP8266 mit Domoticz als Hausautomation die Temperaturüberwachung in einem Serverschrank regeln kann. Problematisch an dieser Stelle war der WLAN-Empfang, welcher gelegentlich zu Verbindungsabbrüchen geführt hat. In diesem Beitrag möchte ich beschreiben, wie ein ESP8266 als WLAN Repeater hier Abhilfe schaffen kann.
Voraussetzung: ESP8266 (in diesem Fall mit Entwicklerboard „NodeMCU“ Modell 12-F), passende Treiber (CH340 / CP2102) installiert.
Zuerst wurde die Firmware heruntergeladen. Dazu wurde das GitHub-Repo als ZIP heruntergeladen und entpackt. Anschließend wurde die Firmware mithilfe des „ESP8266 Download Tool“ von Espressif auf den ESP8266 geflasht. Dazu wird „flash_download_tool_3.8.5.exe“ gestartet

und im sich öffnenden Fenster der „Developer Mode“ gewählt. Im nächsten Fenster muss dann das zum Board/Chip (ESP8266) passende Download Tool ausgewählt werden.
Ist das Download Tool gestartet werden wie in der Abbildung die beiden Firmware-Binarys hinterlegt (Haken am Anfang der Zeilen nicht vergessen!) und die Flash-Size wird auf 32 Mbit festgelegt. Für andere ESP Modelle kann hier ein anderer Wert erforderlich sein. Hilfe findet man im Github Repo von martin-ger (siehe oben). Die beiden Checkboxen „SpiAutoSet“ und „DoNotChgBin“ müssen deaktiviert sein.

Sind alle Parameter richtig gesetzt (COM-Port und Baud-Rate nicht vergessen!) kann mit einem Klick auf „Start“ die Firmware auf den ESP geflasht werden.
Wurde die Firmware erfolgreich auf den ESP geflasht muss dieser neu gestartet werden (entweder Reset Button oder USB-Kabel neu anstöpseln).
Beim Starten leuchtet die LED des ESP. Wenn diese blinkt ist der ESP bereit. Wir suchen nun nach dem WLAN Netz „MyAP“ und verbinden uns. Der Repeater sollte jetzt unter der IP 192.168.4.1 erreichbar sein. Anschließend kann per Putty (oder jedem anderen Programm welches eine Telnet Verbindung aufbauen kann) eine Verbindung zur Konfiguration auf Port 7777 hergestellt werden.
In meinem Fall wurde jeweils der erste Befehl mit „Invalid command“ quittiert. Ich bin mir nicht sicher, ob dies an meiner ESP Version oder Putty liegt. In jedem Fall funktioniert alles ab dem zweiten Befehl.


Wir konfigurieren nun den Repeater mit folgenden Befehlen:
|
1 2 3 4 5 6 |
set ssid Mein%20WLAN set password SuperGeheim123 set ap_ssid espRepeater set ap_password Geheim345 set network 192.168.4.0/24 save |
Diese Befehle setzen folgende Werte:
- Die SSID des Haupt-Netzwerkes, mit welchem sich der ESP verbinden soll und dessen Signal er verstärken soll auf „Mein WLAN“. Zu beachten ist, dass hier das Leerzeichen durch „%20“ (URL-Encoding) dargestellt wird
- Das WLAN-Kennwort für das Haupt-Netzwerk auf den Wert „SuperGeheim123“
- Die SSID des AccessPoints (des Repeaters) auf den Wert „espRepeater“
- Das WLAN-Kennwort für das WLAN „espRepeater“ auf den Wert „Geheim345“
- Die IP Adresseinstellungen für das Subnetz werden im Linux-Style angegeben
Die Konfiguration wird mit „save“ in den Flashspeicher geschrieben. Damit ist die Grundkonfiguration abgeschlossen.
Anschließend wurde der ESP mit dem Temperatursensor mit dem neuen Accesspoint verbunden. Damit sichergestellt wird, dass dieser auch die immer gleiche IP-Adresse bekommt, wurde die DHCP-Tabelle auf dem Repeater mit dem Befehl „save dhcp“ ebenfalls in den Flashspeicher geschrieben. Damit bekommt der ESP nun immer die gleiche IP vom Repeater zugewiesen. Sicherheitshalber wurde auf dem ESP die vergebene IP ebenfalls als statische Adresse hinterlegt. Ob es hierbei noch zu Problemen kommt, wird die Zukunft zeigen.
Damit überhaupt eine Kommunikation zwischen Hauptnetz und Temperatur-ESP zustande kommen kann, muss die Firewall auf dem Repeater entsprechend konfiguriert werden.
Mit dem Befehl
|
1 |
acl from_sta IP any any allow |
wird jegliche Kommunikation aus dem Haupt-Netzwerk in das Subnetz erlaubt. Da der Repeater in diesem Fall ebenfalls als NAT-Device konfiguriert werden sollte, muss noch ein Portmapping auf den Temperatur-ESP gemacht werden.
Dies erfolgt mit dem Befehl
|
1 |
portmap add TCP 80 <IP des Gerätes> 80 |
damit wird der Port 80 des Repeater im Hauptnetzwerk auf den Port 80 des Gerätes mit der <IP des Gerätes> gemappt.
Abschließend muss noch im Router des Haupt-Netzwerkes eine statische Route für das 192.168.4.0 Netzwerk eingetragen werden. Wenn alles funktioniert hat, ist der Temperatursensor im 192.168.4.0 Netz nun aus dem Hauptnetz über die IP des Repeaters auf Port 80 erreichbar.