Fast jeder Homelab-Besitzer dürfte im Laufe der Zeit über die Firewall-Distribution pfSense gestoßen sein. Die auf FreeBSD und dessen Paketfilter pf basierende OpenSoure-Firewall ist neben OPNsense der Klassiker schlecht hin. Doch wie routet man damit zwischen Vlans und wie muss so eine Firewall grundlegend für diesen Zweck eingerichtet werden?
Eine wirklich spannende Frage, die ich vor einiger Zeit von einem Freund gestellt bekam. Deshalb möchte ich in diesem Ratgeber detaillierter auf das Anlegen von Vlans bei pfSense und Cisco eingehen. So bekommst du gleich beide Seiten der Medaille zu Gesicht. Schließlich braucht es für das Vorhaben auch einen Switch und der will auch richtig konfiguriert werden.
Vlan anlegen bei pfSense:
Sobald du dich im Backend deiner Firewall eingeloggt hast, kann es auch schon losgehen. Zuerst klickst du auf den Menüpunkt Interfaces und dort auf Assignments. Nun solltest du oben auf der Seite mehrere Registerkarten sehen. Dein Ziel ist hierbei der Punkt Vlan. Dort angekommen, kannst du die grundlegenden Einstellungen vornehmen.
Bei Parent Interface musst du den Port auswählen, an dem dein Switch an der Firewall angeschlossen ist. Hier kommen dann später die getaggten Frames an. Der Punkt Vlan-Tag sollte selbsterklärend sein. Denke bitte daran, dass das Vlan-Tag auf beiden Seiten der Verbindung identisch sein muss. Unter dem Punkt Priority brauchst du nichts einzustellen.
Außer natürlich, du möchtest auf Layer 2 des OSI-Referenzmodells sogenannte Prioritätsklassen verwenden. Sinn und Zweck dieser Priorisierung ist eine niedrige Latenz sowie hohe Datensicherheit in ausgelasteten Netzwerken. Insgesamt gibt es 7 dieser Klassen, wobei der Wert 0 die geringste Priorität innehat. Wer beispielsweise ein VOIP-Netzwerk betreibt, sollte das Vlan in PCP 5 priorisieren.
Ansonsten kann es nämlich zu Problemen in puncto Jitter und Latenz kommen. Die Folge von Konfigurationsfehlern sind eine schlechte Sprachqualität bis hin zu Totalausfällen. Aber darum soll es hier nicht gehen. Wenden wir uns wieder der Vlan-Einrichtung zu. Hier fehlt nämlich nur noch eine aussagefähige Beschreibung und Punkt 1 auf der Liste ist abgehakt.
Gerne vergessen wird bei der pfSense von Anfängern das Hinzufügen des neuen Vlans unter dem Punkt Interface Assignments. Diesen findet man oben links in den Tabs. Hier gilt es unter Available network ports das neue Vlan auszuwählen und hinzuzufügen. Nun wäre die grundsätzliche Einrichtung abgeschlossen.
Vlan einer Schnittstelle zuweisen:
Die Firewall wurde nun darüber in Kenntnis gesetzt, dass am Lan-Port getaggte Frames ankommen. Wirklich etwas anfangen kann sie mit den Frames aber noch nicht. Daher müssen wir im nächsten Schritt das Interface bearbeiten. Hierfür klicken wir auf den gleichnamigen Menüpunkt und wählen dort die Schnittstelle OPT[X] aus.
Die Grundkonfiguration geht hier schnell von der Hand. Das Interface wird ganz oben mittels eines Hakens aktiviert und gleich darunter vergeben wir einen eindeutigen Schnittstellennamen. Beim IP-Konfigurationstyp deiner Wahl solltest du einen Static-Eintrag aus dem Drop-Down-Menü wählen. Weiter unten wird dann noch die IP der Firewall eingetragen.
Diese muss natürlich im Subnetz deines Vlans liegen. Ich greife hierbei gerne auf IP-Adressen wie beispielsweise 10.20.20.1/24 zurück. Die beiden 20er verraten mir, dass ich hier Frames mit Vlan-Tag 20 benutze. Im Prinzip war es das auch schon mit der Einrichtung. Nicht vergessen sollte man aber noch eine passende Firewall-Regel. Wer hier Schwierigkeiten hat, klont einfach die des LANs.
Vlans auf dem Switch konfigurieren:
Nachdem die Firewall abgefrühstückt ist, kann es auch schon an das Einrichten des Switches gehen. In diesem Demo-Szenario benötigen wir 2 dafür fertig eingerichtete Ports. Da wäre zu Beginn der sogenannte Trunk-Port. Hierunter versteht Cisco den Netzwerkport, der getaggte Frames zur pfSense überträgt. Bei anderen Herstellern sieht man hier häufig den Begriff Tagged-Port.
Weiterhin gebraucht wird noch ein Acces-Port. Daran angeschlossen wird beispielsweise ein Computer oder ein Drucker. Im Gegensatz zum Trunk werden hier nur ungetaggte Pakete übertragen. Obwohl man der Vollständigkeit halber erwähnen muss, dass man bei Cisco-Trunks noch ein zusätzliches native Vlan einrichten kann. Hier gibt es dann ebenfalls keine Tags bei den Frames.
Cisco Trunk-Port einrichten:
# In den globalen Konfigurationsmodus wechseln
Switch>
Switch> enable
Switch# configure terminal
# Port 1 als Trunk mit allen Vlan-Tags einrichten
Switch(config)# interface gigabitethernet0/1
Switch(config)# description "Trunk-Port"
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan all
Switch(config-if)# no shut
Switch(config-if)# exit
Wir haben nun auf Port 1 vom ersten Modul einen Trunk angelegt, welcher alle Frames mit bekannten Vlan-Tags an die Firewall überträgt. Im Homelab oder einer Demo-Umgebung ist dies eine sinnvolle Einrichtung. In produktiven Umgebungen wäre es empfehlenswerter, nur die benötigten Tagged-Frames weiterzuleiten.
Cisco Access-Port einstellen:
# Vlan 20 als Server-Netzwerk anlegen
Switch(config)# vlan 20
Switch(config-vlan)# name Server-Netzwerk
Switch(config-vlan)# exit
#Port 2 als Acces-Port im Vlan 20 einstellen
Switch(config)# interface gigabitethernet0/2
Switch(config)# description "Server-Netzwerk"
Switch(config-if)# switchport mode access
Switch(config-if)# switchport access vlan 20
Switch(config-if)# no shut
Switch(config-if)# exit
Switch(config)# exit
# Alle Arbeiten abspeichern
Switch# copy running-config startup-config
Im ersten Schritt haben wir das Vlan 20 angelegt, welches hier als Netzwerk für Server dienen soll. Direkt im Anschluss wurde der Port 2 als Acces-Port in Vlan 20 konfiguriert. Im Prinzip ist jetzt alles up & running. Allerdings sollte man die aktuelle Konfiguration noch speichern. Hierfür wird diese mit dem letzten Befehl in den dauerhaften Speicher des Switches übertragen.