免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2247 | 回复: 5
打印 上一主题 下一主题

[网络管理] 一对多做NAT疑问---网络技术板块无应答 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-10 13:26 |只看该作者 |倒序浏览
认识NAT很久了,今天回顾发现有些还不懂里面的道理。如:
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j SNAT --to 203.123.234.1
学到的理论是:这样会话建立开始做SNAT,然后响应回来的包会自动再做一次DNAT。

疑问一:
如果内网内两台机器同时向外网一个IP发起同样会话请求(如get url),那么有两个请求都SNAT出去了。但是回来的两个应答目的地址一样的呀(都是那个外网IP),路由怎样区分这两台机器,保证接下来的会话不至于乱?
或许根据MAC找对了,但是DNAT时写的目的地址能保证没有错了?

疑问二:
这样做仿佛就是做了一个网关?是不是一个道理?

疑问三:
如果内网是一个集群的server,可以这样做吗?

我是小菜,有些技术还有些混沌,等人指点迷津。。。。

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
2 [报告]
发表于 2010-06-10 13:55 |只看该作者
NAT有链接跟踪表,回包会查询,所以不会乱

论坛徽章:
0
3 [报告]
发表于 2010-06-10 16:36 |只看该作者
1、出去的时候源、目的 IP、目的端口都是一样的,但源端口不同,系统会自动根据不同源端口的回包区分是哪个内网 IP
2、是的,就是一个网关,和 MASQUERADE 一个道理
3、SNAT 和 MASQUERADE 是主动外出,如果做 server 需要外面主动进入,所以不适用,应选择使用 DNAT,回去自动 SNAT

论坛徽章:
0
4 [报告]
发表于 2010-06-10 18:43 |只看该作者
回复 3# platinum


    老大,怎么和端口对应的呢?我对端口的理解是,接受到的包往七层递送的时候才会依据端口号,在三层上传递的是不会管端口号的。
那么这里iptables路由SNAT返回的包时,就不是简单的三层交换了?

关于网关,假如我用一外网ip 65.118.9.200 ,网关 65.118.9.253,他会用网关和其他非同一网段的通信。那么通信的另一方也会知道他实际是65.118.9.200,但是还是会和 65.118.9.253 (网关)直接会话。是这样的吧?这个过程好奇怪。

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
5 [报告]
发表于 2010-06-10 21:00 |只看该作者
  1. 关于网关,假如我用一外网ip 65.118.9.200 ,网关 65.118.9.253,他会用网关和其他非同一网段的通信。那么通信的另一方也会知道他实际是65.118.9.200,但是还是会和 65.118.9.253 (网关)直接会话。是这样的吧?这个过程好奇怪。
复制代码
会和对方直接对话,不过实际上包会发给各自网关,由网关再转发

论坛徽章:
0
6 [报告]
发表于 2010-06-10 21:35 |只看该作者

  1. 老大,怎么和端口对应的呢?我对端口的理解是,接受到的包往七层递送的时候才会依据端口号,在三层上传递的是不会管端口号的。
  2. 那么这里iptables路由SNAT返回的包时,就不是简单的三层交换了?
复制代码
如何对应是由 conntrack 表来实现的,通过 sip/dip/sport/dport/proto 五元组来匹配的,具体可以参考 netfilter 中 conntrack 的实现
数据包经过 SNAT 返回时,也要做地址转换的,SNAT,修改源地址,不是所谓的三层交换

  1. 关于网关,假如我用一外网ip 65.118.9.200 ,网关 65.118.9.253,他会用网关和其他非同一网段的通信。那么通信的另一方也会知道他实际是65.118.9.200,但是还是会和 65.118.9.253 (网关)直接会话。是这样的吧?这个过程好奇怪。
复制代码
他做的不是 NAT 而是 routing,所以能解释你遇到的现象
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP