Eine Reihe zum Netzwerk Layout hier in meinem Home Lab.
Zum Verständnis das aktuelle Layout, mit dem hier ins Netz gegangen wird:
Aus dem LAN wird über einen virtuellen Router eine IP Adresse bereitgestellt. Dieser Router ist hinter einem weiteren Router, der wiederum ebenfalls DHCP verteilt und eine IP Adresse vom Speedify-Daemon erhält. Speedify ist über einen Hyper-V V-Switch am physikalischen Netz über zwei VLANs angebunden (Speedify/VM bekommt davon nichts mit). Der Router, der sowohl mit den zwei Gateways (WAN1 und WAN2) als auch mit dem Rest des Netzwerks verbunden ist, hat keinerlei weitere Aufgabe. Für die Verwaltung der aktuellen, statischen IPs von diversen Geräten ist der IPM-Router mit nur einem Interface ausgestattet - reiner DNS-Server und Routen-Geber. Alle weiteren Geräte (Router im EG und Keller) sind nur WLAN Zugriffspunkte und Switches für Endgeräte.
Dieser Aufbau hat, so wie aktuell ausgeführt, den gravierenden Nachteil, dass ich den Hyper-V Host aus dem Dachgeschoss nicht in den Keller zum Rest der Infrastruktur ziehen kann (Windows Server Failover Cluster / Storage Spaces Direct). Um dies durchführen zu können, soll das gesamte Setup stark entschlackt werden.
Hierfür soll eine Brücke zwischen den zwei WAN Gateways und dem LAN hergestellt werden - aufgrund der Beschaffenheit der zwei Gateways ist es unumgänglich auf der Brücke einen Paketfilter einzusetzen.
Auf dem Router für die Trennung läuft ein OpenWRT-System mit einem Hardware-Switch. Hier soll das Filtern zwischen den Netzen erfolgen. Nach kurzem (virtuellen) Testen erwies sich nftables
als geeigneter Kandidat - iptables unterstützt das ganze zwar, ich bin mir aber nicht sicher, welche Konsequenzen das nachsich zieht.
IPTables durch nftables auf dem Router austauschen und folgendermaßen Konfiguriert:
nftables
konfigurieren#!/usr/sbin/nft -f
flush ruleset
table bridge filter {
chain forward {
type filter hook forward priority filter; policy accept;
# Filtern von DHCPv4
obrname "br-switch" udp sport 68 udp dport 67 drop
# Filtern von DHCPv6
obrname "br-switch" udp sport 546 udp dport 547 drop
# Filtern von Router Advertisements
iif "eth1" obrname "br-switch" icmp type router-advertisement drop
# Filter von IPv6 Router Advertisements (danke Telekom dafür)
iif "eth1" obrname "br-switch" icmpv6 type nd-router-advert drop
}
chain output {
type filter hook output priority filter; policy accept;
# Filtern von (eigenen) DHCP-Anfragen in Richtung WAN, diese _müssen_ über eth0.1 oder wlan0/wlan1 gehen
oifname "eth0.2" udp sport 68 udp dport 67 drop
}
}
Es bleibt spannend, ob sich dies so umsetzen lässt.