Bootstrap

NAT拓展

NAT  ALG(NAT应用级网)

为某些应用层协议,因为其报文内容可能携带IP相关信息,而普通NAT转化无法将这些IP转化,从而导致协议无法正常运行

例如FTP,DHCP,RSTP,ICMP,IPSEC,GRE等

内网穿透

双方设备需要互通,可借助FRP服务器而不进行NAT转换直接进行通讯,常用于远程控制和游戏跨局域网联机

原理就是在公网内找一台服务器作为FRP服务器,所有数据经过FRP服务器进行端口映射转发给对端,从而实现两者间通信不使用NAT

NAT网络类型(STUN定义)

b2e6812fad5949d2ab16ec3b09453fc6.png

完全锥形NAT

私网IP发送数据到公网时,NAT设备会将私网IP和端口映射为一个公网IP和端口,所有私网IP被转换为同一个公网IP和端口,策略较为宽松,达成映射关系即可互访

限制锥形NAT

同上,但是只有当内部主机之前已经向公网主机发送过报文,公网主机才能向私网主机发送报文

端口限制锥形NAT

与限制锥型NAT类似,但它包括端口号,也就是说只有之前通信过的公网主机IP和端口号才能向私网主机发送报文

对称NAT

根据发送目的地映射公网IP,不同请求有不同的映射关系,只有收到数据的公网主机才可以反过来向私网主机发送报文

NAT打洞

定义

打洞是指通过中间设备(如路由反射器)的协助在各自的NAT网关上建立相关表项,使P2P连接双方发送的报文能够直接穿透NAT网关的过程。

过程

1.通讯前两台设备进行牵引搭桥,即在公网内寻求一台服务器

2.双方发给服务器自己的私网IP和转换后的公网IP以及端口

3.服务器收到后向两台设备分别发送对端的信息

4.双方收到后,用服务器给的公网IP直接进行通讯

注意

1.对称性NAT无法进行打洞,因为其没有一个固定的外部可见的IP和端口,外部主机难以主动发起连接到内部主机

2.完全锥形NAT虽然结构简单但安全性低,最安全的是对称NAT

STUN

STUN是一种解决P2P应用NAT穿越问题的常用技术。它允许网络设备找出通信端点经NAT设备后的IP地址和端口号,并利用这些信息在通信双方之间建立一条可以穿越NAT设备的数据通道,实现P2P通信

工作原理

1.NAT类型检测:STUN通过客户端与STUN服务器之间的请求和响应来发现NAT的外部IP地址和端口号。客户端首先向STUN服务器发送一个请求,STUN服务器收到请求后,回复一个响应,其中包含了从服务器角度看客户端的公网IP地址和端口信息

2.NAT打洞:过程同上

TURN

TURN允许位于NAT后面的客户端通过一个中继服务器与其他客户端进行通信,特别是在直接通信(如P2P)由于NAT限制而无法实现时,可以解决对称NAT无法打洞的问题

工作原理

  1. 分配阶段:客户端首先向TURN服务器请求分配一个中继地址,TURN服务器会响应一个包含分配的中继地址、客户端NAT映射后的地址和有效期的消息
  2. 转发阶段:客户端通过创建转发授权请求,允许TURN服务器将数据转发给指定的对等方。客户端可以通过发送数据指示消息(Send Indication)将数据发送给对等方,而对等方可以直接将数据发送到客户端的中继地址

总结

NAT给IPv4地址延长寿命的同时,也给一些协议的正常运行造成了影响,这也是为什么NAT不能从根源解决问题的原因。而NAT扩展协议的出现不仅提高了网络安全性,增加了网络灵活性,解决了因普通NAT导致P2P通信中断的问题。不过,同时也增加了网络复杂度,提高设备性能要求。

;