NAT-Routing basierend auf DNS-Namen (Reverse-TCP-Proxy?)

NAT-Routing basierend auf DNS-Namen (Reverse-TCP-Proxy?)

Einführung

Ich habe einen Router, auf dem pfSense läuft (kann alles sein, da es sich um eine virtuelle Maschine auf VMware handelt, also ist es für mich in Ordnung, wenn die Lösung etwas anderes erfordert) und dahinter habe ich mehrere virtuelle Maschinen (NAT).

Was ich erreichen möchte

Ich möchte eine Art Proxy verwenden, um mehrere Dienste mit einer IP zu nutzen, vorzugsweise basierend auf DNS. Beispiel: Einen Mailserver (und eine Website für den Webzugriff) auf mail.domain.com und eine Website auf www.domain.com und einen FTP-Server auf ftp.domain.com betreiben, aber alle sind unterschiedliche virtuelle Maschinen.

Also im Grunde genommen:

Hostname          Internal NAT IP     Port

www.domain.com    192.168.1.10        80
mail.domain.com   192.168.1.11        25
mail.domain.com   192.168.1.11        80
mail.domain.com   192.168.1.11        443
ftp.domain.com    192.168.1.12        21

Ich dachte also daran, HAProxy zu verwenden, aber HAProxy erlaubt dies nur für HTTP-Verkehr und nicht für "normalen" TCP-Verkehr (basierend auf dem DNS-Namen). Ich hätte gerneallePorts (sowohl TCP als auch UDP, aber wenn nur TCP möglich ist, ist das auch in Ordnung), die auf die jeweilige virtuelle Maschine umgeleitet werden sollen.

Antwort1

Für jede Art von Proxying auf Grundlage des verwendeten DNS-Hostnamens ist außerdem erforderlich, dass das Anwendungsprotokoll in irgendeiner Form den Host-Header überträgt.

Meines Wissens sind solche Header bei FTP nicht vorhanden, daher sehe ich nicht, wie das möglich sein soll. Vielleicht mit einem benutzerdefinierten FTP-Proxy, der Sie je nach Benutzername oder Ähnlichem an verschiedene Server sendet.

TLDR: Ich glaube nicht, dass Ihr Endziel erreichbar ist. Sie benötigen mehr als eine externe IP-Adresse.

verwandte Informationen