我有一个WAN路由器,通过一个/30 WAN子网连接到isp。 但是它也可以作为连接到我的几台服务器的/29本地公用WAN子网的路由器。 来自/29的stream量通过/30子网路由到ISP。 由于有线的原因,我想masqarade(NAT)的接口有/30 ip。 所以与/30 IP接口应该为我的192.168.1.0/24networking显示masquaraded,它也应该作为我的WAN公共子网/29的普通非NAT路由器。 这可以通过iptables在Linux机器上完成吗?
编辑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
是的,这将工作得很好。 设置你的数据包过滤和你的路由就像你会根本不使用任何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地址的数据包。