OpenWRT / zwei IP-Adressbereiche / DNS-Server

dieterz1

Ensign
Registriert
Jan. 2014
Beiträge
245
Hallo,
mein OpenWRT-Router stellt zwei WLAN`s mit zwei verschiedenen Adressbereichen bereit (192.168.x.x und 10.0.x.x).
Ich möchte aber nur einen einzigen DNS-Server (Pi Hole) nutzen, der sich im Adressbereich 192.168. befindet.
Gibt es eine Möglichkeit, den OpenWRT-Router so zu konfigurieren, dass DNS-Anfragen aus dem 10er-Netz den DNS-Server aus dem 192er-Netz erreichen können?
Falls ja, wie kann ich das umsetzen?
 
Musst eine Route eintragen.
Ob das geht weiß ich nicht, hat auch den Nachteil dass dann wohl nicht nur DNS Anfragen in das 192.168.x.x Netz geleitet werden, sondern jede Art von Traffic.
Die Netze wären dann nicht mehr getrennt.

Wenn der PiHole auf einem RPi läuft: vllt. kann man ihn per LAN im 192.168.x.x. und per WLAN im 10.0.x.x Netz betreiben.
Diese Netzwerkgeschichten sind aber schon sehr lange her bei mir :D
 
Mit "Route eintragen" kenne ich mich leider (noch) nicht aus, daher bin ich auf Eure Unterstützung angewiesen.

Ist es möglich, den Router so zu konfigurieren, dass nur DNS-Anfragen weitergeleitet werden, und sonst nichts?
 
Der Router sollte (OpenWRT kann ich nichts zu sagen, aus meinen Ausbildungszeiten jedoch) "seine" Netze bereits kennen. Du musst den WLAN DHCP's eig. nur den PiHole als DNS mitgeben.
 
MadMax 21 schrieb:
Der Router sollte (OpenWRT kann ich nichts zu sagen, aus meinen Ausbildungszeiten jedoch) "seine" Netze bereits kennen. Du musst den WLAN DHCP's eig. nur den PiHole als DNS mitgeben.

In OpenWRT findet man unter "Network - DHCP and DNS" den Eintrag "DNS forwardings".
Dort wurde bereits der fremde DNS-Server (sprich: der Pi Hole) eingetragen.
Da sich der DNS-Server jedoch in einem anderen IP-Adressbereich befindet, komme ich vom 10er-WLAN nicht ins Internet.
 
Also ich hab ein ähnliches Setup mit Ubiquiti und Mokrotik am laufen (alles mit zentralem PiHole, verschieden VLANs und Netze).
Zum Verständnis hilft dir vllt folgendes Video?

Da musst du definitiv NAT und Firewallteschnisch was konfigurieren.

Wie das mit OpenWRT funktioniert kann ich dir nicht sagen, aber wenn ich mir das Interface von OpenWRT anschaue, sind die Begrifflichkeiten gut gewählt, womit du mit dem Video denk ich klarkommen solltest.
 
Zuletzt bearbeitet:
Wenn deine beiden Netze im gleichem physikalischem Netz sind, dann müsste es so aussehen:

Code:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 192.168.X.X
        gateway 192.168.X.X
        netmask 255.255.255.0

auto eth0:1
iface eth0:1 inet static
        address 10.0.0.X
        gateway 10.0.0.1
        netmask 255.255.255.0

Im OpenWRT musst du dann im 10er Netz auf die Adresse des PI's zuweisen
 
Ich frage mal vorweg: Was genau hast du mit den beiden Subnetzen vor? Und sind sie nur in verschiedenen SSIDs oder hast du auch am LAN beide Subnetze? Wenn ja, hast du eine Infrastruktur mit VLANs oder laufen beide Subnetze parallel auf denselben Switches, nicht durch VLANs getrennt? Sollen beide Subnetze explizit voneinander isoliert sein (abgesehen vom pihole) oder ist beidseitiger Datenverkehr erlaubt?



dieterz1 schrieb:
Da sich der DNS-Server jedoch in einem anderen IP-Adressbereich befindet, komme ich vom 10er-WLAN nicht ins Internet.
Halt halt halt! Bitte nicht einfach unbedacht irgendetwas hineininterpretieren.

"Ins Internet kommen" ist definiert dadurch, dass man eine IP-Adresse im öffentlichen Raum - das Internet - erreichen kann. Sämtliche Netzwerk- und Internetverbindungen laufen ausschließlich über IP-Adressen ab. DNS ist etwas vollkommen anderes, weil es effektiv nur eine Telefonauskunft für Internetadressen ist. Wenn die [setzeAuskunftNrHierEin] nicht ans Telefon geht oder sie dir die falsche Nummer für Hans Peter von Frosta geben, definierst du ja auch nicht, dass deine Telefonverbindung tot ist.
DNS wird vor dem Verbindungsaufbau genutzt, um überhaupt eine IP-Adresse zu ermitteln. Nur weil DNS nicht funktioniert, heißt das noch lange nicht, dass man nicht ins Internet kommt, auch wenn es das Surfen im Web zugegebenermaßen gehörig erschwert ;)


Prüfe dein Setup erstmal auf die grundlegende Funktion:

Ping ins Internet
PC1 @ 10.x.y.z -----> ping 8.8.8.8
PC2 @ 192.168.a.b -----> ping 8.8.8.8
==> Erfolg: Internetverbindung klappt
==> Misserfolg: Keine Internetverbindung


Ping ins andere Subnetz
PC1 @ 10.x.y.z -----> ping hier.die.ip.vom.pihole
PC2 @ 192.168.a.b -----> ping hier.die.ip.vom.pihole
==> Erfolg: Routing ins andere Subnetz klappt
==> Misserfolg: Routing ins andere Subnetz unvollständig oder pihole ist nicht erreichbar *)


DNS-Test mit definiertem DNS
PC1 -----> nslookup computerbase.de hier.die.ip.vom.pihole
PC2 -----> nslookup computerbase.de hier.die.ip.vom.pihole
==> Erfolg: Der pihole DNS funktioniert.
==> Misserfolg: Der pihole DNS funktioniert nicht oder ist nicht erreichbar **)


Maßnahmen bei Misserfolg:

Firewall des Routers prüfen ob Verbindungen zwischen den Subnetzen grundsätzlich erlaubt sind oder geblockt werden. Gegebenenfalls komplett freigeben oder gezielt Ausnahmen für Ping (ICMPv4 Echo Request) bzw. DNS (tcp/udp 53) erstellen.

Firewall des pihole prüfen und eingehende Pings sowie tcp/udp 53 aus dem jeweiligen Subnetz freigeben.




Die Ergebnisse darfst du hier gerne als Screenshots posten, Sobald alle Tests erfolgreich sind, ist es nur noch eine Frage des DHCP-Servers, die IP des pihole als DNS zu verteilen und dann ist alles in Butter. Je nachdem was du mit den beiden Subnetzen vorhast, musst du natürlich die Firewall im Router entsprechend konfigurieren, um Verbindungen zu erlauben/blocken.
 
Zuletzt bearbeitet:
Ich nutze selbst kein OpenWRT. Wenn der Router kein 'häckchen' für das Routing interner Netze hat (Sowas gibt es z.B. bei DrayTek Routern), müssen für beide Netze statische Routen eingetragen werden oder ein dynamisches Routing-Protokoll wie im einfachsten Fall RIP verwendet werden. Dann sind wie bereits von anderen erwähnt beide Netze gegenseitig vollständig erreichbar. Um nur eine Richtung zu erlauben benötigst du also entsprechende Firewallregeln die dann den Verbindungsaufbau nur aus einer Richtung erlauben und die jeweils andere Richtung darf nur durch, wenn bereits eine Verbindung besteht. Es können auch beide Richtungen als default-action drop/deny haben und lediglich eine Regel wo z.B. Port 53 für DNS aus einer Richtung erlaubt wird und sonst nichts.
 
Mein OpenWRT-Router ermoglicht es mir, mehrere WLANs mit unterschiedlichen Subnetzen zu erstellen.

Ziel ist es, dass zwar jedes Netzwerkgerät ins Internet kann, jedoch dürfen WLAN-Geräte im IP-Adressbereich 10.0.x.x nicht auf das LAN 192.168.x.x zugreifen.

Funktioniert soweit auch alles.

Nun kam der Pi Hole als DNS-Server dazu, der alle DNS-Anfragen abwickeln soll, egal aus welchem Subnetz die Anfrage kommt.

Gibt es denn keine Möglichkeit, nur für die DNS-Anfragen eine Route ins andere Netz freizugeben?

Oder welche Möglichkeit hätte ich sonst noch?

PS: mit der Aussage "ich komme nicht ins Internet" meinte ich natürlich nur den Aufruf von Internetseiten über den Domainnamen (und nicht über die IP). Der Internetzugang selbst funktioniert natürlich. Sorry für meine unklare Formulierung
 
dieterz1 schrieb:
Ziel ist es, dass zwar jedes Netzwerkgerät ins Internet kann, jedoch dürfen WLAN-Geräte im IP-Adressbereich 10.0.x.x nicht auf das LAN 192.168.x.x zugreifen.

Funktioniert soweit auch alles.

Nun kam der Pi Hole als DNS-Server dazu, der alle DNS-Anfragen abwickeln soll, egal aus welchem Subnetz die Anfrage kommt.

Gibt es denn keine Möglichkeit, nur für die DNS-Anfragen eine Route ins andere Netz freizugeben?

Genau darum drehen sich ja die vorgeschlagenen Tests. Ohne den tatsächlichen, nicht potentiell fehlerbehaftet wiedergegebenen Zustand des Netzwerks zu kennen, kann man darauf aufbauend auch keine adäquate Lösung anbieten. Klar kann man jetzt wild spekulieren, mit NAT hin, DNS-Forwarder her, und irgendeine Lösung wird vermutlich auch zum Ziel führen, aber es ist müßig, hier jetzt blind ins Blaue zu schießen.....

Eine Route gibt man zB nicht frei, sie wird einfach eingetragen und dann genutzt. Die "Freigabe", wenn man es denn so nennen möchte, erfolgt durch die Firewall (zweites Paar Schuhe), die Verbindungen reglementiert und Zugriffe erlaubt bzw. blockt.
 
Doch die Möglichkeit gibt es wie ich in meinem Post zuvor dargestellt habe.
Inter-VLAN-Routing an bzw. Routen aus beiden Netzen in das jeweils andere und anschließend FW Regeln erstellen die den Verbindungsaufbau verbieten und nur bestehende Verbindungen zulassen. Zusätzlich aus dem 10.10.x.x bzw in das 192.168.x.x (Das wäre ja /16? warum so groß?) eine FW Regel erstellen die den Verbindungsaufbau erlaubt, wenn es Port 53 ist ... zusätzlich kann du die Ziel-Adresse definieren ....
 
Die Subnetzmaske ist natürlich 24, sorry.

Wenn ich mich 10er- Netzwerk befinde, kann ich den Pi Hole (192er Netz) natürlich NICHT pingen.
Sind ja zwei verschiedene Subnetze.

Daher nochmal meine Frage: wie muss die (statische) Route bzw. die Firewall Einträge aussehen, damit der "Übergang" funktioniert?
 
Also wenn du dir das Video angeschaut hättest, und mit den Begrifflichkeiten was anfangen könntest, könntest du es ähnlich konfigurieren in Bezug auf DNS ;).

Ich glaube hier ist es am einfachsten es so zu machen wie @LasseSamenström es vorgeschlagen hat.

Pi-hole mit jeweils einer IP in jedem Netz. Wenn du keine VLANs hast, sollte das so gehen.
 
dieterz1 schrieb:
Wenn ich mich 10er- Netzwerk befinde, kann ich den Pi Hole (192er Netz) natürlich NICHT pingen.
Sind ja zwei verschiedene Subnetze.
Was heißt natürlich? Nichts ist "natürlich", wenn du keine weiteren Details lieferst. Es mag für dich natürlich sein, weil du vor der GUI von OpenWRT sitzt und jede einzelne Einstellung sehen kannst, aber für uns stellt sich die Situation nur so klar dar wie du sie beschreibst.

Eine Route wird nicht benötigt, weil jedes Subnetz bereits die jeweilige .1 IP des OpenWRT-Routers als Gateway hat, das Standardgateway. Über diese Standardroute geht buchstäblich alles was nicht im eigenen lokalen Subnetz liegt, inkl. dem Internet und eben dem jeweils anderen privaten Subnetz.

In einer Firewall ist in Regeln definiert, das zB alles was von 10.0.0.0/24 kommt erlaubt ist und geroutet wird, es sei denn das Ziel liegt im 192.168.0.0/24 Subnetz, dann wird geblockt.

Entweder du fügst an dieser Stelle nun eine allow-Regel ein, die vor dem Subnetz-Block liegt und explizit dst-ip=pihole + dst-port=53 erlaubt; ein Client aus 10.0.0.0/24 könnte so nichts in 192.168.0.0/24 erreichen außer den pihole und das auch nur via DNS. Ein DNS-Query geht dann PC ----- pihole -----> 8.8.8.8

Oder du setzt am PC den DNS auf die lokale Subnetz-IP des Routers (sei es manuell oder via DHCP),
stellst , bei diesem explizit den pihole als Upstream-DNS setzen, um im pihole wiederum zB 8.8.8.8 als Upstream-DNS zu verwenden. Ein DNS-Query geht dann PC -> Router -> pihole -> 8.8.8.8
 
  • Gefällt mir
Reaktionen: dieterz1 und Bob.Dig
Raijin schrieb:
Entweder du fügst an dieser Stelle nun eine allow-Regel ein, die vor dem Subnetz-Block liegt und explizit dst-ip=pihole + dst-port=53 erlaubt; ein Client aus 10.0.0.0/24 könnte so nichts in 192.168.0.0/24 erreichen außer den pihole und das auch nur via DNS. Ein DNS-Query geht dann PC ----- pihole -----> 8.8.8.8
Nach so einer Lösung habe ich gesucht.
Ich werde es probieren, und dann wieder berichten.
Danke vorab für deine Bemühungen
 
Zurück
Oben