natuerlich
Goto Top

Mikrotik - Container pi-hole im VLAN-Kontext "stand-alone" betreiben (dedizierte IP)

Hallo,

bisher nutzte ich pi-hole auf einem docker-server und damit mit dedizierter IP im Netz. Als Router kommt ein Mikrotik RB 3011 zum Einsatz, den ich jüngst von 6.x auf 7.14 gehoben habe und damit Container nutzen kann, u.a. für pi-hole. Ergänzt sei, dass mein Netz in 5 VLANs aufgeteilt ist (192.168.10.0 - 192.168.50.0)

Mit etwas Kampf (weil die Tutorials alle ohne VLANs arbeiten) war ich heute erfolgreich, pi-hole auf dem MT im Container zum laufen zu bringen. Wie in der MT-Anleitung mit einer in Bezug auf meine IP-Bereiche "wilden" IP 172.19.21.2 für VETH_pihole und /bridge/port auf die "vlan-bridge" (die aus der Anleitung von aqui). Dafür waren in der FW entsprechende input und forward regeln für port 53 nötig. So weit, so gut.

Aber: Da alle DNS-Anfragen über /ip dns set servers=172.19.21.2 kommen, gibt es in pi-hole quasi nur 1 client.

Ich sehe zwei Optionen:
  • Kann man die original-IP "irgendwie" an pi-hole durchreichen?
  • Wenn man den Container (ggf. mit einer eigenen bridge?) quasi stand-alone arbeiten lässt abseits der vlan-bride und (per NAT?) pi-hole eine dedizierte IP (z.B. 192.168.10.99) zuweisen würde, könnte man die IP als DNS-Server der clients nutzen anstatt die IP des MT. Dann sähe pi-hole auch wieder alle client-IPs. Das habe ich per DST-NAT versucht - leider erfolglos.

Ich vermute, Lösung zwei wäre's. Aber wie geht das richtig, den Container mit einer eigenen IP erreichbar zu machen?

Content-Key: 52726482073

Url: https://administrator.de/contentid/52726482073

Printed on: February 26, 2024 at 14:02 o'clock

Member: abramakabra
Solution abramakabra Feb 11, 2024 updated at 07:18:23 (UTC)
Goto Top
Kann man die original-IP "irgendwie" an pi-hole durchreichen?
Joa, indem man es so macht wie es eigentlich vorgesehen ist, auf die Idee die IP des Phiole als DNS-Server per DHCP an die Clients zu verteilen bist du nicht gekommen? 🙃 So macht man das ja in der Regel ... Probleme wo es keine gibt 🤪

/ip dhcp-server network set [find address=192.168.10.0/24] dns-server=172.19.21.2
# usw.

Am pihole nicht vergessen die VLAN Subnetze für Anfragen freizuschalten (source: any)
Und natürlich am Mikrotik in der Firewall in der Forward-Chain die Kommunikation der Clients mit dem Pihole-Subnet zulassen, fertig ist die Soße.
/ip firewall filter add chain=forward src-address=192.168.0.0/18 dst-address=172.19.21.2 action=accept

☠️
Member: natuerlich
natuerlich Feb 11, 2024 updated at 14:22:09 (UTC)
Goto Top
Dank Dir, @abramakabra
Natürlich habe ich das versucht, liegt ja auf der Hand ;) Aber dafür müsste 172.19.21.2 aus meinen VLANs erreichbar sein, aber nur im MT wird die IP erkannt und kann nur dort im DNS verwenden werden.

Daher war ja die Frage, wie ich die 172.19.21.2 (die ist ja auch laut Tutorials nur für interne Zwecke konzeptionel für container im MT nötig) in der FW auf eine 192.168.10.xx übersetzen kann. IP-Hole wäre dann darüber erreichbar und kann dann natürlich auch als DNS-Server im DHCP eingetragen werden.

Vielleicht denke ich zu kompliziert und versuche nachher mal Deinen forward. Wäre prima, wenn es so einfach wäre face-smile

Aber selbst wenn das geht: Wie könnte man denn einem Container mit einer "internen" IP 172.19.21.2 autark/losgelöst von der vlan-bridge betreiben nach außen eine feste IP z.B. 192.168.10.99 geben? Es wäre auch für andere Dienste spannend, die keinen Kontakt zu den VLANS haben sollen und losgelöst verfügbar sein sollen (Szenario z.B: einen simplen Web-Server, der per reverse proxy exponiert werden könnte)
Member: abramakabra
Solution abramakabra Feb 11, 2024 updated at 15:45:03 (UTC)
Goto Top
Zitat von @natuerlich:

Dank Dir, @abramakabra
Natürlich habe ich das versucht, liegt ja auf der Hand ;) Aber dafür müsste 172.19.21.2 aus meinen VLANs erreichbar sein, aber nur im MT wird die IP erkannt und kann nur dort im DNS verwenden werden.

Quatsch mit Soße, das ist ein Router und was machen Router ? 😉Genau, "routen" und das Netz ist ihm ja bereits bekannt.
Clients fragen das Default-GW nach dem Netz und dein Mikrotik kennt es ergo kann man es auch erreichen, sofern FW technisch nicht abgeschottet wurde.
Und wie gesagt am Pihole muss der Zugriff aus fremden Subnetzen erlaubt werden damit der Pihole die VLANs nicht blockiert!


1000002996

Daher war ja die Frage, wie ich die 172.19.21.2 (die ist ja auch laut Tutorials nur für interne Zwecke konzeptionel für container im MT nötig) in der FW auf eine 192.168.10.xx übersetzen kann. IP-Hole wäre dann darüber erreichbar und kann dann natürlich auch als DNS-Server im DHCP eingetragen werden.
Nein. Das veth Subnetz ist global für den Router und die Clients sichtbar sofern der Mikrotik auch Default GW für die Clients ist, sofern du es auch in der Firewall zulässt.
Vielleicht denke ich zu kompliziert
Jepp, du hast da offensichtlich noch einen Knoten 😉.

Aber selbst wenn das geht: Wie könnte man denn einem Container mit einer "internen" IP 172.19.21.2 autark/losgelöst von der vlan-bridge betreiben nach außen eine feste IP z.B. 192.168.10.99 geben?

Das separate Subnetz schaffst du ja bereits mit dem veth.
/interface veth add address=172.19.21.2/24 gateway=172.19.21.1 name=veth_pihole

Das muss mitnichten Teil der Bridge sein damit es erreichbar ist denn es reicht ja das der Router es kennt, ergo routet er auch dorthin! Und natürlich kannst du auch am WAN Ports dorthin forwarden wie mir jeder anderen IP auf dem Mikrotik.
Member: abramakabra
abramakabra Feb 11, 2024 updated at 15:51:50 (UTC)
Goto Top
Ach ja noch als Ergänzung. Wenn du das veth Interface zur LAN Interface-Liste hinzufügst dann brauchst du bei der Default-Firewall-Config auch keine weitere Firewall Regel denn dann ist die Forward Chain bereits offen für die VLANs.
Member: abramakabra
abramakabra Feb 12, 2024 updated at 15:13:22 (UTC)
Goto Top
Und wenn man will kann man sich auch ein separates VLAN für die Container erstellen und in die Bridge mappen, dann lässt sich das auch an nachstehende Switches tagged übertragen falls man woanders noch weitere Container oder devices hat die in das VLAN rein sollen.
# container vlan interface erstellen
/interface vlan add name=container vlan-id=99
# ip dem interface zuweisen
/ip address add interface=container address=172.19.21.1/24
# veth interface für den container anlegen
/interface veth add address=172.19.21.2/24 gateway=172.19.21.1 name=veth_pihole
# den Port in die bridge auf die PVID des container vlans mappen
/interface bridge port add interface=veth_pihole bridge=bridge_local pvid=99
# und das container vlan auf die bridge taggen
/interface bridge vlan add vlan-ids=99 tagged=bridge_local

Wenns das nun war bitte Wie kann ich einen Beitrag auf "gelöst" oder "erledigt" setzen?
Member: natuerlich
natuerlich Feb 13, 2024 at 01:23:10 (UTC)
Goto Top
Das wir sehr hilfreich und hat wunderbar funktioniert. Lieben Dank, @abramakabra! face-smile

Ich war tatsächlich zu kompliziert... und wie so oft, waren es nur Kleinigkeiten, die fehlten, ich hatte es_fast_ so gemacht, Dein freundlicher Tritt in den Hintern war lehrreich.