NAT后无法在网通过外部IP访问内部服务的问题的详细说明.docVIP

NAT后无法在网通过外部IP访问内部服务的问题的详细说明.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NAT后无法在网通过外部IP访问内部服务的问题的详细说明

最近,到处看到有人问这个问题,怎么以前没人问,现在这么多人问呢?前两天我还在华为的论坛上仔细的说了这个问题,现在复制到这边来。希望能帮助大家理解这个问题。 这是个理论问题,我们先从NAT讲起:NAT有两种基本类型,一种是SNAT(Source NAT),一种是DNAT(Dest. NAT).SNAT即源NAT是改变数据包的IP层中的源IP地址,一般是用来将不合法的IP外出请求转换成合法的IP的外出请求,就是普通的用一个或者几个合法IP来带动一整个非法IP段接入。 DNAT即目的NAT,就是改变数据包的目标IP地址,使得能对数据包重新定向,可以用做负载均衡或者用于将外部的服务请求重定向到内网的非法IP的服务器上。 好了,罗嗦了一通,大致就是这样了。 那么之所以会出现无法在DNAT的内部网络通过DNAT服务的外部IP地址来访问的情况,是因为,如果服务从内部请求,那么经过DNAT转换后,将目标IP改写成内网的IP地址,譬如54,而请求的机器的IP是 00,数据包被网关顺利的重定向到54的服务端口,然后,54根据请求发送回应给目的IP地址,就是00,但是,问题出现了,因为00请求的地址是外部IP 假设是6,所以他等待着6的回应,而54的回应请求被看做是非法的,被丢弃了。这就是问题的所在了。 呵呵,写的有点混乱,不好意思。不知道大家明白没有.那么如何解决这个问题,我说个用iptables实现的例子, #我们先把发向外网IP6 80号端口的数据重定向到54 理论上来讲,如果只要从外网访问,这就完成了。 iptables -t nat -A PREROUTING -p tcp -d 6 --dport 80 -j DNAT --to-destination 54 #解决内网通过外网IP访问的情况 iptables -t nat -A POSTROUTING -p tcp -d 54 --dport 80 -j SNAT --to-source 我们将内网的请求强行送回到网关,依靠网关在内核建立的状态表再转发到真实的请求地址00. 当然,这并不是最好的解决方法,最好的解决方法是将服务器放在另外一个网段,也就是说所谓的DMZ(解除武装区),这样就不会出现上面所说的问题了。 如果大家还不清楚,给个参考文档: /iptables-tutorial.html#DNATTARGET 就先说到这里了,我要去上班了。 fushuyong 回复于:2004-07-24 13:33:53 居然一个人都没回复的,难道这个问题不具备普遍性? 我爱臭豆腐 回复于:2004-07-26 08:08:08 good jlwhc 回复于:2004-07-26 08:54:02 这个DNAT(又叫端口映射),这个问题网上的问法基本就是“为什么内网不可以访问自己网关上的端口映射,即外面正常转入数据了。为什么内部不给反向转回?” 实际上用 iptables -t nat -A PREROUTING -p tcp -d wan_ip --dport 80 -j DNAT --to lan_ip:80 就可以很好解决了 如果基于网络设备,比如ethx,的DNAT就存在上面的问题了 至于freebsd的ipfilter,ipfw openbsd的packet filter,都存在这个问题,不过都可以通过重定向来源数据到本地回环然后解决 hcjia 回复于:2004-07-26 09:47:59 如果防火墙PIX没有DMZ(两个端口),如何解决这个问题呢? njdaboy_cn 回复于:2004-07-26 11:12:32 好贴!! skylove 回复于:2004-07-26 13:07:34 把服务器裸到外网上。。。不过防火墙上该走桥方式的嘛。。。 古 回复于:2004-07-26 16:50:56 防火墙不一定就支持混合模式哦。 onebuyone 回复于:2004-07-27 14:29:24 以前这样的问题比较多见。现在感觉好久没有遇到这样的问题了。现在大多数的防火墙都能够实现这样的访问。具体各个厂家的解决方法可能不同。Check Point防火墙是把请求访问的数据包的源地址更改为防火墙的外部公有的IP地址,这样内部的服务器返回的数据包会先传到防火墙外部的公有IP地址后再传递到内部的请求计算机。至于其他防火墙是不是这样就没有留意。 小蟹 回复于:2004-07-27 16:11:31 有防火墙的话做一个端口映射就什么都解决了 fu

文档评论(0)

ytn058 + 关注
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档