公网的服务器一定找不到NAT后的设备吗
谢邀。首先NAT分为动态/静态/端口NAT,有些也以基于源和目标做分类。无论怎么分类,NAT的本质都是一个:地址翻转。
NAT既能满足地址映射(例如多个内网地址映射一个公网地址,达到节省公网IP地址的目的),也可以隐藏网络真实IP地址,达到安全防护的功能。
【公网的服务器一定找不到NAT后的设备吗】 既然要地址翻转,就涉及到地址翻转表(nat translation table),这张表会存在于边界路由器/防火墙等NAT网关上面,并且将内网和互联网的地址映射起来,为了让题主更好的理解这一点,这里我简单花了这个网络拓扑结构:
R1可以看出是内网的电脑和服务器;R2可以看成是企业网/数据中心网的边界路由器和边界防火墙,R3可以看成是互联网的其他用户和服务器。
这里我说下整个数据流往返过程:
①当R1要访问互联网的R3时,需要R2将12.1.1.0私有网段,翻转为公有网段100.1.1.x,然后再将数据转发给R3;
②当R3收到数据包的时候,其实看到的不是12.1.1.0的ip地址,而是100.1.1.x的IP地址;所以R3将数据包返回给100.1.1.x,交给R2手里,R2再根据本地生成的NAT翻转表(不是路由表!),将数据转发给内网设备R1。
③这里顺便展示下这张表的样子:(以cisco ios为例)R2#show ip nat translations //当R1 ping R3时,查看NAT表Pro Inside global Inside local Outside local Outside globalicmp 100.1.1.20:32 12.1.1.1:32 100.1.1.3:32 100.1.1.3:32--- 100.1.1.20 12.1.1.1 --- ---
所以,说结论:从上面整个NAT翻转流程来看,正常的公网服务器或者外网设备,是没法找到NAT翻转前的私网信息,因为中间隔着一堵墙。
■网友
这就是NAT的用途。
NAT后的设备向外面发起连接的时候,路由器会把内网IP和端口和NAT的公网IP以及它的某一个端口关联起来,并且把这种关联关系存在一张表里。然后路由器会修改这个IP包的头部,把它的源地址和端口改成路由器的公网地址和端口。服务器返回的数据包先到达路由器,路由器查NAT的表,然后决定这个数据包应该转发到哪一个内网的地址和端口。这样一个映射关系建立起来以后,公网的服务器就可以和内网的主机正常通信了。
然而如果服务器首先发起连接的话,是无法直接与NAT后的设备建立连接的。
上述技术严格来说叫NAPT,基本的NAT是不支持端口转发的。
■网友
谁说的?nat有好多种,源地址nat目的地址nat锥形nat端口映射,谁说都找不到后边设备的?
推荐阅读
- 想做手机网游代充,请问要去哪里找货源
- 漏洞|家里有孩子的,一定不要忽略这个漏洞!警惕!同一小区8人确诊
- 双11阿里云搞活动,买了一个ecs云服务器,能做啥呢
- 人类能证明除了自己,其他人也有意识吗(我有意识,其他人也一定有这种方式不算)
- 醉驾被查竟质问交警:“一定要置人于死地是吧!”
- 续航|30万级别"新物种",不一定追求豪车、SUV,这三款也很个性
- 让一个网游(或手游)连接自己的服务器或pc
- 镇咳药|宝宝咳嗽怎么用药?家长一定要谨慎
- Facebook, Google, 百度等公司自制开源服务器,对IBM,HP,Dell等传统服务器生产商的冲击是啥
- 运动|每天坚持运动的人,不一定健康!太多人在做这3种“无效运动”
