
我的基於 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 位址的傳入流量進行防火牆設定。