iKuai爱快流控路由

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6732|回复: 5
打印 上一主题 下一主题

[网络设置] 回流伪装

[复制链接]
跳转到指定楼层
楼主
发表于 2020-7-29 16:57:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
需求建议
目前版本: 3.3.9 x64 Build202006150942
使用环境: 企业事业单位 
需求程度: 一般程度
联系方式(仅官方人员可见): 您无权查看此信息
类似功能截图: -
本帖最后由 xiaohhl 于 2020-7-30 10:54 编辑

搜索记录,发现很多人提了回流的需求,看了不少,回复,感觉工程人员似乎有点没理解需求。我换个名字来描述表达一下。
ROS也极其简单,只要一句:chain=srcnat action=masquerade,这样的话,就完成了伪装和回流。
作用就是,任何访问,都以路由器来访问。
一般都知道,内网访问外网,服务器肯定显示是外网的IP,这个似乎没什么问题,看不出什么不同。
同一局域网,不经过路由器的话,这个设置没意义,但是进过路由器的话,对方会发现,访问的IP为路由器的,而不是客户端。
非同一局域网网段互访,那肯定经过路由器,对方只能查询到路由器对应的接口IP,而不是访问者的。

也就是说,回流伪装,其实就是不管访问者哪里的,只要经过路由器再出去,对方就只能看到路由器的网络信息,查不到访问者的网络信息。

补充:最好能支持对每个网段设置。

附:
ROS全局设置:这句指令使用正常,可以增加参数满足特殊需要。
chain=srcnat action=masquerade
稍微详细点的设置如:
ip firewall nat add chain=srcnat src-address=192.168.0.0/24 action=masquerade out-interface=ether1
openwrt全局设置:未认证,openwrt输入未提示错误。
iptables -t nat -A POSTROUTING -j MASQUERADE
稍微详细的设置如:
iptables -t nat -A POSTROUTING -i wlan0 -j MASQUERADE #原地址伪装,和 snat 类似功能。在上网这种需求的时候用 MASQUERADE 比 snat 多
有个说法:使用了MASQUERADE,是SNAT的增强型,可以转换源IP地址,这样的话就可以发挥路由器的NAT功能了,同时支持多个客户端。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 支持支持 反对反对
沙发
发表于 2020-7-29 22:16:14 来自手机访问 | 只看该作者
顶一下  需求不错
板凳
发表于 2020-8-1 17:30:39 | 只看该作者
本帖最后由 89993856 于 2020-8-1 17:34 编辑

奇怪的是爱快默认支持端口回流,但是通过测试在内网并不能通过外网ip或者域名访问,只能在外网通过外网ip访问,换成友商路由就可以,或者爱快里面用dns反向代理才可以在内网通过域名访问。 其中没有做任何其它设置,即便重新安装都不行
地板
 楼主| 发表于 2020-8-4 14:19:48 | 只看该作者
89993856 发表于 2020-8-1 17:30
奇怪的是爱快默认支持端口回流,但是通过测试在内网并不能通过外网ip或者域名访问,只能在外网通过外网ip访 ...

应该是做了自动SNAT,SNAT与MASQUERADE有点不一样。个人从现象理解是,SNAT是指定出口,对方可以有一定的请求者的信息;MASQUERADE是路由器代替请求者。个人从效率理解是,SNAT效率高,但是设置上指定方面的话,需要比较懂;MASQUERADE,效率要看路由器,毕竟路由器做了中介,好处是简单,事情都是路由器做了。
5#
发表于 2020-8-20 11:23:08 | 只看该作者
本帖最后由 2525382 于 2020-8-20 12:01 编辑

爱快在开通lan互访功能的情况下本就支持回流,你现在真正的需求应该是在lan互访控制里增加白名单(注:按mac或者ip一对一互访,例192.168.0.1绑定192.168.3.1此两个不同lan下的ip可以互访不受lan互访开关的限制),这样既可支持在关闭lan互访开关的情况下的回流问题。
6#
发表于 2020-8-20 11:35:37 | 只看该作者
浅谈路由器回流问题:web

回流问题是指,当用路由器防火墙等设备将内网服务器发布到公网上,供internet用户访问的过程当中出现的一种现象,就是你发现web服务器已经成功发布了,internet用户也已经能够经过你路由器公网接口地址成功访问了,而你却发现本身在内网中与web服务器同网段的主机上直接访问那个路由器公网地址是没法访问到web服务器的页面内容的。这就是回流问题。浏览器



下面具体分析一下产生这个现象的缘由:缓存

假设内网web服务器地址192.168.0.1 ,路由器公网地址200.200.200.1安全

来自internet用户的地址是200.200.200.100  ,来自内网与web服务器同网段用户的地址是192.168.0.100服务器



        首先看一下外网用户发出对web服务器页面访问的过程,网络

第一步,外网用户在浏览器输入http://200.200.200.1 以后发生了什么?http协议是利用tcp协议的80端口工做的,而tcp是面向链接的协议,也就是说,使用该协议传输数据是须要事先跟目标服务器协商的,协商好了才能发数据,tcp协议须要三次对话协商,首先客户端发了一个源地址200.200.200.100的目标地址200.200.200.1目标端口80的请求包告知目标主机“我打开了80端口我想与你链接”这个数据包按照目标地址经过网络传输到了路由器的公网接口,因为路由器对公网接口以及它的内网接口之间作了NAT技术,因此该数据包在路由器公网接口被加工改造,将目标地址改为了192.168.0.1源地址不变放到了路由器的缓存队列中,路由器转发程序发现该数据包是发往192.168.0.1的,根据自身路由表中的直连路由直接找到内网接口,这样数据包就到了内网接口,而后就开始在内网接口发送该数据包的脉冲信号,与内网接口相连的交换机,收到该数据包会查找本身的MAC地址表,看192.168.0.1的主机与本身哪一个接口相连,因而该数据包就被发到了与web主机相连的交换机端口打上本身端口的MAC地址后发往web主机,这样服务器就接收到了这个请求包。由于交换机对此问题不产生影响因此以后的内容就不谈交换机转发的过程了。tcp

         第二部,根据TCP协议,服务器接收到这目标地址为192.168.0.1源地址为200.200.200.100的数据包后须要发回确认包告诉访问者本身赞成链接,并打开本身的80端口。因而发送一个源地址192.168.0.1目标地址200.200.200.100的确认回应包到路由器的内网接口,在内网接口经过NAT端口映射技术将此包的源地址改写为外网口地址200.200.200.1目标地址不变放入缓存队列,转发程序发现该包是去往200.200.200.100的,根据路由表中的直连路由直接送到外网接口,因而外网接口把包发给了外网用户的主机。测试



         第三部,根据tcp协议,外网主机收到了源地址200.200.200.1目标地址200.200.200.100的回应包后还需再次发送一个确认包,告诉目标主机,“我要发送数据了,你作好准备“spa

经过前面三步就完成了tcp的链接,开始传输数据的过程,此后的数据包都是,你请求什么页面什么内容,服务器就给传什么内容,请求包目标地址都是200.200.200.1。 接口

/////整个tcp链接过程当中,访问者客户端主机是不知道真正给他提供回应和服务的真正主机在哪的

=====================

         下面看从内网与web服务器同网段的主机访问web服务器的过程,



         第一步,与前面相似,浏览器输入:http://200.200.200.1, 而后根据ctp协议发送目标200.200.200.1源192.168.0.100目标端口80的请求包,这个请求包正常到了路由器内网接口,以后可能有几种状况,均可能引发回流问题。

        第一种状况:

        下面注意该过程与上面的区别,该包是发往路由器外接口的,而不是发往外网的,因此路由器不会启用pat地址转换,直接把包根据路由表投递给外网接口,外网接口发现这个包是发送给本身的而且目标端口是80,因而自动应用NAT端口映射技术,修改包的目标地址为192.160.0.1源地址不变放入缓存队列,转发程序正常根据目标地址把包送到了web服务器。

         web服务器收到目标地址为192.168.0.1源端口是192.168.0.100的数据包后根据TCP协议做出回应,须要发送目标地址192.168.0.100  源地址192.168.0.1的回应包,这个包这回没到达路由器内网接口,而是直接经过交换机就跑回来了,由于在ip网络中,相同网段有直接通讯的特性,而你的内网客户端这回就萌了,“我何时给你发过请求啊?你算干吗的你给我一个回应确认包啊!”因而你的客户端继续等待200.200.200.1给他回应!



         能够看出,tcp的回应包是不能正常发回的,你的主机在苦苦等待而没有结果后,宣告TCP第二次握手等待超时,链接失败。



         还可能有一种状况,也就是说,你内网客户机采用与web服务器不一样网段来访问200.200.200.1,发送完请求包后,服务器会将回应包仍然发到路由器内网端口,因为是发往内部主机的,路由器仍是不会启用pat转换,而是经过直连路由直接转发给你的客户机,这样你的客户机仍然收不到源地址为200.200.200.1的回应包,仍是不能成功创建链接。   

         

        另一种状况,若是路由器将你发往200.200.200.1的数据包算作是发往外网,对其作了pat转换,或路由器是强制地址转换的,那么该数据包的源地址将变为200.200.200.1到达路由器外部接口,而路由器若是有相关防错功能,也许该数据包就直接被干掉了,若是能够继续转发那么该数据包将以源地址为200.200.200.1目标地址192.168.0.1到达web服务器。而服务器回应的数据包就会以目标地址200.200.200.1 源地址200.200.200.1到达路由器外部接口。而路由器外部接口此时就盟了。



         前两种状况的关键之处就是外网接口应用了NAT端口映射技术,致使你的主机老是在等待路由器的外部端口回复确认信息。然后一种状况关键之处就在于当你从内网其余主机访问路由外部端口地址时,被应用了PAT技术,将包的源地址进行了修改,致使web服务器回应包不知道真实的访问者地址。

         也就是说NAT端口映射技术没有很好的与PAT端口复用技术协同工做,致使回流问题产生,若是不该用PAT作端口地址转换复用,或nat端口映射,就不会有回流问题,那么同时也无法访问外网。外部主机也访问不了内部服务器。

         在此过程当中若是想判断你内网客户端发往web服务器的数据包究竟有没有被路由器进行pat转换,能够在web服务器上使用抓包软件,看一下收到的tcp请求包的源地址是192.168.0.100仍是200.200.200.1就知道了。

        

        下面简要介绍一下NAT技术

NAT分为:分为静态NAT,动态NAT,NAT端口映射

NAT就是在路由器上将出去的数据包源地址转换为其余接口地址使之与其余网络段匹配,回来的数据包将目标地址再转换回原来发包的主机地址。方便公网的访问,而且屏蔽数据包来源,还起到节省公网地址的做用。设是路由除了转发之外的看家本领,咱们从局域网访问internet就是靠它实现的。



       运营商不可能把每一个要上网的用户都分配一个公网IP,公网IP是不准重复的,由于它用来惟一标定网络上每一个路由器或主机的位置,重复就会出问题。且公网的网络设备数量庞大,公网上的全部路由器和主机配置的都是公网IP地址,因此公网IP地址是有限的能够说是稀缺的,而局域网中主机和网络设备数量少,通常都使用私有地址配置,不一样局域网中的不一样主机IP重复是没什么问题的,只要在一个局域网中保证没有重复,每台设备都能惟一标定就好了,

      那么如何让内网用户可以访问公网服务器的内容又与公网在逻辑上是分开的呢?那就得依靠NAT技术了



       静态NAT就是指静态一对一转换,通常将要上网主机发到外网接口的数据包源地址转换为外网为接口地址,最初的NAT有个缺陷,就是当某一个主机正在访问网络时,那么他占用了路由器外网接口地址,那么其余主机就无法访问,最初是这样解决的,只要要求运营商多分配些合法IP地址就好了,在路由器上设置一个可用于地址转换的合法ip地址列表,也叫可用转换地址池。这样内网不一样主机同时访问时可让路由器自动使用地址池中的不一样地址作转换。同时路由器会将对应关系记录到映射表中。以便服务器回应数据包时查找对应主机。



       动态NAT就是根据要访问网络的主机网卡MAC地址来让路由自动判断那个是须要转换的主机,不须要指定转换哪些iP地址。不过这个技术仍是不经常使用的。



        随着局域网要上网主机的增多,运营商能提供的合法公网地址又有限,这样就没法知足大量局域网主机同时上网的需求,因而又诞生了PAT技术



        PAT技术又称基于端口的地址制转换技术,能够说是NAT技术的升级

它在NAT转换的基础之上,将内网不一样主机发到外网接口的数据包源地址转换为同一外网地址,但端口使用不一样端口转发,并且将数据包进入时的端口和转发出去时的端口以及源ip地址对应关系记录到一个映射表中,用于回应数据包返回时查找对应的主机。注意,在菜用PAT端口复用技术时,数据包包的源端口和目的端口是没有被改写的。只是路由器自身使用了不一样端口进行转发。



         现在使用的都是PAT转换技术,才使得这么多的局域网主机可以同时上网的,不过有时也习惯将PAT称为动态NAT转换。

=================



         针对回流问题的解决方案分析,

         若是回流问题是前两种状况产生的,那么能够考虑将内网访问主机改成其余网段,并强制其pat转换,而后仍是考虑如何让那个目标地址和源地址都为外网口自身的数据包能继续转发下去。

         有人提出能够在路由器上再作一个反向NAT端口映射,可实际上要作的事用反向端口映射来形容是不恰切的。

         根据个人理解:

         nat端口映射是改写包的目标地址

         nat转换是改写数据包的源地址

         二者配合使用才完成了内网与外网服务的互通

         试想如何将源地址为外网口地址的数据包的目标地址转换为内网主机地址呢?由于通常都是将内网固定地址映射为指定外网端口,意义是将该外网端口的来源为任何地址的数据包的目标地址改成内网指定地址,而须要作的是将内网多个地址映射到外网口的指定地址,意义是未来源为固定地址的数据包的目标地址改成指定的一些地址。

但该方法可能有些路由器或防火墙不支持,

-------------------------------

        而反向NAT端口映射要作的事是什么呢?

        是将外网某台服务器的的端口映射到路由器内网端口,让用户访问内网路由接口就能够直接访问到外面的服务器,并且要保证返回数据包能在外网接口正常将源地址修改成路由器内网口地址或可用的内网地址。

         但要注意的是其余的可用内网地址必须是定义在内网口的地址池中的地址,

这些地址就至关于给该网口配置的附加地址。

         以上所作的就是反向NAT端口映射,和反向nat转换。



         因此实际解决回流问题的配置操做应该叫作:

         正向的指定多个内网主机到外网固定地址的NAT端口映射。

         也就是限定了数据包来源只能是外网端口地址,若是不限定来源,那么外网的全部访问数据包将直接到达内网,也就是说至关于把正个内网经过nat端口映射发布到了网上。



         作该配置前,首先应当看内网发布的含有80端口的其余服务器可否经过路由器外网口地址正常访问该WEB服务器。若是不能实现的话,就是说明该配置是行不通的。



         若是行的通能够发布另外一个主机的全部端口到外网,以便将该主机做为测试机,从而省去了找运营商另外添接线路的麻烦。



          //不过这台主机的全部端口都是暴露在网上的,有必定的安全隐患,发布的时候能够考虑只开放相关的端口

          另外在端口映射的同时若是可以限定外网访问者地址来源那是最好,最好能直接指定为外网口地址。



总之可否实现回流仍是得看路由器或防火墙是否支持相应配置了,根据以上解决思路来看仍是有个疑点的,由于以上思路的配置不过是实现了路由器外端口源与目标端口都为外端口地址的数据包的继续转发给内网主机,而没作上述配置前路由器自己是已经作了一条该端口到内网web服务器的映射的,若是以上配置可行,那么原来的配置也该可行,那么该回应数据包是否会返回web服务器自身呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|论坛规章制度|iKuai Inc. ( 京ICP备13042604号 )

GMT+8, 2024-9-21 01:31

Powered by Discuz! X3.3

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表