NAT-Loopback und DynDNS

NAT-Loopback und DynDNS

Ich habe DynDNS erfolgreich in meinem Router konfiguriert und kann nun über meine benutzerdefinierte Domäne von außerhalb meines lokalen Netzwerks auf meinen Heimserver zugreifen.

Mit derselben Domäne kann ich meinen Heimserver von innerhalb des lokalen Netzwerks erreichen, obwohl ich eine externe IP habe. Daher gehe ich davon aus, dass mein Router NAT-Loopback für diese Domäne zulässt.

Ich dachte, dies würde ausreichen, um sicherzustellen, dass der Netzwerkverkehr für die Anfragen an meinen Heimserver innerhalb des lokalen Netzwerks bleibt.

Aber ich habe einen einfachen Test durchgeführt, der dies zu widerlegen scheint.

Ich habe die Datei /etc/hosts meines Laptops (mit dem lokalen Netzwerk verbunden) geändert, um meine DynDNS-Domäne als lokale IP meines Servers aufzulösen (z. B. 192.168.1.2).

Die Netzwerkgeschwindigkeit ist bei Verwendung der lokalen IP für jede Anfrage viel höher. Ich gehe davon aus, dass dies daran liegt, dass die Anfrage nicht außerhalb des lokalen Netzwerks erfolgt.

Mein Laptop ist nicht das einzige Gerät, das den Server nutzt. Außerdem ist das Hin- und Herwechseln der Hosts-Datei innerhalb und außerhalb meines Netzwerks keine praktikable Option. Was ich nicht wirklich verstehe, ist, warum der Router nicht „intelligent“ genug ist, um die Anfragen umzuleiten.

Übersehe ich etwas?

Die einzige Möglichkeit, dieses Problem zu beheben, besteht darin, einen DNS-Server in meinem lokalen Netzwerk bereitzustellen.

Antwort1

Nein, Ihr Router führt kein „NAT-Loopback“ durch.

Es gibt zwei Fälle. Welcher zutrifft, können Sie anhand der IP der externen Netzwerkschnittstelle Ihres Routers erkennen (diese kann sich von Ihrer öffentlichen IP unterscheiden, siehe unten).

1) Ihr ISP verwendet Carrier-Grade-NAT (sehr wahrscheinlich, in Deutschland nahezu sicher).

Ihre öffentliche IP-Adresse befindet sich im Netzwerk Ihres ISPs. Ihr Router hat auch eine private IP-Adresse im Netzwerk Ihres ISPs (die sich von den privaten IPs in Ihrem Heimnetzwerk unterscheidet). Wenn Sie ein Paket an Ihre öffentliche IP-Adresse senden, geht es an den Router, dann an das Netzwerk Ihres ISPs, dann zurück an Ihren Router und dann an Ihren Server. Sie können (einen Teil davon) mit sehen oder auch nicht traceroute.

Es verlässt also Ihr Heimnetzwerk, jedoch nicht das Netzwerk Ihres Internetdienstanbieters.

Es gibt einen ICMP-REDIRECT-Mechanismus, um dies beim nächsten Mal zu beschleunigen, aber Ihr ISP nutzt ihn möglicherweise, muss es aber nicht, und die Fritzbox befolgt ihn möglicherweise, muss es aber nicht.

Wenn Sie hingegen direkt die Adresse Ihres Servers verwenden, wird es dorthin geleitet.

2) Ihr ISP führt kein Carrier Grade NAT durch. Das Paket an Ihre öffentliche IP wird an Ihren Router gesendet. Dieser erkennt, dass es sich um eine lokale IP handelt, wendet aber trotzdem die Portweiterleitungsregeln an und sendet es an Ihren Server zurück.

Das ist immer noch langsamer als das direkte Senden an den Server, aber nicht so viel wie im Fall (1).

3) Ihre Fritzbox kann problemlos statische IPs verwalten. Und sie betreibt bereits einen DNS-Server. Sie können den Namen des Geräts in der GUI bearbeiten, das Kontrollkästchen „immer dieselbe IP“ aktivieren und der Server ist unter erreichbar xyz.fritz.box, immer mit derselben IP.

Was es nicht tut, ist, die Namensauflösung für Namen außerhalb seiner Domäne außer Kraft zu setzen (zumindest glaube ich das nicht, aber einen Versuch wäre es vielleicht trotzdem wert).

Wenn Sie also möchten, dass Ihr DDNS-Domänenname in unterschiedliche IPs aufgelöst wird, je nachdem, ob Sie sich in Ihrem Heimnetzwerk oder außerhalb befinden, müssen Sie einen zweiten DNS-Server bereitstellen. Oder ein Skript erstellen, das sich /etc/hostsautomatisch ändert, je nachdem, mit welcher SSID es verbunden ist usw.

verwandte Informationen