NAT类型及穿透
NAT可以为内网主机提供一条通道以便其访问外网,通道分为共享及独占2个大类,共享又细分全锥形、受限锥形和端口受限锥形
类型
- 共享通道 - 内网访问不同外网将会使用同一条通道,根据外部数据包到达该通道后的转发规则细分以下3种
- 全锥形 - 转发任意外部外部IP任意端口发送的数据包
- 受限锥形 - 只转发内网主机已访问过的外网IP任意端口发送的数据包
- 端口受限锥形 - 只转发内网主机已访问过的外网IP加端口发送的数据包
- 独占通道(对称型) - 内网访问不同外网将会拥有不同的通道
穿透
位于NAT下的2端,将具有4的排列组合种可能,即C4 = 10种,下面给出这10种的穿透过程
A端NAT类型 | B端NAT类型 | 是否可穿透 | 穿透过程 |
---|---|---|---|
全锥型 | 全锥型 | 是 | A往B的NAT端口直接发送数据 B往A的NAT端口直接发送数据 |
全锥型 | 受限锥型 | 是 | B往A的NAT端口直接发送数据 A往B的NAT端口直接发送数据,(一定要B先发,否则B无法接收A发送的数据包) |
全锥型 | 端口受限锥型 | 是 | B往A的NAT端口直接发送数据 A往B的NAT端口直接发送数据,(一定要B先发,否则B无法接收A发送的数据包) |
全锥型 | 对称型 | 是 | B往A的NAT端口直接发送数据 A往B实时端口发送数据,(需要根据B发送的数据包端口来给B发送数据,而不是服务器提供的NAT端口) |
受限锥型 | 受限锥型 | 是 | A往B的NAT端口直接发送数据(B将会丢弃) B往A的NAT端口直接发送数据(因为A已经给B发送数据,因此可以正常接收) A再往B的NAT端口发送数据(可正常转发) |
受限锥型 | 端口受限锥型 | 是 | A往B的NAT端口直接发送数据(B将会丢弃) B往A的NAT端口直接发送数据(因为A已经给B发送数据,因此可以正常接收) A再往B的NAT端口发送数据(可正常转发) |
受限锥型 | 对称型 | 是 | A往B的NAT端口直接发送数据(B将会丢弃) B往A的NAT端口直接发送数据(因为A已经给B发送数据,因此可以正常接收) A再往B的实时端口发送数据(可正常转发) |
端口受限锥型 | 端口受限锥型 | 是 | A往B的NAT端口直接发送数据(B将会丢弃) B往A的NAT端口直接发送数据(因为A已经给B发送数据,因此可以正常接收) A再往B的NAT端口发送数据(可正常转发) |
端口受限锥型 | 对称型 | 否 | |
对称型 | 对称型 | 否 |