欢迎光临散文网 会员登陆 & 注册

Mikrotik Routeros(ROS)回流设置(同网段)

2023-08-10 16:47 作者:璇星樂  | 我要投稿

网上教程很多,我主要说明局域网回流问题:

如下图所示,使用命令:

端口转发示意图(取自ROS官方)

在上述示例中,网关路由器的dst-nat配置规则命令,当用户从家中的PC连接到web服务器时,路由器按照配置进行DST NAT转换:

  1. 客户端发送源IP地址为192.168.88.1的报文到目的IP地址为172.16.16.1的443端口请求web资源;

  2. 路由器目的NAT将报文转换为10.0.0.3,并替换报文中的目的IP地址。源IP地址不变:192.168.88.1;

  3. 服务器响应客户端的请求,响应报文的源IP地址为10.0.0.3,目的IP地址为192.168.88.1。

  4. 路由器判断该数据包是以前连接的一部分,并取消目的NAT,将原始目的IP地址放入源IP地址字段。目的地址为192.168.88.1,源地址为172.16.16.1;5. 客户端收到预期的应答包,连接建立本地IP: 10.0.0.2/24公共IP:192.168.88.1

网上大部分教程,通过上述方法,说明回流操作。并且通过脚本或者DDNS获取公网IP。

实际上通过上方操作,如果你内部的服务器和你内部网络不是同一个网段,可以正常做回流访问,但是如果同一个网段,回流操作就会失效。

具体原因,官方文档已经说明:

但是,当与web服务器在同一网络上的客户端请求连接到web服务器的公共IP地址时,会出现问题:

  1. 客户端发送源IP地址为10.0.0.2的报文到目的IP地址为172.16.16.1的443端口请求web资源;

  2.  路由器的目的地址将报文nat为10.0.0.3,并替换报文中的目的地址。源IP地址保持不变:10.0.0.2;

  3. 服务器响应客户端的请求。但是,请求的源IP地址与web服务器在同一子网内。web服务器不将应答发送回路由器,而是直接发送回10.0.0.2,在10.0.0.3的应答中包含源IP地址;

  4. 客户端收到了应答报文,但是丢弃了应答报文,因为客户端希望收到来自172.16.16.1的应答报文,而不是来自10.0.0.3的应答报文;

来自ROS官方的示意图

本文的重点:

解决方法就是添加多一条规则,让内部报文返回内部的地址:

配置上述规则后:

  1. 客户端发送源IP地址为10.0.0.2的报文到目的IP地址为172.16.16.1的443端口请求web资源;

  2. 路由器的目的地址将报文nat为10.0.0.3,并替换报文中的目的地址。它还对数据包进行源nat,并用其LAN上的IP地址替换数据包中的源IP地址。接口。目的地址为10.0.0.3,源地址为10.0.0.1;

  3. web服务器响应请求,将源IP地址为10.0.0.3的应答发送回路由器的局域网接口IP地址10.0.0.1;

  4. 路由器判断该报文是以前连接的一部分,取消源NAT和目的NAT,将10.0.0.3的原始目的IP地址和原始源IP地址放入源IP地址字段在目的IP地址字段中输入172.16.16.1的IP地址


Mikrotik Routeros(ROS)回流设置(同网段)的评论 (共 条)

分享到微博请遵守国家法律