• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

请大家注意,SNAT和MASQUERADE的工作方式不同!

发布: 2007-5-25 23:53 | 作者: 未知 | 来源: ChinaUnix.net | 查看: 28次 | 进入软件测试论坛讨论

领测软件测试网
SNAT的作用和MASQUERADE完全一样,但是计算机的负荷稍微多一点。因为对每个匹配的包,MASQUERADE都要查找可用的IP地址,而SNAT用的IP地址是配置好的。所以建议大家如果有固定的IP,就用SNAT.没有固定再用MASQUERADE.

 platinum 回复于:2005-08-19 15:20:51
对,是这个道理
另外在权值路由负载均衡时,也建议用 MASQUERADE,这样可以实现路由的自动选择

 jackylau 回复于:2005-08-19 16:26:46
我看过很多文档在做负载均衡时,都用的是MASQUERADE,但是不知道为什么.SNAT不可以么?

 platinum 回复于:2005-08-19 18:33:43
[quote:32285730eb="jackylau"]我看过很多文档在做负载均衡时,都用的是MASQUERADE,但是不知道为什么.SNAT不可以么?[/quote:32285730eb]
这就是 SNAT 与 MASQUERADE 的区别啊,你不是在顶楼已经阐述过了吗?

 jackylau 回复于:2005-08-20 19:01:31
我的意思是说:在做负载均衡的时候为什么不能用SNAT?我没有实验环境,所以不能验证.

 platinum 回复于:2005-08-20 19:27:53
哦,是这样的
route 和 nat 二者是不同的
route 决定数据包以某条路由出去
nat 决定数据出去的时候,源地址欺骗为什么

 hayg 回复于:2005-08-20 22:59:40
负载均衡和nat有何关联?负载均衡是由路由决定的,nat是路由后的事了。

 platinum 回复于:2005-08-20 23:30:33
何谓 NAT ?
NAT 也叫地址转换,把你的 LAN 地址变为 WAN 再出去
如果你有双链路,除了数据包被随机路由外,你的 NAT 之后的地址也要跟着变化才可以

举个例子:
你有两条线路
eth0 1.1.1.1 gw 1.1.1.254,线路1
eth1 2.2.2.1 gw 2.2.2.254,线路2
eth2 192.168.0.254,内网地址
如果你使用了 iproute2 的 equalize 做了权值路由负载均衡,那么数据包是根据你设置的权值走不同路由出去的
如果你使用 -j MASQUERADE 做 NAT,那么你的数据包会根据不同的 nexthop 来动态修改 WAN 地址
但如果你使用 -j SNAT --to 1.1.1.1,类似这样做,那么你的数据包只能欺骗成 1.1.1.1 出去
试想,一个从 2.2.2.254 出去的数据包,源地址却为 1.1.1.1,回来的时候是怎样走的?绕了一圈,这样的话,根本没起到链路负载均衡的目的,我们需要的是数据流单独走单独回来,因此这里使用 -j MASQUERADE 就对了

MASQUERADE 是动态的,他可以动态根据不同的 nexthop 选择不同的 SNAT 地址,虽然我没找到文字的东西说明这个问题,但我做过很多试验,上面的内容是我自己总结的,如果说的不对还请大家指正 :em06:

 senmao 回复于:2005-08-21 02:36:07
学习了。

 jackylau 回复于:2005-08-22 10:05:18
噢,明白了.谢谢!

 braverman 回复于:2005-08-29 10:33:13
谢谢platinum    的经验总结!

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网