
我有一個 WAN 路由器,它透過 WAN 子網路連結到 isp /30
。但它也作為本地公共 WAN 子網路的路由器/29
,該子網路連接到我的幾台伺服器。流量/29
透過子網路路由到 ISP /30
。出於有線原因,我想偽裝(NAT)具有/30
ip 的介面。因此,具有 ip 的介面/30
應該在我的網路中顯示為偽裝的192.168.1.0/24
,並且它也應該充當我的 WAN 公共子網路的普通非 NAT 路由器/29
。這可以在 Linux 機器上使用 iptables 來完成嗎?
編輯1: 我的防火牆規則目前如何:
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
#WAN Security
iptables -A INPUT -d 1.2.3.3 -m state --state INVALID -j DROP
iptables -A INPUT -d 1.2.3.3 -m state --state ESTABLISHED,RELATED -j ACCEPT
#NAT
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 1.2.3.3
#FORWARD
iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
iptables -A INPUT -d 1.2.3.3 -j DROP
答案1
是的,這會很好用。設定資料包過濾和路由,就像根本不使用任何 NAT 時一樣,然後添加如下內容:
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to-source 1.2.3.3
(假設你的ISP連線的是eth0,你的公網IP是1.2.3.3。)
這將僅將 NAT 套用至來自 LAN 且具有專用 IP 位址的封包。