ROS 内网回流设置,通过域名访问内网服务

网上有很多关于 ROS,怎么设置回流的文章。很多都用不了,无法实现回流的功能。所以自己动手,写一篇关于 ROS 回流的设置方法。算是自己 2020 年开年的一篇博文吧。

回流是什么?

所谓的回流,就是在内部环境里用外部环境的方式来访问指定的内部服务器。

为什么要回流?

通常企业内部会有很多服务器需要互联网用户访问,这时就需要做 Dst-Nat. 但是我们配置完后会发现内网用户不能通过公网 IP 访问对应的服务器。其实这时我们再添加一条策略即可搞定.

举例说明:

内网服务器:192.168.0.100
路由器 LAN 口:192.168.0.1
公网 IP:202.101.XXX.XXX

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

配置 NAT:

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

究其原因:

外网访问流程:

  1. soureIP 1.1.1.1 destinationIP 202.101.xxx.xxx
  2. soureIP 1.1.1.1 destinationIP 192.168.0.100 (dst-nat 后)
  3. soureIP 192.168.0.100 destinationIP 1.1.1.1
  4. soureIP 202.101.xxx.xxx destinationIP 1.1.1.1 (src-nat 后)

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

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

  1. soureIP 192.168.0.11 destinationIP 202.101.xxx.xxx
  2. soureIP 192.168.0.11 destinationIP 192.168.0.100 (dst-nat 后)
  3. soureIP 192.168.0.100 destinationIP 192.168.0.11

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

但是由于 PC 请求包的目的地址是 202.101.xxx.xxx ,而响应包确是 192.168.0.11,所以 PC 会回决绝掉响应。 因此造成不能访问的现象。

解决方案

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


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

  1. soureIP 192.168.0.11 destinationIP 202.101.xxx.xxx
  2. soureIP 192.168.0.1 destinationIP 192.168.0.100
  3. soureIP 192.168.0.100 destinationIP 192.168.0.1
  4. soureIP 202.101.xxx.xxx destinationIP 192.168.0.11

详情请参考: http://wiki.mikrotik.com/wiki/Hairpin_NAT