NAT 環回和動態 DNS

NAT 環回和動態 DNS

我已在路由器中成功設定 DynDNS,現在我可以使用自訂網域從本機網路外部存取我的家庭伺服器。

儘管有外部 IP,但使用相同的網域,我可以從本地網路內部存取我的家庭伺服器,因此我假設我的路由器允許該網域的 NAT 環回。

我認為這足以確保網路流量保留在本地網路內以發送對我的家庭伺服器的請求。

但我做了一個簡單的測試,似乎反駁了這一點。

我更改了筆記型電腦(連接到本地網路)的 /etc/hosts 文件,以將我的 DynDNS 網域解析為我的伺服器的本機 IP(例如 192.168.1.2)

對於每個請求使用本機 IP 的網路速度要快得多。我認為是因為請求沒有超出本地網路。

我的筆記型電腦不是唯一使用該伺服器的設備。此外,在我的網路內部/外部來回更改主機檔案並不是一個可行的選擇。我真正不明白的是為什麼路由器不夠「智慧」來重新路由請求

我錯過了什麼嗎?

解決這個問題的唯一方法是在我的本機網路中部署 DNS 伺服器?

答案1

不,您的路由器沒有執行「NAT 環回」。

有兩種情況。您可以透過檢視路由器的外部網路介面的 IP(可能與您的公用 IP 不同,請參閱下文)來了解哪種情況適用。

1) 您的 ISP 正在進行電信商級 NAT(很可能,在德國幾乎可以肯定)。

您的公用 IP 將位於您的 ISP 網路中。您的路由器還將在您的 ISP 網路中擁有一個私人 IP(與您的家庭網路中的私人 IP 不同)。當您向公共 IP 發送封包時,它將發送到路由器,然後發送到 ISP 的網絡,然後返迴路由器,最後發送到伺服器。您可能會或可能不會看到(部分)此內容traceroute

因此,它將離開您的家庭網絡,但不會離開您的 ISP 網絡。

有一個 ICMP 重定向機制可以使下次速度更快,但您的 ISP 可能會或可能不會使用它,並且 Fritzbox 可能會也可能不會遵守它。

OTOH,當您直接使用伺服器的位址時,它就會去哪裡。

2) 您的 ISP 沒有執行電信商級 NAT。發送到您的公用 IP 的封包將發送到您的路由器,它會偵測到它是本機 IP,但仍會套用連接埠轉送規則,並將其傳送回您的伺服器。

這仍然比直接發送到伺服器慢,但不如情況(1)慢。

3) 您的 Fritzbox 完全能夠管理靜態 IP。並且它已經運行了 DNS 伺服器。您可以在GUI中編輯設備的名稱,您可以勾選“始終相同的IP”框,並且伺服器將在 下可訪問xyz.fritz.box,始終使用相同的IP。

它不會做的是覆蓋其網域之外的名稱的名稱解析(至少我不認為它可以,實際上可能值得一試)。

因此,是的,如果您希望根據您是在家庭網路還是外部網路將 DDNS 網域名稱解析為不同的 IP,則必須部署第二個 DNS 伺服器。或編寫一些腳本/etc/hosts來根據連接到的 SSID 等自動變更。

相關內容