HTTP Portforwarding double NAT Mikrotik
Hi,
Kurz zum Setup:
ISP --> Fritzbox --> Mikrotik Router --> HTTP Server
Fritzbox und Mikrotik router sind als Router Kaskade eingerichtet (die Fritzbox kann leider kein Bridge Modus mehr).
Leider habe ich 2 Probleme bezüglich des port forwardings von HTTP Ports:
1. Der Zugriff auf einen Server über die HTTP/HTTPS Ports funktioniert von außen nicht.
Dazu erstmal eine kurze Skizze wie es aussehen soll
Jetzt müssen 2 Ports bzw.3 mit HTTPS weitergeleitet werden, dazu ein Bild aus der Einrichtungsanleitung:
ich habe also 3 Portweiterleitungen jeweils über TCP Port: 2705, 80 und 443 von der Fritzbox auf den WAN Port des Mikrotik eingerichtet.
Von da wie folgt zum Server weitergeroutet (Server IP 192.168.178.5):
Firewall Regeln
*Die Firewall Regeln davor (#0-2) sind für 3 andere Ports auf einem FTP Server, funktionieren und blocken keine anderen Ports.
NATRegeln
*Die NAT Regeln davor (#0-2) sind für die 3 oben genannten anderen Ports auf dem FTP Server.
Hier noch ein genauerer screenshot einer NAT Regel
Eigentlich sollte das alles so stimmen aber von außerhalb des Netzwerks war kein Zugriff möglich über htttp://abc.ddnss.xy
(das sollte ja standardmäßig Port 80 nehmen).
Ich vermute irgendein HTTP Problem aufgrund des doppelten NAT.
Was mich zu meinem 2. Problem bringt:
Ein anderer Server bei dem die Portweiterleitung über Port 8080 funktioniert, ist von einigen Netzen außerhalb nicht erreichbar wegen eines Timeouts, während es von anderen Netzen (meinem beispielsweise) erreichbar ist. Das scheint mir irgendeine Sicherheitseinstellung zu sein die kein HTTP hinter einem doppelten NAT akzeptiert.
Sobald alles mit der Portweiterleitung funktioniert, werde ich sowieso alles auf HTTPS umstellen aber erstmal muss ich verstehen warum die Portweiterleitung bei meinem Mikrotik Router nicht so funktioniert wie ich mir das vorstelle.
Grüße Johannes
Kurz zum Setup:
ISP --> Fritzbox --> Mikrotik Router --> HTTP Server
Fritzbox und Mikrotik router sind als Router Kaskade eingerichtet (die Fritzbox kann leider kein Bridge Modus mehr).
Leider habe ich 2 Probleme bezüglich des port forwardings von HTTP Ports:
1. Der Zugriff auf einen Server über die HTTP/HTTPS Ports funktioniert von außen nicht.
Dazu erstmal eine kurze Skizze wie es aussehen soll
Jetzt müssen 2 Ports bzw.3 mit HTTPS weitergeleitet werden, dazu ein Bild aus der Einrichtungsanleitung:
ich habe also 3 Portweiterleitungen jeweils über TCP Port: 2705, 80 und 443 von der Fritzbox auf den WAN Port des Mikrotik eingerichtet.
Von da wie folgt zum Server weitergeroutet (Server IP 192.168.178.5):
Firewall Regeln
*Die Firewall Regeln davor (#0-2) sind für 3 andere Ports auf einem FTP Server, funktionieren und blocken keine anderen Ports.
NATRegeln
*Die NAT Regeln davor (#0-2) sind für die 3 oben genannten anderen Ports auf dem FTP Server.
Hier noch ein genauerer screenshot einer NAT Regel
Eigentlich sollte das alles so stimmen aber von außerhalb des Netzwerks war kein Zugriff möglich über htttp://abc.ddnss.xy
(das sollte ja standardmäßig Port 80 nehmen).
Ich vermute irgendein HTTP Problem aufgrund des doppelten NAT.
Was mich zu meinem 2. Problem bringt:
Ein anderer Server bei dem die Portweiterleitung über Port 8080 funktioniert, ist von einigen Netzen außerhalb nicht erreichbar wegen eines Timeouts, während es von anderen Netzen (meinem beispielsweise) erreichbar ist. Das scheint mir irgendeine Sicherheitseinstellung zu sein die kein HTTP hinter einem doppelten NAT akzeptiert.
Sobald alles mit der Portweiterleitung funktioniert, werde ich sowieso alles auf HTTPS umstellen aber erstmal muss ich verstehen warum die Portweiterleitung bei meinem Mikrotik Router nicht so funktioniert wie ich mir das vorstelle.
Grüße Johannes
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1476742707
Url: https://administrator.de/forum/http-portforwarding-double-nat-mikrotik-1476742707.html
Ausgedruckt am: 15.04.2025 um 20:04 Uhr
32 Kommentare
Neuester Kommentar

Das Doppel NAT ist überhaupt kein Problem, aber in deinem Fall auch völlig überflüssig und kontraproduktiv weil es das ganze noch langsamer macht, denn du müsstest nur das Masquerading am Mikrotik auf dessen Port zur Fritzbox deaktivieren und auf der Fritzbox eine statische Route für das Netz hinter dem Mikrotik setzen die so aussieht
ZIELNETZ: 192.168.188.0
MASKE: 255.255.255.0
GATEWAY: 192.168.178.5
Wobei bei diesem Beispiel das Fritzbox Netz 192.168.178.0/24 wäre, die IP des Mikrotik in diesem Netz die 192.168.178.5 und das Netz hinter dem Mikrotik das 192.168.188.0/24.
Ist das erledigt brauchst du auch keine DSTNAT-Regeln am Mikrotik mehr da nun geroutet statt geNATed wird!!
Es lässt sich also dann direkt die ZielIP , bspw. 192.168.188.10 eines Servers hinter dem Mikrotik in der Fritzbox Portfreigabe angeben.
Schon ist ein Schuh draus geworden und du hast sogar noch an Geschwindigkeit gewonnen da der Mikrotk nun auch kein Masquerading mehr machen muss, was je nach Geschwindigkeit reichlich CPU kostet.
Es gilt immer der Grundsatz "ROUTE where you can NAT only where you must!"
ZIELNETZ: 192.168.188.0
MASKE: 255.255.255.0
GATEWAY: 192.168.178.5
Wobei bei diesem Beispiel das Fritzbox Netz 192.168.178.0/24 wäre, die IP des Mikrotik in diesem Netz die 192.168.178.5 und das Netz hinter dem Mikrotik das 192.168.188.0/24.
Ist das erledigt brauchst du auch keine DSTNAT-Regeln am Mikrotik mehr da nun geroutet statt geNATed wird!!
Es lässt sich also dann direkt die ZielIP , bspw. 192.168.188.10 eines Servers hinter dem Mikrotik in der Fritzbox Portfreigabe angeben.
Schon ist ein Schuh draus geworden und du hast sogar noch an Geschwindigkeit gewonnen da der Mikrotk nun auch kein Masquerading mehr machen muss, was je nach Geschwindigkeit reichlich CPU kostet.
Es gilt immer der Grundsatz "ROUTE where you can NAT only where you must!"

Zitat von @JohannesSchwenzer:
Das hat leider nicht funktioniert.
Sicher funktioniert das das sind absolute Routing-Basics min Jung, würde ich dir hier nicht erzählen wenn es nicht so wäre, ist doch ehrlich gesagt pippifax für Anfänger Routing erste Stunde!Es lässt sich also dann direkt die ZielIP , bspw. 192.168.188.10 eines Servers hinter dem Mikrotik in der Fritzbox Portfreigabe angeben.
Das hat leider nicht funktioniert.
Wenn ich das masquerading ausschalte, sehe ich bei "ungenutzte Verbindungen" auf der Fritzbox den entsprechenden Server (ich hätte ihn aber auch bei port forwarding hinzufügen können) .
Also korrekt.Ich habe mal einen Test mit dem FTP Port und einer Passivport Range gemacht, weil das am schnellsten ging aber ich bin nicht durchgekommen. Brauche ich noch eine Allow All Regel in den Firewall Einstellungen des Mikrotik?
Wenn du die Forward-Chain per Default am Ende dropst, natürlich !Ich habe die vorigen dst-NAT Regeln für den FTP port deaktiviert und die Firewall Regel beibehalten.
Die Forward Regel muss Traffic natürlich den Traffic sowohl für den Control Port als auch den Passive Range zum Ziel durchlassen, genau so wie an der Fritte die Weiterleitung für beide korrekt ans Ziel eingerichtet werden muss, dann kommt das direkt zum fliegen, du hast da wohl noch Fehler in deinen Regeln, die wir uns hier leider zusammenreimen müssen weil sie uns nicht im Klartext vorliegen. Ein Konsolen Export via export hide-sensitive
sagt mehr als tausend Worte oder nichts sagende Bildchen auf denen man die wirklich wichtigen Details nicht alle erkennen kann!Bei Zweifeln immer erst mal die Forward-Chain auf Durchzug schalten und erst hinterher einschränken!
Auch testet man erst mal ein Protokoll mit einem Port, keep it simple lautet die Devise bei Tests.
Was mir beim zurückstellen, der Einstellungen auf die Doppel NAT Variante aufgefallen ist, ist das der Mikrotik erstmal neu gestartet werden musste bevor ich wieder zum FTP Server durchgekommen bin.
Nee das ist nicht nötig, das kommt von deinen missglückten Versuchen 🙃Gibt es da irgendwie eine Möglichkeit, das sich der Router da selbst updated? Ich habe bestimmt 10 Minuen gewartet.
In der Firewall die Connection States löschen reicht bei sowas völlig.
Zitat von @JohannesSchwenzer:
Wie würde es sich ändern wenn die Portweiterleitung in der Fritzbox direkt auf den Server führt?
Wie würde es sich ändern wenn die Portweiterleitung in der Fritzbox direkt auf den Server führt?
Da waren doch quer beet diverse Fehler drin. Die ganzen NAT-Regeln entfallen wenn du routest statt NATest. Musst dann aber alle genutzten Subnetze hinter dem Mikrotik auf der Fritzbox als statische Routen anlegen wie oben beschrieben, also für 192.168.178.0/24, 192.168.88.0/24,192.168.89.0/24. Außerdem hast du ja quasi zwei WAN-Ports am Mikrotik, d.h. du musst eingehende Verbindungen zu den Stationen entsprechend markieren damit sie auch über das selbe GW über das sie hineingekommen sind auch wieder zurück fließen, was man mit MANGLE Rules,Connection-Marks Routing-Tags und Default Routes mit Routing-Mark Angabe macht, guckst du
/ip pool
add name=dhcp_pool0 ranges=192.168.89.2-192.168.89.254
add name=dhcp_pool10 ranges=192.168.178.15-192.168.178.195
/ip dhcp-server
add address-pool=dhcp_pool10 interface="PM Bridge" name=dhcp1
/interface bridge port
add bridge="Connection Bridge" comment=Connection interface=ether14
add bridge="PM Bridge" comment="PM Netzwerk" interface=ether3
add bridge="PM Bridge" interface=ether4
add bridge="PM Bridge" interface=ether5
add bridge="PM Bridge" interface=ether6
add bridge="PM Bridge" interface=ether8
add bridge="PM Bridge" interface=ether7
/interface list member
add interface=ether1 list=WAN
add interface="Connection Bridge" list=LAN
add list=LAN
/ip address
add address=192.168.88.1/24 comment=defconf interface=ether15 network=192.168.88.0
add address=192.168.89.1/24 interface="Connection Bridge" network=192.168.89.0
add address=192.168.176.254/24 comment="Fritzbox 1" interface=ether1 network=192.168.176.0
add address=192.168.179.254/24 comment="Fritzbox 2" interface=ether2 network=192.168.179.0
add address=192.168.178.1/24 comment="Netzwerk 1" interface="PM Bridge" network=192.168.178.0
/ip dhcp-server network
add address=192.168.3.0/24 dns-server=192.168.178.2 gateway=192.168.3.1
add address=192.168.4.0/24 dns-server=192.168.178.2 gateway=192.168.4.1
add address=192.168.178.0/24 dns-server=192.168.178.2 gateway=192.168.178.1
/ip dns
set servers=192.168.176.1
/ip firewall mangle
add action=mark-connection chain=prerouting connection-state=new in-interface=ether1 new-connection-mark=ISP1 passthrough=yes
add action=mark-routing chain=prerouting new-routing-mark=ISP1 passthrough=no connection-mark=ISP1
add action=mark-connection chain=prerouting connection-state=new in-interface=ether2 new-connection-mark=ISP2 passthrough=yes
add action=mark-routing chain=prerouting new-routing-mark=ISP2 passthrough=no connection-mark=ISP2
/ip route
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.176.1 \
pref-src="" routing-table=main scope=30 suppress-hw-offload=no \
target-scope=10
add disabled=no distance=2 dst-address=0.0.0.0/0 gateway=192.168.179.1 \
pref-src="" routing-table=main scope=30 suppress-hw-offload=no \
target-scope=10
add distance=1 gateway=192.168.176.1 routing-mark=ISP1
add distance=1 gateway=192.168.179.1 routing-mark=ISP2
/system clock
set time-zone-name=Europe/Berlin
/system ntp client
set enabled=yes
/system ntp client servers
add address=0.de.pool.ntp.org
Zum Thema Firewall und wie man diese in einem Mikrotik richtig aufsetzt solltest du dir erst noch mal folgende Seiten durchlesen, das ist ein Thema für sich, und da werde ich hier keine Einführung geben:
https://help.mikrotik.com/docs/display/ROS/Basic+Concepts
https://help.mikrotik.com/docs/display/ROS/Building+Your+First+Firewall
https://help.mikrotik.com/docs/display/ROS/Building+Advanced+Firewall
ACHTUNG: Wenn du den Zugriff aus mit einem Client aus dem Netz testest in dem auch der Server steht dann kannst du in die Hairpin-NAT Falle geraten!
https://help.mikrotik.com/docs/display/ROS/NAT#NAT-HairpinNAT
Das musst du dann für solche Fälle über eine DSTTNAT Regel gerade biegen.
Du siehst, ein Mikrotik ist nichts für Weicheier
Die ganzen NAT-Regeln entfallen wenn du routest statt NATest.
Wird auch im hiesigen Mikrotik Tutorial und Routing_Tutorial immer und immer wieder gesagt !!! Gerade letzteres erklärt es auch noch explizit mit einem Paket Walkthrough...
Entweder über die GUI unter /ip firewall auf dem Tab Connections die Verbindungen markieren und auf das rote Minus klicken oder über das Terminal alle auf einen Rutsch ins Jenseits befördern.
oder wenn du tippfaul bist die Kurzversion
/ip firewall connection remove [find]
/ip f co r [f]

Zitat von @JohannesSchwenzer:
wenn ich da das gateway auf 192.168.178.1 anstatt .0 setze, muss ich auch die IP Adresse auf 192.168.178.1/24 des Bridge Interface setzen, oder?
wenn ich da das gateway auf 192.168.178.1 anstatt .0 setze, muss ich auch die IP Adresse auf 192.168.178.1/24 des Bridge Interface setzen, oder?
Ja natürlich du kannst ja keine Netzadresse als IP für ein Interface oder GW verwenden, hatte ich übersehen, ist korrigiert.
Wenn's das denn nun war bitte den Thread hier dann auch als erledigt schliessen !!
Wie kann ich einen Beitrag als gelöst markieren?
Wie kann ich einen Beitrag als gelöst markieren?
Muss noch irgendwo anders der Port explizit spezifiert werden?
Ja, natürlich, denn Port Forwarding kann ja technsich rein nur über den Port des eigehenden Traffics funktionieren !Hier mal am Beispiel von WireGuard mit UDP 51820 am eth1 Port:
Ebenso ist die Reihenfolge der Port FW Regel im Regelwerk entscheidend.
Die Idee ist die Fritzbox das Routing übernehmen zu lassen.
OK, dann mit einem Transfer Netz vom MT und klassischem Routing ohne NAT, richtig ?Sollte dann so aussehen, oder ?
Die Portweiterleitung in der FB führt direkt zum Server hinter dem Mikrotik.
OK, das sollte klappen aber pass auf das bei älteren FritzBoxen das Port Forwarding auf IP Adresse die NICHT im lokalen LAN der FB liegt nicht funktioniert bzw. nicht supportet ist. Das klappt erst in aktuelleren Firmware Versionen. Siehe hier.Die Frage ist was am Mikrotik zusätzlich dafür eingestellt werden muss.
Gar nichts !Solange die statische Route in der FB auf die Koppelport IP des MT zeigtist alles richtig. Der MT selber sollte natürlich analog dazu auch eine Default Route 0.0.0.0/0 auf die IP der Fritzbox haben...logisch.
Die NAT Regeln habe ich deaktiviert.
Das ist richtig so !Die Firewallregeln habe ich beibehalten.
Da sist ein Kardinalsfehler, denn die sind nur mit dem aktiven NAT gültig. Ohne NAT musst du sie zwingend entfernen. Das Beste ist dann immer den MT ohne die Default Konfig zu resetten das er als nackter Router agiert wie es auch hier im MT_VLAN_Tutorial genau beschrieben ist.
Musst ja kein Reset machen. Es reicht doch wenn man schlicht alle FW Regeln löscht die den WAN Port betreffen. 
Siehe auch hier:
MikroTik S2S IPSec Tunnel - kein Ping der Gegenstelle möglich
Soweit ich das sehe…
Nein, er installiert dann auch immer NAT mit einem kompletten Firewall Ruleset auf eth1 als WAN Port welcher dann im DHCP Client Mode arbeitet.Siehe auch hier:
MikroTik S2S IPSec Tunnel - kein Ping der Gegenstelle möglich

Zitat von @aqui:

Da müsstest du mal Mikrotik selbst verkloppen. Laut deren Aussage im Mikrotik Forum arbeitet anscheinend schon über 90% der eigenen Infrastruktur auf der RouterOS v7.1(Testing channel) auf RouterOS7 angepasst werden.
Mit einer Beta Firmware sollte man niemals in einem Produktivnetz arbeiten ! 
Zitat von @aqui:
Da müsstest du mal Mikrotik selbst verkloppen.
Als gestandener Netzwerk Admin Hase hat man da ja so seine "Erfahrungen"... 😉