如何在 2 個網路介面之間進行 NAT 而不影響路由

如何在 2 個網路介面之間進行 NAT 而不影響路由

我的基於 Linux 的路由器有 5 個乙太網路連接埠。它目前充當連接埠 1 和 2 與專用 WAN 連接埠之間的路由器,無需 NAT。連接埠1為192.168.1.1/24,連接埠2為192.168.2.1/24,WAN連接埠為192.168.0.1/24。

傳出的 WAN 連線經過一個記錄使用情況的日誌設備,然後經過第二個執行 NAT 的家庭路由器,並在其 WAN 連接埠上使用公用 IP。

為了簡化起見,網路如下,IP前綴為192.168.-:

server1--------Router1--------Logging device--------Router2----------
   .1.2      .1.1  .0.1                           .0.254  (public ip)

Router1 設定運作良好(這是一個簡單的路由器),Router2 也運作良好(這是一個簡單的網關)。不過,我想刪除 Router2,並在 Router1 的連接埠 3 和 4 之間完成 NAT,連接埠 4 使用我的真實公共 IP。

這可行嗎?我想在連接埠 1-2-WAN 和 3-4 之間保持嚴格隔離,以確保所有流量都通過日誌記錄設備(及其原始 IP 來源位址)。

透明橋接是解決方案嗎?我可以將來源 NAT 套用到該橋接器嗎? IP 位址做得好嗎?

答案1

假設 router1 上的 5 個乙太網路連接埠被命名為 eth0 - eth4,因此 WAN 位於 eth3 上:

iptables -t nat -A POSTROUTING --source 192.168.1.0/24 --out-interface eth3 -j MASQUERADE
iptables -t nat -A POSTROUTING --source 192.168.2.0/24 --out-interface eth3 -j MASQUERADE

如果您有固定 IP 作為公用 IP 位址,請將「-j MASQUERADE」替換為「-j SNAT --to-source $PUBLIC_IP」(當然,將 $PUBLIC_IP 替換為您的 WAN 位址!)。

當然,您需要將預設路由設定為 eth3,但這不是問題的一部分。您還需要對進入公用 IP 位址的傳入流量進行防火牆設定。

相關內容