NAT ループバックと DynDNS

NAT ループバックと DynDNS

ルーターで DynDNS を正常に構成し、カスタム ドメインを使用してローカル ネットワークの外部からホーム サーバーにアクセスできるようになりました。

まったく同じドメインを使用すると、外部 IP を持っているにもかかわらず、ローカル ネットワーク内からホーム サーバーにアクセスできるため、ルーターがそのドメインの NAT ループバックを許可しているものと想定します。

これで、ホーム サーバーへのリクエストのネットワーク トラフィックがローカル ネットワーク内に留まることが保証されるので十分だと考えていました。

しかし、私はそれを反証すると思われる簡単なテストを行いました。

ラップトップ(ローカルネットワークに接続)の /etc/hosts ファイルを変更して、DynDNS ドメインをサーバーのローカル IP(例:192.168.1.2)として解決しました。

すべてのリクエストにローカル IP を使用すると、ネットワーク速度が大幅に速くなります。これは、リクエストがローカル ネットワークの外に出ていないためだと考えられます。

私のラップトップは、サーバーを使用する唯一のデバイスではありません。さらに、ネットワークの内外のホストファイルを切り替えたり変更したりすることは、実行可能なオプションではありません。私が本当に理解できないのは、ルーターがリクエストを再ルーティングするほど「賢く」ない理由です。

何か見逃しているのでしょうか?

これを解決する唯一の方法は、ローカル ネットワークに DNS サーバーを展開することですか?

答え1

いいえ、ルーターは「NAT ループバック」を実行していません。

2 つのケースがあります。ルーターの外部ネットワーク インターフェイスの IP (パブリック IP とは異なる場合があります。以下を参照) を確認すると、どちらが当てはまるかがわかります。

1) ISP がキャリアグレード NAT を実行している (非常に可能性が高い、ドイツではほぼ確実)。

パブリック IP は ISP のネットワーク内にあります。ルーターには ISP ネットワーク内のプライベート IP もあります (これはホーム ネットワーク内のプライベート IP とは異なります)。パブリック IP にパケットを送信すると、パケットはルーターに送られ、次に ISP のネットワークに送られ、その後ルーターに戻り、サーバーに送られます。 では、この一部が表示される場合と表示されない場合がありますtraceroute

したがって、ホームネットワークからは出ますが、ISP のネットワークからは出ません。

次回これを高速化するための ICMP REDIRECT メカニズムがありますが、ISP がそれを使用する場合と使用しない場合があり、Fritzbox がそれに従う場合と従わない場合があります。

一方、サーバーのアドレスを直接使用すると、そこに送信されます。

2) ISP がキャリア グレードの NAT を実行していません。パブリック IP へのパケットはルーターに送信され、ルーターはそれがローカル IP であることを検出しますが、ポート転送ルールを適用してサーバーに送り返します。

それでもサーバーに直接送信するよりは遅くなりますが、ケース (1) ほどではありません。

3) Fritzbox は静的 IP を完全に管理できます。また、DNS サーバーもすでに実行されています。GUI でデバイスの名前を編集し、「常に同じ IP」ボックスにチェックを入れると、常にxyz.fritz.box同じ IP でサーバーにアクセスできるようになります。

ドメイン外の名前の名前解決をオーバーライドすることはできません (少なくとも私はできないと思いますが、実際に試してみる価値はあるかもしれません)。

したがって、DDNS ドメイン名を、自宅のネットワーク内か屋外かに応じて異なる IP に解決したい場合は、2 番目の DNS サーバーを展開する必要があります。または、/etc/hosts接続されている SSID などに応じて自動的に変更するスクリプトを作成する必要があります。

関連情報