OpenWRT VLAN und TL-SG105E Switch

Mit OpenWRT wird der TP-Link Router (TL-WR1043ND) zum All-Inclusive Gerät. So wird es zum Beispiel möglich, mit VLANs zu arbeiten.

Bei mir wird mein Internetzugang durch ein Modem bereitgestellt. Mein Router steht auf einem Regal in der Mitte der jLANWohnung. Ein 10 Meter Kabel verbindet die beiden Geräte miteinander. Ich möchte nun einen Drucker in die Ecke zu dem Modem stellen und meine TV Geräte (auch auf der Seite mit dem Modem) ebenfalls in das LAN einbinden.

Um das zu realisieren habe ich diesen Switch (TL-SG105E) von TP-Link gekauft. Die Zeichnung zeigt den logischen Aufbau des Netzwerkes, wie es geplant ist.

Den TP-Link Router (TL-WR1043ND) habe ich schon länger im Einsatz und mit OpenWRT geflasht. Um nun ein VLAN einzurichten wechsle ich von der GUI (Luci) auf die Kommandozeile. Ich habe es anfangs auch per Luci probiert, allerdings hat es nie funktioniert. Nachdem ich es per Kommandozeile (genau die selbe Konfiguration) gemacht habe, hat alles funktioniert.

Router Konfiguration

VLAN anlegen:

Hier habe ich die Datei „/etc/config/network“ editiert und folgendes hinzugefügt:

‚lan‘ steht für den Interface-Namen, der bei Luci unter dem Punkt Interfaces aufgelistet wird.
‚eth0.3‘ ist das physikalische Interface, das der VLAN-ID 3 zugeordnet wurde.

Es gibt auch Router, die mehrere physikalische Interfaces besitzen. Dort müssen die VLAN Interfaces mit z.B. „eth1.3“ angelegt werden. Da mein Router nur ein Interface besitzt, muss ich darauf nicht achten.

VLAN dem Switch-Interface zuordnen:

Der Switch in dem Router (Port 0-4) muss ebenfalls konfiguriert werden. Hier müssen die VLANs entsprechen „getagged“ oder „untagged“ konfiguriert werden.

Meine Konfiguration sieht so aus:

„config switch_vlan“ stellt ein VLAN an dem Switch bereit.

„option device“ gibt das Gerät an.

„option vlan“ gibt die VLAN ID an.

„option ports“ gibt die Ports des Switches an, wobei der Port und ein „t“ dahinter (z.B. 1t) „tagged“ bedeutet.

DHCP einrichten und Neustart

Da für das VLAN „LAN“ (in meinem Fall) auch DHCP aktiviert werden soll, muss das in die Konfigurationsdatei „/etc/config/dhcp“ eingetragen werden:

Mit dieser Konfiguration werden nun aus meinem LAN IP’s aus der Range „192.168.1.100 – 192.168.1.250“ vergeben.

Danach muss noch der Netzwerk Dienst neu gestartet werden:

 Switch Konfiguration

Den Switch kann man nur über die GUI/Software von TP-Link konfigurieren. Diese einfach auf der Webseite herunterladen. Am besten auch gleich noch die aktuellste Firmware. Wenn die Software gestartet wird, erscheint eine Übersicht aller TP-Link Easy Smart Switche. Einfach die IP-Konfiguration des Gerätes anklicken und dort die neue IP angeben. Nachdem der Hostname des Switch und das Passwort des „admin“ Users geändert wurden, kann das VLAN konfigurieren anfangen.

VLANs eintragen

Die VLANs werden in dem oberen Tab-Reiter eingetragen und konfiguriert. Hier habe ich „802.1Q VLAN“ aktiviert und meine VLANs eingetragen. Die Ports habe ich entsprechend meiner Zeichnung oben konfiguriert.

Testen

Nach dem Speichern der Konfiguration konnte ich den Switch testen. Hier war es mir sehr wichtig das Testen abzuschließen, bevor ich das WAN anschließe. Ich wollte ungern eins meiner Geräte direkt ins Internet durch reichen.

Aufbau des Endzustands

Alle Tests verliefen positiv und somit konnte ich die Hardware nach der Zeichnung verkabeln. Performance ist wie zuvor. Ich habe eine 100Mbit Leitung und lade nach wie vor mit maximaler Geschwindigkeit herunter.

openHab externe Scripte ausführen

Zu Testzwecken möchte ich nun an den Raspberry Pi eine LED anschließen, um diese dann per openHab an- und auszuschalten. Da standardmäßig keine Scripte auf dem Server ausgeführt werden können, muss ein Add-On heruntergeladen und integriert werden. Das Add-On heist

org.openhab.binding.exec-1.5.1.jar

Gedownloadet werden kann es hier:

www.openhab.org/downloads.html

Nach dem entpacken kopiere ich das .jar File in das Add-On Verzeichnis des openHab Servers.

Um nun mit dem Add-On Scripte ausführen zu können, habe ich folgendes Script unter /home/openhab/scripte/on-off.py angelegt:

Dem Ordner /home/openhab habe ich mit

modifiziert. Somit ist sichergestellt, dass die openHab Application auch sicher darauf zugreifen kann.

Als nächstes muss das Item angepasst werden. Dazu habe ich den Eintrag in der „wohnzimmer.items“ folgend verändert:

Das „on-off.py“ Script muss mit Root-Rechten ausgeführt werden, da sonst wiringPi nicht initialisiert werden kann. Im Netz gibt es zahlreiche verschiedene Bastlerlösungen, die das Problem anders beheben.

Mein Schaltplan für den Raspberry Pi sieht wie folgt aus:

raspberryPi-with-ledAchtung: Die GPIO Bezeichnungen stimmen nicht mit denen überein, die durch wiringPi benutzt werden.

WiringPi GPIOs Grafik, dies gilt aber auch nur für die von mir benutzt Option:

Hier noch ein Video, wie ich eine LED mit openHab einschalte:

Nach diesem Test bin ich noch mehr von openHab begeistert, wie zuvor schon. Es ist relativ einfach zu konfigurieren. Das mit den externen Scripten finde ich total klasse. So lässt sich alles einbinden. In der Dokumentation des Add-Ons habe ich gelesen, dass auch Input Werte funktionieren. Vielleicht ist es Zeit für einen Temperatursensor.

 

Quellen:

https://github.com/openhab/openhab/wiki/Exec-Binding

http://www.tutorialspoint.com/python/python_command_line_arguments.htm

http://wiringpi.com/