2026年3月8日星期日  
 
首页 >> Mikrotik技术 >>
更新时间:2024-01-27点击次数:950
ROS回流问题分析及处理



正确的通信过程(备注:上图第③⑤步,包进出LAN都不会再做NAT,因为已经存在NAT映射条目。

 

上图中第三步的SRC-NAT操作的to address最好为ROS的LAN接口IP,这样 可以避免服务器应答包进ROS的LAN接口时,受策略路由影响。

(2011年9月 12日后记:应该只对内部通过ROS外部IP访问内部服务器的出LAN接口 的做SRC-NAT,to address为ROS的LAN接口IP,src.address为内部 网段IP,dst.address为服务器内网IP。也就是说,不管不管是NAT还 是mangle,操作的对象要尽可能的具体。即使源和目的是一个网段 的,也会受到策略路由的影响而改变路由转发的目的地。2011年9月20 日后记:最简单的解决此问题的方法是:在内部服务器上添加同网段下 一跳为ROS的LAN接口IP。)

上图第五步出LAN应答给用户的数据包出LAN时不会做SRC-NAT,因为在此 之前有DST-NAT条目1。 内部服务器应答包经LAN口进入ROS后,ROS会根据之前的NAT条目,将此 应答包经ROS的LAN接口传出给内部用户,包出ROS的LAN口时不存在SRC[1]NAT问题,因为之前已经有NAT映射条目1,通信不能完成。内部用户通过服务器外网IP访问时,通信是否走我标识的路线,这由ROS上的 静态路由、策略路由以及动态路由等路由决定。所以除了考虑配置正确的NAT 外,还要制定正确的路由,以便通信沿我标识的路线走。

另外,除了上述从“根本”上解决回流问题外,还可以创建建一个供内部用户使用 的DNS服务器,将服务器的域名资源记录转换成服务器的内网IP,通信将在内部进 行,不会受服务器发布的DST-NAT以及路由选择方面的影响。

另外,如果不想建内部DNS服务器的话,可以在ROS上做DNS劫持,将内部到外 部所有的DNS请求转发到ROS中,然后在ROS中创建服务器域名资源记录对应的内 网IP(也就是让ROS充当DNS转发服务器,这种方式,内网的DNS通信请求均有 ROS应答,可能会增加ROS的负担)。

综合上述,建立供内部使用的域名服务器是最合适的方法,此方法不会给ROS增 加任何负担。创建一个内部DNS转发缓存服务器,也有利于内部用户DNS访问加速。