如何识别NAT后端的设备?

每个nat连接都会对应一个端口号,端口号最大到65535,还要去掉其他的 一些保留端口。连接数满了,就会删掉一些超时的连接会话,供新 连接使用。对于一些大流量场合,就需要应用负载均

本文最后更新时间:  2023-05-22 10:37:36

我们一般所说的NAT是指snat,既源网络地址转换。这类NAT不接受从外部发起的连接,而是只处理从内部向外部发起的请求。比如NAT内部的机器A向百度发起查询请求,数据包经过NAT时,NAT把数据包的原地址(既机器A的IP地址)换成NAT所在的机器的IP地址(如果有多个可以指定某一个),把源端口换成NAT所在机器的某个未被使用的端口,然后把数据包发出去。同时NAT把这个映射关系记录下来(源地址,源端口对应NAT转换后的IP和端口),并且会在转换后的主机端口等待发出去的请求响应。等请求响应回来以后,会查询映射表,把响应的数据包转发给后端的机器A。由于NAT隐藏了后端的所有机器地址,所以从外面发起的请求必须经过NAT所在的机器IP(一般是个公有地址)以及某个端口,但是这时这个端口不在NAT的映射表里,数据包不会得到处理,被丢弃掉了。因此一般情况下从外部无法发现NAT后端的机器也无法访问他们。

但是就没办法了吗?也不是。

第一,假如有某个软件在NAT机器的某个端口监听,把收到的数据包转发给后端的某个IP的某个端口,这就把NAT后端的某个IP和端口间接的暴露了出去。实际上NAT就有这个端口映射功能(简单点的可以看vmware work station 的网络设置,里面就有NAT端口映射)。但是这个只能端口一一对应映射,对于要发现NAT后端任意机器并进行通讯是不行的。

第二,想要发现NAT后端的任意机器,实际上你也必须加入到NAT后端的这个网络。手段就是VPN。在NAT机器上架设一个VPN服务器,IP网段为NAT后端的网段IP,通过NAT机器IP提供服务,VPN客户端连上以后分配到一个NAT后端同样的IP并给你的机器自动设置路由,这样就可以发现NAT里的任意机器了。

纯手打。

温馨提示:内容均由网友自行发布提供,仅用于学习交流,如有版权问题,请联系我们。