用iptables的mark标记实现虚拟网卡间的有选择的NAT
在ubuntu下试验的好好的,但是把命令敲到ddwrt上就不能用了
最后发现ddwrt默认不加载mark模块
不光不加载连输入命令时的错误提示都省了。。。
蛋疼要死,看了
http://www.dd-wrt.com/phpBB2/viewtopic.php?t=75582&sid=28aea78828836df14c53cc28251e638a
http://www.dd-wrt.com/phpBB2/viewtopic.php?p=622213
才知道用mark要先
insmod ipt_mark
insmod xt_mark
加载模块。。。唉
iptables -t mangle -N my_nat_1
iptables -t mangle -A my_nat_1 -d {大陆IP段} -j MARK --set-mark 111
......
iptables -t mangle -A my_nat_1 -d {大陆IP段} -j MARK --set-mark 111
iptables -t mangle -A my_nat_1 -m mark --mark 111 -j RETURN
iptables -t mangle -A my_nat_1 -j MARK --set-mark 222
iptables -t mangle -N my_nat_2
iptables -t mangle -A my_nat_2 -j MARK --set-mark 111
iptables -t mangle -A PREROUTING -s 10.8.0.0/24 -j my_nat_1
iptables -t nat -A POSTROUTING -m mark --mark 111 -j SNAT --to-source {路由外网IP}
iptables -t nat -D POSTROUTING -m mark --mark 222 -o ppp0 -j MASQUERADE
ip route add default dev ppp0 table 2
ip rule add fwmark 222 table 2
PS:有问题还是去国外论坛找答案靠谱啊,国内的,都是谈论多拨啊FQ啊,毛技术的都没,不说了,,,