Hier ist ein Beispiel. Einige Router, wie der Neufbox4 (ein Router, der von einem französischen ISP bereitgestellt wird), verwenden Linux. Auf diesen Routern wird das Programm "iptables" zur Konfiguration des NAT-Verhaltens verwendet (iptables ist eine Art Schweizer Taschenmesser für Linux-Netzwerke).
Angenommen, Sie haben einen Webserver (Port TCP 80) hinter Ihrem Router, der die LAN-Adresse 192.168.0.2 überwacht, und Sie fügen eine Portzuordnung (Umleitung) für diesen Router hinzu. In iptables Begriffen heißt das ungefähr so:
iptables -t nat -A PREROUTING -i wan -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2
Dies bedeutet "für jedes Paket, das über die WAN-Schnittstelle am TCP-Port 80 eingeht, dieses an 192.168.0.2 senden". Welches ist genau was du willst. Alles ist gut ... für jetzt.
Sie müssen verstehen, dass die mit der WAN-Schnittstelle des Routers verknüpfte IP-Adresse Ihre öffentliche Internetadresse ist. Wenn Ihre Internet-IP beispielsweise 1.2.3.4 ist, hat die "wan" -Schnittstelle des Routers die IP-Adresse 1.2.3.4.
Angenommen, Sie versuchen, von Ihrem LAN aus auf Ihren Webserver zuzugreifen, beispielsweise von Ihrem PC unter der Adresse 192.168.0.3, und verwenden Sie dabei Ihre eigene Internetadresse. So geben Sie beispielsweise in Ihrem Browser " http://1.2.3.4/ " ein.
Was passiert ist, dass Ihr Computer ein Paket sendet, das an 1.2.3.4, TCP-Port 80, im LAN gesendet wird. Der Router erhält dieses Paket. Es wird jedoch nicht zu 192.168.0.2 umgeleitet. Warum? Die obige iptables-Regel behandelt nur Pakete, die an der WAN-Schnittstelle eingehen, nicht aus dem LAN!
Was wird dann passieren? Nun, es hängt von anderen Netzwerkregeln des Routers ab. Im Allgemeinen wird eines von zwei Dingen passieren:
Entweder sieht der Router ein an sich gerichtetes Paket (Denken Sie daran, dass 1.2.3.4 eine der IP-Adressen des Routers ist, daher ist dies völlig normal). Bei den meisten Routern gibt es einen Webserver, der Port 80 für die Verwaltungsschnittstelle überwacht. Folglich verarbeitet dieser Webserver das Paket, nicht den Webserver in Ihrem LAN, und Sie erhalten die Administrationsoberfläche anstelle Ihrer Website.
Oder der Router verwirft das Paket aus irgendeinem Grund, einfach weil er nicht weiß, wie er ein Paket behandeln soll, das an seine WAN-Adresse an seinem LAN-Port gerichtet ist.
Technisch ist die Lösung sehr einfach, sie besteht aus einer iptables-Regel der Form:
iptables -t nat -A PREROUTING -i lan -d 1.2.3.4 -p tcp --dport 80 -j DNAT --to-destination 192.168.0.2
Dies bedeutet "für jedes Paket, das über die an TCP-Port 80 gerichtete LAN-Schnittstelle UND mit einer Zieladresse von 1.2.3.4 eingeht, dieses an 192.168.0.2 senden". Dies ist, was Sie "NAT Loopback" nennen würden.
Die meisten Router-Hersteller sind sich des Problems offensichtlich nicht bewusst und haben diese Regel (oder die Entsprechung im proprietären System des Routers) nicht in ihr Produkt aufgenommen ...