Iptables

我可以在沒有 DNS 或 VPN 的情況下從 WAN 端訪問網關後面的 NAT 定址主機(如果不可能,則使用 DNS)?

  • August 12, 2015

我有一個非常簡單的網關,執行一個最小的 Linux,它作為一個 IP 路由器,在 LAN 上具有 NAT 和 DHCP,在 WAN 上具有靜態 IP。LAN 側的網關路由器連接到一個大型交換機,大約 200 個使用者可以從該交換機獲得訪問權限(DHCP 為他們分配 NAT 地址)。在 LAN 上的這 200 台主機中,我有一台(稱為 Argon),我想從 LAN 和 WAN 以固定的靜態 IP 地址訪問它。假設我的 NAT 是 192.168.1.0/24,我的網關上的 LAN 地址是 192.168.1.1,Boron 是 LAN 上的主機,IP 為 192.168.1.2,Carbon 是 WAN 上的主機,IP 為 1.1.1.1。

假設我擁有 IP 10.10.10.10。我想將 10.10.10.10 分配給 Argon,並能夠從 Boron(在 192.168.1.2)和 Carbon(在 1.1.1.1)發送和接收 TCP 和 UDP 流量,Boron 和 Carbon 都會發送消息到 IP 地址 10.10.10.10 以到達 Argon。

我不認為我的路由器有能力執行 DNS 或 VPN,所以我想盡可能避免使用這些路由作為解決方案。但是,如果我設置的限制使問題無法解決,我更願意將 DNS 設置為解決方案而不是 VPN,因此如果有人有解決此問題的 DNS 解決方案(不是動態 DNS),我將不勝感激解決方案。

如果問題是基本的或不正確的,請道歉;我絕對是網路新手。

感謝您的幫助。

如果10.10.10.10已經指向路由器上的 WAN 介面,則只需向路由器上的內部主機添加靜態路由即可。

ip router add 10.10.10.10/32 dev eth1

eth1路由器的 LAN 側網卡在哪裡。(確保路由器上介面 wan 和 lan 的 ip forwarding 都打開)。

然後只需將 10.10.10.10/32 分配給 Argon 上的 nic。除非它在 ​​192.168.1.1/24 子網中有 LAN IP,否則 Argon 必須將其路由設置為:

ip route add 192.168.1.1/24 dev eth0
ip route add default via 192.168.1.1

內部客戶應該沒有問題。數據包將通過為預設網關定義的 NIC 離開內部主機。預設網關是您的路由器。該路由有一條到 10.10.10.10/32 的路由退出它的 LAN 介面。

認為應該有效。如果沒有,您將不得不弄清楚如何處理您的發行版中的髮夾轉發。(我真的認為它應該在大多數情況下預設工作……)。


如果您想嘗試分配10.10.10.10/32給路由器本身,然後使用 NAT 將所有內容定向到 Argon 的內部 IP,那麼神奇的片語將變為“Hairpin NAT”。您可以在此處閱讀有關該兔子洞的更多資訊: 無法通過公共 IP 地址在內部訪問域


為了完成……如果 10.10.10.10 目前沒有指向您路由器的 WAN 網卡……您將不得不與提供商討論如何將 10.10.10.10 路由到您的路由器。(消費級設備這裡就不砍了)


對於那些喜歡圖片的人(我不擅長圖表,我只安裝了油漆)這是沒有 NAT 的路線的樣子:

沒有 NAT 的 Linux 髮夾路由

引用自:https://serverfault.com/questions/713488