转载自:http://blog.csdn.net/a595364628/article/details/51657345
路由器回流简介
(端口映射特例)
回流是什么?最简单的一个实例:
网吧内网一台主机192.168.0.2建了个WEB服务站点端口80,然后在网关(其内网地址是192.168.0.1、公网地址为218.4.218.4)上映射80端口到192.168.0.2的80端口,这样INTERNET上就能以http://218.4.218.4:80的地址访问到192.168.0.2的WEB站点了。
然后出现了个问题,在同网吧的另一台电脑192.168.0.3上,键入http://218.4.218.4:80,却无法访问该WEB站点。
就这个现象,我们就称之为“不支持回流”了,这里指的是网关上的映射方式不支持回流,所以说“回流”一说,是针对映射方式而言的。
现在我们来看常规情况下,是为什么会发生这种情况的
我以前对iptables特别感兴趣的时候,曾对这个问题非常迷惑不解,直到去年为了考试,学习网络基础的时候才搞明白这个事情
过程如下:
192.168.0.3要请求访问218.4.218.4的80端口,根据它掌握的路由表,它本身是不知道电脑218.4.218.4在哪里的,所以把将这个数据包发送给它的默认路由,即电脑192.168.0.1。
注意:这个数据包的源地址是192.168.0.3、源端口假设是1025、目标地址是218.4.218.4、目标端口是80、SYN标志位为1、这是建立TCP连接的第一次握手。
如果“把目标地址为218.4.218.4的数据包发给了192.168.0.1”你听起来觉得有点矛盾,那么我解释一下:其实这个数据包的目标IP地址是218.4.218.4,目标MAC地址却是192.168.0.1的
电脑192.168.0.1接收到了这份数据包(因为它的身份是路由器,所以允许接收和转发目标地址不是自已、MAC地址却是自已接口 MAC地址的数据包),它分析这个数据包的目标地址,发现这个数据包是需要中转到电脑192.168.0.2:80去的,于是它把这个数据包转发给了电脑 192.168.0.2:80。
注意:这个数据包的源地址是192.168.0.3、源端口是1025、目标地址为192.168.0.2、目标端口为80、SYN标志位为1。我们要注意这个数据包在转发后发生了变化了,即目标地址变了。
电脑192.168.0.2顺利接到了数据包,它马上作出回应,发送一个数据包给电脑192.168.0.3。
注意:这个数据包的源地址是192.168.0.2、源端口是80、目标地址192.168.0.3、目标端口为1025、SYN标志位为1、ACK标志位为1、这是建立TCP连接的第二次握手。
电脑192.168.0.3顺利接到了数据包,然而它发现这是一个来自192.168.0.2:80的回应,因为ACK标志位值为1摆在那里呢。它想不起来什么时候给192.168.0.2:80这个目标对象发送过SYN请求,它认为这是一个错误的数据包,于是决定把这个数据包丢弃。然后继续等待 218.4.218.4:80的回应,一直等到超时。
而电脑192.168.0.2这边,它等192.168.0.3:1025的第三次握手请求包发送过来,以便建立一个TCP的连接。同样也没有结果,一直等到超时。三次握手在规定的时间内没有完成,访问宣布流产了。
那么怎么样才能正常访问呢?也就是说怎么样形成“回流”呢?
玄机在于电脑192.168.0.1把第一次握手的那个数据包在转发时,不仅要修改目标地址和端口,也要修改源地址和端口,我们来看一下情况会有什么不同:
电脑192.168.0.1接收到了这份数据包(因为它的身份是路由器,所以允许接收和转发目标IP地址不是自已、MAC地址却是自已接口MAC地址的数据包),它分析这个数据包的目标地址,发现这个数据包是需要中转到电脑192.168.0.2:80去的,于是它把这个数据包通过自已的5201端口转发给了电脑192.168.0.2:80,并在内存里面记录下来了,192.168.0.1:5201已定位给了192.168.0.3:1025。
注意:这个数据包的源地址是192.168.0.1、源端口是5201、目标地址为192.168.0.2、目标端口为80、SYN标志位为1。
电脑192.168.0.2顺利接到了数据包,它马上作出回应,发送一个数据包给电脑192.168.0.1。
注意:这个数据包的源地址是192.168.0.2、源端口是80、目标地址192.168.0.1、目标端口为5201、SYN标志位为1、ACK标志位为1、这是建立TCP连接的第二次握手。
电脑192.168.0.1顺利接到了数据包,检查内存记录发现,这个数据包真正的收货人是192.168.0.3:1025,于是它把这个数据包转发给192.168.0.3。
注意:这个数据包的的源地址是218.4.218.4、源端口为80、目标地址为192.168.0.3、目标端口为1025。我们要注意这个数据包在转发后发生变化了,即源地址变了。这很重要!为什么会变,因为在它心目当中,192.168.0.2:80早已定位给了218.4.218.4:80,映射规则使然。
电脑192.168.0.3顺利接到了数据包,发现期待已久的218.4.218.4:80终于有了回音,它兴奋不已的发出第三次的握手请求。
注意:这个数据包的源地址是192.168.0.3、源端口是1025、目标地址是218.4.218.4、目标端口是80、ACK标志位为1、这是建立TCP连接的第三次握手。
跟前面的数据包一样,这个数据包会从192.168.0.1那里中转给192.168.0.2
以后192.168.0.2:80和192.168.0.3:1025之间来往通信的数据包,全部由192.168.0.1负责中转,“回流”构成了
相关推荐
随着网络办公的普及,路由器的配置问题也日益凸显,特别是如何正确地设置路由器以便内外网用户都能正常访问网络资源成为了网络工程师需要解决的问题。本文主要针对路由器的回流设置进行解析,讨论其必要性和实现过程...
本文将深入探讨如何解决RouterOS端口映射后,内网无法访问自身公网IP的问题,也被称为环回问题。 首先,我们来看端口映射的基本配置。在RouterOS中,这通常通过“ip -> Firewall -> Destination NAT”进行设置。在...
内网服务器映射端口到公网实战配置: 内网端口通过内外网网闸映射端口,再通过路由器映射到公网上 拒绝一切理论派
然而,简单的端口映射会导致一个问题:所有外部访问的IP显示为路由器的内网网关IP,这对统计访问来源、识别用户IP或应用安全策略(如Web论坛的IP屏蔽)带来困难。这是因为ROS的默认设置使用了“Amasquerade”(SNAT...
在验证配置是否成功时,可以直接在浏览器中输入设定的IP地址和端口号,如果能访问到内网服务器的网页默认界面,那么配置就已生效。 需要注意的是,不同型号的华为AR系列路由器可能有差异,若Web界面不同,可以尝试...
通过以上配置,小型办公室的网络功能得到了有效满足,内部用户可以顺利访问互联网,同时Web服务器也能被外部网络访问。 #### 六、总结 本文详细介绍了华为AR1200-S路由器如何进行NAT和DHCP配置,包括具体的配置...
3. **启用并测试**:启用端口映射功能后,可以通过公网IP和指定端口访问内网服务。 #### 三、端口触发 端口触发是一种基于客户端请求动态创建端口映射的技术。当客户端发起连接请求时,路由器会自动创建一个临时的...
在飞鱼星路由器中,如果端口映射失败,可能会导致网络服务不可用、本地服务器无法访问等问题。以下是在飞鱼星路由器中排查端口映射失败的详细步骤: 一、IPBOOK 检查用户指定端口映射成功 在飞鱼星路由器中,用户...
远程监控允许用户通过互联网访问硬盘录像机上的视频流,确保无论身处何处都能实时监控安全情况。 1. **准备工作** 在开始设置前,首先需要一个能够提供录像保存服务的运营商,这里推荐使用花生壳网站。用户需要在...
然而,对于动态IP的情况,这种方法往往不够灵活,不能在内网直接访问外网IP。本文将介绍一种另类的端口映射方法,它可以灵活地适应动态IP环境,并完美解决回流问题。 首先,我们需要了解基本概念。端口映射,也称为...
3. 启用端口回流:在“基础设置”下的“基本选项”中启用端口回流,这将允许内网设备通过外网访问。 最后进行登陆测试。在内网,直接输入硬盘录像机的IP地址192.168.0.10访问,安装webrec.cab控件,使用默认用户名...
RouterOS 端口映射设置详解 RouterOS 是一款功能强大且...RouterOS 的端口映射设置可以实现外网访问内网服务器,但是需要注意解决 IP 显示和回流问题,并且需要解决内网用户不能用外部 IP 访问映射的内部服务器问题。
这一现象表明大量数据正从内网流出而未见相应的回流,这显然不符合常规网络行为模式。 #### Sniffer工具介入分析 为更深入地诊断问题,决定使用Sniffer这一强大的网络协议分析工具来进行捕获与分析。Sniffer能够...
端口映射是一种网络配置技术,通过路由器将外网IP地址与内网IP地址进行绑定,使得外部用户可以通过特定端口访问内部网络中的服务。例如,在本例中,作者实现了将ROS路由器上的TCP 65535端口映射到192.168.2.22电脑的...