ROS Dst-Nat 后内网不能通过公网IP访问内网服务器解决方法


通常企业内部会有很多服务器需要互联网用户访问,这时就需要做Dst-Nat. 但是我们配置完后会

发现内网用户不能通过公网IP访问对应的服务器。其实这时我们再添加一条策略即可搞定.


实例说明:


内网服务器:172.16.0.101  

路由器LAN口: 172.16.254.2

公网IP: 106.37.xxx.xxx      

 

外网访问IP假设为 1.1.1.1    内网访问的PC 假设IP为172.16.3.100


 

配置NAT:

 ROS Dst-Nat 后内网不能通过公网IP访问内网服务器解决方法

ROS Dst-Nat 后内网不能通过公网IP访问内网服务器解决方法

 

配置完后,外网可以正常访问了.但是内网通过公网IP不可访问.

 

究其原因:

     外网访问流程:  1. soureIP 1.1.1.1   destinationIP 106.37.xxx.xxx 

                2. soureIP 1.1.1.1  destinationIP 172.16.0.101(dst-nat后)

                3. soureIP 172.16.0.101     destinationIP  1.1.1.1

                4. soureIP 106.37.xxx.xxx     destinationIP  1.1.1.1 (src-nat 后)

     这时,第一步骤和第四步骤请求和响应一致,因此没有任何问题.

     但是当内网通过公网IP访问内网服务器时:

        1.  soureIP 172.16.3.100   destinationIP 106.37.xxx.xxx 

        2.  soureIP 172.16.3.100   destinationIP 172.16.0.101(dst-nat后)

        3.  soureIP 172.16.0.101   destinationIP  172.16.3.100 

  在第三 步骤中, 因为服务器和访问的PC是在一个子网网络,因此服务器响应包直接响应给客户PC。

但是由于PC请求包的目的地址是  106.37.xxx.xxx ,而响应包的确是 172.16.0.101,所以

PC会决绝掉响应。 因此造成不能访问的现象。

  在防火墙添NAT链中加一条如下策略,即可解决问题:

  

ROS Dst-Nat 后内网不能通过公网IP访问内网服务器解决方法

ROS Dst-Nat 后内网不能通过公网IP访问内网服务器解决方法

 

添加之后内网的访问流程如下:

      1. soureIP 172.16.3.100  destinationIP 106.37.xxx.xxx 

      2. soureIP 172.16.254.2  destinationIP 172.16.0.101

      3. soureIP 172.16.0.101   destinationIP 172.16.254.2 

      4. soureIP 106.37.xxx.xxx destinationIP 172.16.3.100

     

 

问题解决。详情请参考: http://wiki.mikrotik.com/wiki/Hairpin_NAT         




     本文转自marbury 51CTO博客,原文链接:http://blog.51cto.com/magic3/1639383,如需转载请自行联系原作者




上一篇:《Pro ASP.NET MVC 3 Framework》学习笔记之九【Ninject的使用-下】


下一篇:菜鸟学Linux 第048篇笔记 配置slave server