面试题答案
一键面试NAT穿越基本原理
- 端口映射:在NAT设备上,内部网络设备的私有IP地址和端口会被映射到NAT设备的公有IP地址和一个特定端口。外部设备通过访问NAT设备的公有IP和映射端口来与内部设备通信。为实现穿越,需让外部设备知晓这个映射关系。
- 打洞技术:内部设备主动向外部设备发送数据包,在NAT设备上建立映射表项。外部设备利用此映射表项,通过NAT设备与内部设备进行通信。这就像是在NAT设备上“打了个洞”,使得外部数据能够进入内部网络。
常见NAT类型及对NAT穿越的影响
- 完全圆锥型NAT
- 原理:无论数据包来自哪个外部IP和端口,NAT设备都会将内部设备的私有IP和端口映射到同一个公有IP和端口。
- 对穿越影响:最容易实现穿越,因为外部任何设备只要知道NAT设备的公有IP和映射端口,就可以与内部设备通信。
- 受限圆锥型NAT
- 原理:内部设备第一次向某个外部IP地址发送数据包后,NAT设备会建立映射。后续只有来自该外部IP地址的数据包,无论端口号如何,都能通过NAT设备到达内部设备。
- 对穿越影响:相对容易穿越,只要外部设备能得知NAT设备的公有IP和映射端口,并且内部设备事先与外部设备建立过连接,外部设备就可以与内部设备通信。
- 端口受限圆锥型NAT
- 原理:内部设备第一次向某个外部IP地址和端口发送数据包后,NAT设备建立映射。只有来自该特定外部IP地址和端口的数据包才能通过NAT设备到达内部设备。
- 对穿越影响:穿越难度稍大,外部设备不仅要知道NAT设备的公有IP和映射端口,还需要在内部设备事先连接的相同端口上进行通信才能实现穿越。
- 对称型NAT
- 原理:对于不同的外部目标IP和端口,NAT设备会使用不同的公有IP和端口映射。即内部设备每次向不同的外部主机发送数据,NAT设备都会为其分配不同的公网IP和端口。
- 对穿越影响:穿越难度最大,因为外部设备很难预测NAT设备为内部设备分配的公有IP和端口,需要借助额外的服务器(如STUN、TURN服务器)来协助完成穿越。