iptables forward
iptables 用来配置转发数据包规则的工具,Linux的防火墙配置就是利用的iptables。普通的路由器也是使用的iptables来实现NAT地址转换。
使用iptables转发流量¶
路由器使用的局域网ip,例如可使用的局域网有3类 * A类地址:10.0.0.0 - 10.255.255.255 ==> 10.0.0.0/8 * B类地址:172.16.0.0 - 172.31.255.255 ==> * C类地址:192.168.0.0 -192.168.255.255 ==> 192.168.0.0/16
公网访问路由LAN,常见防火墙后的服务器¶
假设公网客户(8.8.8.8)访问路由器下的服务(192.168.0.2)。请求先到达路由的公网地址假设1.1.1.1, 此时的ip层源地址和目的地址分别为(8.8.8.8/1.1.1.1), 然后路由器需要将目的地址改写为192.168.0.2,此时ip包的地址为(8.8.8.8/192.168.0.2),这需要的iptable规则为
iptables -t nat -A PREROUTING -d 1.1.1.1 -j DNAT --to-destination 192.168.0.2
所以需要另外一条iptables规则,将192.168.0.2发出的ip包改成(1.1.1.1/8.8.8.8)
iptables -t nat -A POSTROUTING -s 192.168.0.2 -j SNAT --to-source 1.1.1.1
Reference¶
https://serverfault.com/questions/627608/redirect-all-incoming-traffic-from-a-secondary-public-ip-to-an-internal-ip-addre