RouterOS中为什么是SNAT,而不是masquerade
最近在学习iptables,才明白这一点,以下文字复制自官方指南。=============================================================================
MASQUERADE(伪装)操作。如果我们不知道连接Internet的IP,首选的方法就是使用MASQUERADE,而不是DNAT或SNAT。换句话说,就是如果我们使用PPP或SLIP等连入Internet,由DHCP或其他服务分配IP,使用这个比SNAT好。因为MASQUERADE 不需要预先知道连接Internet的IP,虽然对于计算机来说MASQUERADE要比NAT的负载稍微高一点。
MASQUERADE的作用和SNAT完全一样,只是计算机的负荷稍微多一点。因为对每个匹配的包,MASQUERADE都要查找可用的IP地址,而不象SNAT用的IP地址是配置好的。当然,这也有好处,就是我们可以使用通过PPP、 PPPOE、SLIP等拨号得到的地址,这些地址可是由ISP的DHCP随机分配的。
MASQUERADE是被专门设计用于那些动态获取IP地址的连接的,比如,拨号上网、DHCP连接等。如果你有固定的IP地址,还是用SNAT target吧。
即使你有静态的IP,也可以使用MASQUERADE,而不用SNAT 。不过,这不是被赞成的,因为它会带来额外的开销,而且以后还可能引起矛盾,比如它也许会影响你的脚本,使它们不能用。
==================================================================================
参考:http://www.frozentux.net/iptables-tutorial/cn/iptables-tutorial-cn-1.1.19.html
我明白了,接下来,我该如何更改我的RouterOS呢?
很简单,你应该这样:add chain=srcnat action=src-nat to-addresses=203.171.226.229 out-interface=Public
命令中的解释如下:
Public:外网接口网卡名称
203.171.226.229:公网IP
您可能会产生的疑问:我已经改成SNAT,但是并没有发现性能提升,或者说网速更快?
如上面提到的那样“对每个匹配的包,MASQUERADE都要查找可用的IP地址”,我想,可能因为我们的软路由的处理器(CPU)完全能应付这个操作过程,也就是说,处理器很快就完成了这个
“查找可用的IP地址”的工作,所以我们并没有体验到带来的进步。但是,请再仔细阅读上面的解释,我相信,你能说服自己不再使用masquerade。另外,本人再给你一个采用SNAT的理由:
至少,我们没有发现SNAT后网速变得更慢吧。
我还有疑问?请加群:88815325 木有特定需求并且配置满足的话,其实基本没差别....................反复测试后的结果 seignior 发表于 2011-12-16 19:19 static/image/common/back.gif
木有特定需求并且配置满足的话,其实基本没差别....................反复测试后的结果
serv-u在ROS后面。
Snat日志内可以看到来自公网的IP地址
伪装看不到公网IP,只能看到ROS的LAN口IP。 所以俺大写“木有特定需求”和“配置满足”啊,事情总不会是绝对的,在一个环境下完美解决的方案,到了另外一个环境可能就要变成误人害国,不能一概而论。 seignior 发表于 2011-12-16 20:25 static/image/common/back.gif
所以俺大写“木有特定需求”和“配置满足”啊,事情总不会是绝对的,在一个环境下完美解决的方案,到了另外 ...
所以俺一直很反感那些标注“完美”、“绝对”、“官方”之类的脚本 我的isp提供的是动态的地址,所以只能用MASQUERADE了
页:
[1]