分类: LINUX
2012-08-29 13:58:47
iptables 既可以配置SNAT可以使得内网可以访问到外网,也可以配置DNAT可以使得外网可以访问内网的某个端口。同时可以配置filter实现防火墙的功能。
具体可以查询iptables相关指令,下面我做简单的总结。
1)以前我们RB433产品上用到了最基本的SNAT和DNAT功能。
SNAT:iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j SNAT --to-source 192.168.0.192
iptables -t nat -A POSTROUTING -s 192.168.0.192 -j SNAT --to-source 192.168.0.192
这两条指令可以用 iptables -t nat -A POSTROUTING -o eth4 -j MASQUERADE实现功能
2)在温州电信提出可以远程访问终端机后,我们需要实现端口映射功能
DANT:iptables -t nat -A PREROUTING -d 192.168.0.192 -p tcp --dport 3389 -j DNAT --to-destination 192.168.1.192:3389
这个可以优化为:iptables -t nat -A PREROUTING -i eth4 -p tcp --dport 3389 -j DNAT --to-destination 192.168.1.196:3389 这个可以避免wan的IP改变,重心设置DNAT
3)在苏州百里恒样品测试时,发现如果本来5个网口都在br0里面,然后开机时brctl delif br0 eth4.此时br0接的PC 可以访问到第二个样品接的PC,此时需要让从eth4进入的目的是192.168.1.0/24 网段的IP时,链接掉。这样可以保证在板子内部可以ping 192.168.1.1 和后面链接的PC IP。
具体指令是 iptables -A INPUT -i eth4 -d 192.168.1.0/24 -j DROP
不指名 -t 具体规则时,默认为filter
4)以前在执行access脚本时,执行iptables -t nat -F ,这样会清理掉所有的nat规则,在执行DANT时需要重新设置SNAT。其实在清除dnat时可以使用iptables -t nat -F PREROUTING 这样就不需要在配置snat了。
5)iptable -L -v -n --line-numbers 可以具体看到详细的包情况。