DNS Split für Webserver
-
Nachdem der erste Beitag von mir hier super gelöst wurde habe ich schon den nächsten.
Ich habe mehrere Webserver intern Laufen, diesen sind über Subdomain mittels HAProxy von außen erreichbar. Nun möchte ich wenn ich einen dieser Server wie zb. mail.boscolab.de aus dem internen LAN aufrufe, das dann auch die interne LAN IP Adresse aufgelöst wird und nicht die externe.
Ich habe mit den DNS Einstellungen ein paar Sachen versucht aber ohne Erfolg. Entweder war die IP immer die externe oder es gab keine Auflösung mehr.Ich möchte das erst intern aufgelöst wird und wenn das nicht möglich ist dann extern.
Muss ich bei DNS-Auflösung ganz unten den Eintrag bei Host Überschreibungen und Domain Überschreibungen machen?
Oder bin ich hier auf dem falschen Weg?
Meine Einstellungen sind aktuell wie folgt:
-
Möchtest du das wirklich?
Auf die Webapplikation soll vermutlich via HTTPS zugegriffen werden. Tut das der Webserver überhaupt, nachdem du HTTPS-Offloading am Proxy machst?
Wenn dann musst du natürlich die Zertifikate auf der pfSense und am Webserver warten.Mit Domain Überschreibung kannst du einen DNS Server angeben, der für die jeweilige Domain zuständig ist. Der Resolver fragt diesen dann ab, wenn ein Host dieser Domain angegordert wird.
Also wohl nicht das, was du haben möchtest.Host Überschreibung setzen einfach eine IP für einen beliebigen Hostnamen wie ein A-Record.
Hier musst du aber den gesamten Hostnamen samt Domain angeben. Wenn der Zielserver der Domain mein.local angehört, der gesamte (interne) Hostname dann server.mein.local ist, ist da "server" als Host und "mein.local" als Domain einzutragen.
Wenn pfSense in derselben Domain wie der gesuchte Host ist, sollte die Abfrage auch nur mit dem Hostteil zum Erfolg führen. Eine Domain im Eintrag anzugeben, ist aber meines Wissens Pflicht. -
Also für das, was @bosco in seinem initialen Post schreibt, ist er bei Host Overwrites erstmal richtig. Die tun genau das:
- mail.boscolab.de löst extern auf 1.2.3.4 auf
- Diesen Eintrag in Host Overrides machen auf 192.168.3.4
- mail.boscolab.de löst intern auf 192.168.3.4 auf WENN(!) die Hosts alle brav die pfSense als DNS nutzen, bzw. du intern DNS nutzt, die die pfSense als Forwarder haben (e.g. PiHole, AD oder ähnliches gehen trotzdem, wenn die die pfSense als Forwarder drin haben und damit den Override sehen/nutzen).
Was @viragomann aber korrekt "anmängelt":
Wenn deine Hosts intern dann kein HTTPS machen, weil du das ja auf dem HAProxy vorher terminierst, dann kannst du die intern natürlich nicht über bspw. https://mail.boscolab.de erreichen, weil sie intern ja nur HTTP sprechen.
Aber: Hast du mal versucht was passiert wenn die externe IP aufgelöst wird? Klappt es dann nicht? Wenn du HAproxy auf die WAN IP konfiguriert hast sollte er da eigentlich auch reagieren und dich weiterleiten? Aber könnte aus irgendeinem Grund auch schief gehen, daher erstmal die Frage ob es nicht eh eigentlich schon geht und du dann via Proxy kommst.
Wenn du den Proxy umgehen willst, dann muss natürlich dein Endgerät auch sauber HTTPS sprechen können, nicht nur der Proxy, sonst fällt man natürlich auf die Nase.
Wenn du aber willst, dass sich die Dinge intern genauso verhalten wie extern, dann kannst du auch schlicht ein zusätliches Frontend anlegen (und ganz schamlos dein vorhandenes vom WAN Interface kopieren) und dieses bspw. auf die interne IP der Firewall konfigurieren (so wie das externe auf die WAN IP vermutlich). Zumindest wenn es mit dem WAN Frontend wie oben gefragt nicht eh schon geht :)
Dort dann alles wie gehabt konfigurieren (bzw. eben einfach das WAN Frontend kopieren) und statt intern dann die bspw. 192.168.3.4 auszugeben, die Firewall interne LAN IP ausgeben.
Resultat:
-
externe Hosts -> https://<domain.tld>/
- DNS Auflösung -> Public IP von öffentlichem DNS
- kommen auf WAN an
- werden vom HAproxy auf internen Server geproxy'd
-
interne Hosts -> https://<domain.tld>/
- DNS Auflösung -> Host Override auf pfSense IP
- kommen auf bspw. LAN an
- werden auch von HAproxy auf interne Server geproxy'd
Somit gleiches Verhalten. :)
Cheers
\jens