itallrounder
Goto Top

Routing auf Hyper-V VM mit PFSense

Hallo zusammen,

ich hoffe ihr hattet besinnliche Feiertage face-smile

Stehe hier gerade vor einem kleinen Problem, was mir bis dato noch nie aufgefallen ist.
Eine Nextcloud Instanz soll Mails über einen eigenen Server verschicken.

Kurz zum Aufbau:

1x 2HE Hardwareserver extern mit Hyper-V 2016
1x VM PFSense 2.4.2 für NAT/Routing/VPN etc.
1x VM Cent OS 7 Nextcloud
1x VM Zimbra Mailserver


Die VM's haben jeweils eine private IPv4 Adresse (Mailserver: 192.168.0.137, PFSense: 192.168.0.1 & Nextcloud: 192.168.0.134)
Die Dienste sind aber auch von extern erreichbar über ein NAT an der PFSense.

PFSense:
LAN: 192.168.0.1/24
WAN: 11.22.33.132/27 (Gateway: 11.22.33.129)

Mailserver:
LAN: 192.168.0.137
WAN: Port 25, 465, 587, etc auf der PFSense geNATet auf die 11.22.33.137

Nextcloud:
LAN: 192.168.0.134
WAN: Port 80, 443 auf der PFSense geNATet auf die 11.22.33.134


Wenn ich nun von der Nextcloud eine Verbindung zum Mailserver aufbaue (mail.domain.tld -> 11.22.33.137) kommt ein Timeout.
Eine Traceroute kann ich zu der externen IP-Adresse auch nicht machen. Auf die interne IP funktioniert alles.
Nur leider frisst das nextcloud nicht die interne IPv4 Adresse....

Kann mir jemand sagen, was ich vermutlich an der PFSense einrichten muss damit die VM's untereinander auch über die externen IP's erreichbar sind?

Ich wünsche alle einen guten Rutsch!

Content-ID: 359262

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

Ausgedruckt am: 22.11.2024 um 03:11 Uhr

Tektronix
Tektronix 27.12.2017 um 09:36:04 Uhr
Goto Top
Hallo,
ich würde jetzt mal darauf tippen, dass es am DNS liegt. Welchen DNS Server hast Du eingetragen, welcher DNS Server hat einen Eintrag von Deiner öffentlichen IP des Mailservers?
ITAllrounder
ITAllrounder 27.12.2017 um 10:09:01 Uhr
Goto Top
Hallo an den VM's ist jeweils folgende Einstellung gesetzt:

DNS1: 192.168.0.1 (PFSense)
DNS2: 9.9.9.9 (extern DNS)
Tektronix
Tektronix 27.12.2017 um 10:36:40 Uhr
Goto Top
Hi,
ja und wenn er den 9.9.9.9 fragt bekommt er die richtige Antwort? Denke eher nicht. was passiert den wenn Du Nslookup auf die Mailserver IP öffentlich und intern?
ITAllrounder
ITAllrounder 27.12.2017 um 10:52:40 Uhr
Goto Top
Also ich habe nun mal folgende DNS Server ausprobiert:

8.8.8.8
9.9.9.9
192.168.0.1

Alle DNS Server liefern mir mit einem dig mail.domain.tld die korrekte externe Adresse 11.22.33.137
Ein Tracert hingegen funktioniert nur via interne IP, trace ich die 11.22.33.137 kommt nur ein Timeout.
Da ich hier ja schon über IP gehe und nicht über Hostname gehe ich von einem Routing Problem aus.
aqui
aqui 27.12.2017 aktualisiert um 11:48:35 Uhr
Goto Top
eine Verbindung zum Mailserver aufbaue (mail.domain.tld -> 11.22.33.137) kommt ein Timeout.
Das ist ein Hairpin NAT Problem weil du den Mailserver intern auf eine falsche IP Adresse auflöst !
https://wiki.mikrotik.com/wiki/Hairpin_NAT
Es ist ja sinnfrei den Mailserver von intern mit seiner externen IP anzusprechen wenn du ihn nur intern erreichen willst. Hier nimmt man logischerweise immer die lokale IP 192.168.0.137 !
Es macht ja keinerlei Sinn von dort die externe IP zu benutzen und dann das WAN Interface der Firewall quasi als sinnfreien "Durchlauferhitzer" zu benutzen, was der FW unnötig Performanceeinbußen beschert.
Der Unsinn leuchtet dir vermutlich auch selber ein, oder ?!
Korrigiere also die DNS IP Vergabe von intern und dann rennst du auch nicht in das Hairpin Problem.

Man kann aber Hairpin NAT auch aktivieren auf der FW wovon aber logischerweise aus den obigen Gründen dringend abzuraten ist.
Unter System / Advanced / Firewall & NAT hat die Firewall in der Rubrik NAT Reflection dort eine Möglichkeit das zu umgehen.
Machen aber wie gesagt nur Dummies.