VLANs mit UniFi USG und Unifi AP, Fritzbox und Netgear Switches

eingetragen in: Allgemein, FritzBox, Synology, Unifi 18

Ziel ist es getrennte Netzwerke für die unterschiedliche Geräte zur Verfügung zu stellen. Es soll ein Netzwerk für die Familie mit Zugriff auf die Synology NAS, Drucker und untereinander geben. Dann solle es ein Gastnetz geben, welches kein Zugriff auf das Familiennetzwerk hat, aber im Internet surfen darf. Weiterhin soll es ein Smarthome Netz ohne Zugriff aufs Internet und auf die anderen Netzwerke geben. Zu aller letzt gibt es noch ein Netzwerk für Magenta TV (T-Home Eintertain). Das Netz hat Zugang zum Internet und zu keinem anderen Netz.

Jetzt kann man die 4 Netzte (Familie, Gast, Smarthome u. TV) physikalisch voneinander trennen. D.h. man benötigt für jedes Netzwerk eigene Netzwerkkomponenten wie Switches und jeweils eine eigene Verkabelung. Das ist teuer und aufwändig.
Es ist aber möglich ein physikalisches LAN durch VLANs logisch in verschiedene Netzwerke zu trennen. D.h. sehr vereinfacht dargestellt, es können verschiedene Netzwerke per VLAN über eine physikalisches Netzwerk geleitet werden. Um VLANs abzubilden sind Switches die VLAN fähig sind notwendig. Zusätzlich zu den VLAN fähigen Switches habe ich noch VLAN fähige WLAN Accesspoints und ein VLAN fähiges Security Gateway.

Mein Netzwerk soll folgendermaßen aussehen:

NetzwerkVLANWLANBeschreibung
192.168.1.0/24(VLAN 1)Managed Network für die
Netzwerkkomponenten
192.168.7.0/24VLAN 7Magenta TV
192.168.20.0/24VLAN 20AP Stueben und
AP Stueben Hotspot
Familiennetzwerk
192.168.25.0/24VLAN 25AP Stueben SmarthomeSmarthome Netzwerk
192.168.100.0/24VLAN 100AP Stueben Guest
Gästenetzwerk

Im Einsatz habe ich eine Fritzbox als Intertnetrouter (WLAN ist deaktiviert), ein Unifi Security Gateway als Firewall und um die Netze in VLANs voneinander zu trennen. Dann habe ich noch zwei Unifi WLAN Accespoints die auch VLAN unterstützen, sowie zwei VLAN fähige Netgear Switches.

Statt dem Unifi Security Gateway kann man alternativ auch die 4 LAN Anschlüsse der Fritzbox jeweils direkt mit jeweils einem Port des Netgear Switches verbinden und jedem Switch Port ein VLAN zuweisen. Die zweite Alternative wäre einen Raspberry PI für die Aufgabe eines Security GW zu verwenden.

Bei der Fritzbox Lösung oben sind gleich 4 Ports auf dem Switch belegt. Ich habe diesen Weg aber trotzdem für das Magenta TV VLAN 7 gewählt, da Magenta TV über das Unifi Security Gateway immer nach 10 Sekunden hängt.

NetzwerkkomponenteIP AdresseAufgabe
Fritzbox 7490192.168.2.1Internetrouter und VoIP Telefonie (WLAN ist deaktiviert)
Netgear GS108Ev3 – Keller192.168.1.50Manages Switches mit VLAN und IGMPv3 für IP TV (Magenta TV) im Keller
Netgear GS108Ev3 – Wohnzimmer192.168.1.51Manages Switches mit VLAN und IGMPv3 für IP TV (Magenta TV) im Wohnzimmer
Unifi AP AC LR – Wohnzimmer192.168.1.40WLAN Accesspoints mit VLAN Support im Wohnzimmer
Unifi AP AC LR – Dachboden192.168.1.41WLAN Accesspoints mit VLAN Support auf dem Dachboden
Unifi Security GW192.168.2.2 (WAN Port)
192.168.1.1
192.168.20.1
192.168.25.1
192.168.100.1
Security Gateway als Firewall und um die physikalische Netze in VLANs aufzugliedern
Unifi Controller 192.168.1.2Raspberry PI mit der Unifi Contoller Software zum managen der Unifi Geräte

Die Zielnetzwerkarchitektur wie ganz oben beschrieben grafisch dargestellt.

Nun geht es an das konfigurieren. Auf der Fritzbox 7490 ist das Netzwerk auf 192.168.2.0 mit Netmask 255.255.255.0 einzurichten. Dafür gehe auf der Fritzbox auf Heimnetzwerk -> Netzwerk -> Netzwerkeinstelleung und wähle IPv4 Adressen aus.
Wichtig, wenn Du Unifi Geräte nutzt, wähle ein Netzwerkbereich ungleich 192.168.1.0 aus. Das macht die Konfiguration sehr viel einfacher!

Als nächstes ist das Unifi Security Gateway mit der Fritzbox über den WAN Port und der LAN Port mit dem ersten Switch zu verbinden. Da auf der Fritzbox und das Unifi Security jeweils NAT aktiviert ist, findet ein doppeltes NAT statt. Wie das zu verhindern ist, kannst Du hier lesen.
Jetzt ist das Security Gateway zu konfigurieren. Dafür muss der Unifi Controller installiert sein.
Auf dem Unifi Security Gateway sind die VLANS und WLANs einzurichten. Das Unifi Security GW hat jeweils für jedes VLAN eine eigene IP Adresse (siehe Tabelle oben).
Die Konfiguration kann den Screenshots entnommen werden und ist dank des Unifi Controllers nicht weiter kompliziert.

Jetzt müssen die Netgear Switches konfiguriert werden. Dieses ist leider nicht so komfortable wie bei den Unifi Geräten. Dafür sind Switches sehr viel günstiger. Die Switches haben wie auch die anderen Netzwerkkomponenten mit Ausnahme der Fritzbox eine IP Adresse aus dem Managed Netz 192.168.1.0. Das VLAN ist unter dem Menüpunkt VLAN -> 802.1Q und Advanced zu konfigurieren. Es sind die Punkte VLAN-Konfiguration, VLAN-Mitgliedschaft und VLAN-PVID zu mit den Werten der Tabelle unten zu pflegen. In der Tabelle steht U für unttaged und T für Tagged. Für das Unifi Managed Network könnte man theoretisch auch immer Tagged für VLAN1 setzen. Mir wurde aber von einem Netzwerkadministrator geraten hier Untagged einzutragen, auch wenn es anderes ginge.

Kurze Erklärung der Unterschied zwischen Tagged und Untagged. Ein VLAN-Tag ist eine Erweiterung des Ethernet-Headers um eine VLAN-ID zur Erkennung des VLANs.
Ein Switch-Port, an dem ein nicht VLAN-fähiges Endgerät angeschlossen ist, muss ungetagged konfiguriert werden, damit keine Frames mit VLAN-Tag an das Endgerät gesendet werden. Der Switch entfernt dann vor dem Senden das Tag und versieht im Gegenzug Frames, die vom Endgerät eingehen, beim Empfang mit dem entsprechenden Tag. Der Grund für diese Konfiguration ist, dass die allermeisten Endgeräte kein VLAN unterstützen.
Ein Switch-Port, an dem ein VLAN-fähiges Endgerät angeschlossen ist, muss tagged konfiguriert werden. In meinem Fall ist das z.B. die NAS, die Switches und das Unifi Security Gateway.
Die PVID ist die VLAN-ID, die ein Port eingehenden Datenpaketen ohne VLAN-Tag (unttaged) zuweist.


Netgear Switch Keller:

PortVLAN1VLAN7VLAN20VLAN25VLAN100PVIDBeschreibung
1UTTT1Unifi Security GW
2UTTTT1Switch Wohnzimmer
3U1Unifi Conroller
4TT20NAS
5UTTT1Unifi WLAN AP Dachboden
6U7Fritzbox LAN Port 2 für Magenta TV
7U7Magenta TV 1. OG

Die nachfolgenden Screenshots zeigen die Konfiguration, der obigen Tabelle.


Netgear Switch Wohnzimmer:

PortVLAN1VLAN7VLAN20VLAN25VLAN100PVIDBeschreibung
1UTTTT1Switch Keller
2UTTT1Unifi WLAN AP Wohnzimmer
3U7Magenta TV Wohnzimmer
4U20Notebook
5U100Notebook Guest

Analog zu der Konfiguration des Keller Netgear Switches ist die Konfiguration des Wohnzimmer Switches vorzunehmen.
Jetzt ist noch für Magenta TV auf den Switches IGMP Snooping zu aktivieren und das VLAN 7 einzutragen

Mehrere VLANs mit einem Netzwerkadapter auf der Synology

eingetragen in: Allgemein, Docker, ioBroker, Synology 4

Manchmal benötigt man mehrere Netzwerke auf der Synology NAS. Bei einer Netzwerkkarte kann man dieses, wenn es die Netzwerkkomponenten wie z.B. Router und Switches zulassen mit VLANs abbilden.

Bei mir läuft auf der Synolgy NAS 216+II im Docker Container die IOT Anwendung ioBroker um meine Smarthomegeräte zu steuern. Alle Smarthomegeräte im LAN und WLAN sollen in einem extra Netzwerk ohne Zugriff auf das Heimnetzwerk und Internet sein.

Aus diesem Grund benötige ich 2 von einander getrennte Netzwerke. Eines für mein Heimnetzwerk mit Zugriff auf das Internet, Drucker, heimische PCs usw. Und ein Netzwerk für die Geräte ohne Zugriff auf die heimischen PCs und Internet. Da ich keine 2 Netzwerkanschlüsse habe, wird dieses über VLANs wie folgt abgebildet:

NetwerkVLANAufgabe
192.168.20.0/24VLAN 20Heimnetzwerk mit Zugriff auf das Internet und die heimischen PCs und mit Verbindung zum Smarthomenetzwerk (VLAN 25)
192.168.25.0/24VLAN 25Netzwerk mit den Smarthomegeräten ohne Internetzugriff und ohne Verbindung zum Homenetzwerk (VLAN 20)

Leider kann man auf der Synology NAS mit einer Netzwerkkarte genau ein VLAN über die Oberfläche einrichten. Dieses ist als erstes zu tun. Dafür in der Systemsteuerung der Punkt Netzwerk aufzurufen. Dort auf den Reiter „Netzwerk-Schnittstelle“ auswählen. Hier LAN anklicken und auf bearbeiten gehen. Jetzt das VLAN aktivieren und das VLAN eingeben.

Damit ist das VLAN 20 eingerichtet. Vergesse vorher nicht den Port der NAS an dem Switch auf VLAN 20 tagged zu stellen. Sonst kannst Du die Synology NAS nicht mehr erreichen.

Nun musst Du Dich per ssh oder telnet auf der Synology NAS anmelden. Wechsele in das Verzeichnis /etc/sysconfig/network-scripts und kopiere die Konfiguration des VLAN 20 welches Du über die Synology Oberfläche angelegt hast für das VLAN 25.

cd /etc/sysconfig/network-scripts
sudo cp ifcfg-eth0.20 ifcfg-eth0.25

Im nächsten Schritt musst Du die Netzwerkadressen und Devices des eben kopierten Interfaces ifcfg-eth0.25 ändern.

# Geänderte ifcfg-eth0.25 
DEVICE=eth0.25
VLAN_ROW_DEVICE=eth0
VLAN_ID=25
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.25.30
NETMASK=255.255.255.0

Entweder Du startest die NAS neu oder die Netzwerk Services mit sudo /etc/rc.network restart

Wer wie ich noch für die eingerichteten VLANs die MACVLANs für die Docker Container erstellen möchte, muss folgendes tun:

# MACVLAN für VLAN 20 - IP Adresse 192.168.20.80/32 
ip link del mac20
ip link add mac20 link eth0.20 type macvlan mode bridge
ip addr add 192.168.20.80/32 dev mac20
ip link set mac20 up
ip route add 192.168.20.80/28 dev mac20

# MACVLAN für VLAN 25 - IP Adresse 192.168.25.80/32 
ip link del mac25
ip link add mac25 link eth0.25 type macvlan mode bridge
ip addr add 192.168.25.80/32 dev mac25
ip link set mac25 up
ip route add 192.168.25.80/28 dev mac25

# Anlage MACVLAN 20 für Docker Container für Netz 192.168.20.80/28
docker network create -d macvlan --subnet=192.168.20.0/24 --gateway=192.168.20.1 --ip-range=192.168.20.80/28  --aux-address 'host=192.168.20.80' -o parent=eth0.20 macvlan20

# Anlage MACVLAN 25 für Docker Container für Netz 192.168.25.80/28
docker network create -d macvlan --subnet=192.168.25.0/24 --gateway=192.168.25.1 --ip-range=192.168.25.80/28  --aux-address 'host=192.168.25.80' -o parent=eth0.25 macvlan25

Mehr zu MACVLANs den findet Du hier. Das Thema ist nicht ganz einfach!

Damit sind die MACVLANs für beide VLANs eingerichtet und können im Docker verwendet werden. Der ioBroker Docker Container hat bei mir 2 MACVLANs. Die Sonoff, Shelly, Yelight, Xiaomi, … Adapter horchen im 192.168.25.0 Netz. Die ioBroker Web und Admin Oberfläche sind nur im 192.168.20.0 erreichbar aber nicht im 192.168.25.0 Netz.

SSH Login ohne Passwort auf dem Raspberry

eingetragen in: Allgemein, Synology 4

Ich möchte mich als User backup von der NAS auf meinem Raspberry mit root per ssh anmelden ohne ein Passwort einzugeben (das ist aus Sicherheitsgründen mit dem User root natürlich eine schlechte Idee) um z.B. Dateien jeden Tag von dem Raspberry auf die NAS zu kopieren.

Root Login per SSH erlauben

Melde Dich auf dem Raspberry mit dem User pi an (Default Passwort lautet raspberry). Als erstes änderst Du das Passwort vom User root.

pi@raspbery:~ $ sudo passwd root
New password: 
Retype new password: 

Anschließend musst Du die Datei Datei /etc/ssh/sshd_config editieren. Suche in der Datei nach dem Eintrag PermitRootLogin. Ersetze den Parameter mit yes. Sollte der Eintrag fehlen, dann füge diesen hinzu.

pi@raspbery:~ $ sudo vi /etc/ssh/sshd_config 

Ausschnitt aus der sshd_config.

# Authentication:
PermitRootLogin yes 

Jetzt noch sshd mit sudo service sshd reload neu starten. Jetzt solltest Du dich mit ssh@raspberry an Deinem Raspberry anmelden können.

SSH Login ohne Passwort

Da ich mich von meiner NAS mit dem User backup auf dem Raspberry mit User root ohne Passwort anmelden möchte, muss ein Zertifikat austauschen.

Prüfe als User backup auf der NAS ob es eine Datei ~/.ssh/id_rsa_pub gibt. Ist das nicht der Fall. Dann führe folgenden Befehl aus.

backup@nas:~ $ ssh-keygen -t rsa -b 4096
Generating public/private rsa key pair.
Enter file in which to save the key (~/.ssh/id_rsa): 
Created directory '~/.ssh'.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in ~/.ssh/id_rsa.
Your public key has been saved in ~/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:ez0m+hyjHk0at/kWbfYkgtFTJkj9hTQ90oPyFnm98tw 
backup@nas
The key's randomart image is:
+---[RSA 4096]----+
|         ..o .*o.|
|          ..o=+*+|
|           .o=+.+|
|          . o+.. |
|        S oo.o+ .|
|         B.+o =oE|
|        + O += + |
|         * *..  .|
|       .+.o..    |
+----[SHA256]-----+

Jetzt hast Du einen Private und Public Key im ~/.ssh/ Verzeichnis auf der NAS für den Benutzer backup erstellt. Als nächstes muss der Inhalt der id_rsa.pub auf den Rasperry in die Datei ~/.ssh/authorized_keys‘ kopiert werden.

backup@nas:~ $ ssh root@pi 'mkdir -p ~/.ssh'
backup@nas:~ $ cat ~/.ssh/id_rsa.pub | ssh root@pi 'cat >> ~/.ssh/authorized_keys'

Ab sofort kannst Du Dich nun von der NAS als Benutzer backup auf dem Raspberry als User root ohne Passwort anmelden.

backup@nas:~ $ ssh root@backup
pi@raspbery:~ $ 

Unifi Controller auf dem Raspberry

eingetragen in: Allgemein, Unifi 1

Installiere das Raspberry Lite Image. Dafür musst Du dieses downloaden und auf eine SD Karte schreiben. Auf dem Mac kannst Du dieses z.B. dem Tool ApplePi-Baker erledigen. Hast Du das Image erstellst und Du hast wie ich keinen Monitor und keine Tastatur für den Raspberry, erstelle auf der SD Karte im Verzeichnis boot eine leere Datei mit Namen ssh . Jetzt hast Du die Möglichkeit dich später per SSH auf den Raspberry anzumelden. 

Starte den Raspberry und melde Dich über den Mac mit ssh pi@<raspberry-ip> auf dem Raspberry an. Username ist pi und das default Passwort ist raspberry.

Du kannst anschließend die Einstellungen wie z.B. das Passwort im Anschluss mit dem Befehl sudo raspi-config ändern. Rufe dafür die Konfiguration auf dem Raspberry auf.

Nun musst Du den Downloadlink UniFi Network Controller X.YY.ZZ for Debian/Ubuntu Linux and UniFi Cloud Key kopieren. Den Link findest Du auf der Seite https://www.ui.com/download/unifi/

Normalerweise ist die JDK oracle-java8-jdk zu installieren. Die Version steht aber nicht mehr zur Verfügung. Ich konnte ohne Probleme auf dem Raspberry die JDK Version 9 oder 11 installieren. Damit ließ sich der Unifi Controller nur nicht starten. Abhilfe schuf die Installation der openjdk-8-jre (JRE) statt oracle-java8-jdk (JDK). Damit läuft der Unifi Controller auf dem Raspberry.

Beim ausführen von dpkg -i unifi_sysvinit_all.deb kommt es vielleicht zu Fehlern, da Pakete wie Mongo DB nicht installiert sind. Der Befehl apt-get -f install installiert anschließend die fehlenden Pakete.

~ $ sudo apt update
~ $ sudo apt install openjdk-8-jre
~ $ cd /usr/local/src
~ $ sudo wget https://dl.ui.com/unifi/5.12.22/unifi_sysvinit_all.deb
~ $ dpkg -i unifi_sysvinit_all.deb
~ $ sudo apt-get -f install

Nun sollte der Unifi Controller nach der Installation starten. Sollte das nicht der Fall sein, kann der Controller auch manuell mit sudo systemctl start unifi gestartet werden. Jetzt den Link