赞
踩
仅将内网主机的私有IP地址转换成公网的IP地址,并不将TCP/UDP端口信息进行转换,分为静态NAT和动态NAT。
NAPT不但会改变经过这个NAT设备的IP数据报的IP地址,还会改变IP数据报的TCP/UDP端口。
1.2.1锥型NAT
1.2.2对称NAT(Symmetric)
对不同的外网IP地址都会分配不同的端口号。
1.2.3 两者区别
对称NAT是一个请求对应一个端口,非对称NAT是多个请求对应一个端口(象锥形,所以叫Cone NAT)。
对称型 > 端口受限锥型 > 受限锥型 > 全锥型
中间服务器保存信息、并能发出建立UDP隧道的命令
网关均要求为Cone NAT类型。Symmetric NAT不适合。
完全圆锥型网关可以无需建立udp隧道,但这种情况非常少,要求双方均为这种类型网关的更少。
不同的网络拓扑NAT打洞的方法和流程有所区别。
2.2.1 同一个NAT设备下
2.2.2 不同NAT设备下
1、A使用4321端口与S连接,NAT给回话在NAT分配外网62000端口(155.99.25.11:62000)与S连接;同理B以相同的方式与S连接,分配的外网地址端口是138.76.29.7:31000。
2、A往S注册消息包里包含里A的私有地址10.0.0.1:4321,此时S保存了A的地址;S给A临时分配了一个用于公网的地址(155.99.25.11:62000),同时用于观察外网数据包。
3、同理B往S注册的消息包里也包含里B的地址,NAT同样给B临时分类了一个外网地址(138.76.29.7:31000)。
4、Client A根据以上已知信息通过打洞的方式与B连接UDP通信:
2.2.3 多层NAT下
说明:NAT C 是一个大型的工业NAT设备,由ISP(Internet Service Provider,互联网服务提供商)部署,用于将许多客户多路复用到几个公共IP地址上。
Client A和client B无法通道NAT A和NAT A进行P2P通信,因为它们属于NAT C的局域网地址,因此client A和client B只能通道NAT C的hairpin translation进行P2P通信,如果NAT C不支持hairpin translation,则它们很难进行P2P通信。
每个客户机像前面方式一样启动到服务器S的连接,引起NAT A和B各自创建一个单独的公共/私有转化——session A-S(18.181.0.31:1234 10.0.0.1:4321)和session B-S(18.181.0.31:1234 10.1.1.3:4321),并引起NAT C为每个会话建立一个公共/私有翻译——session A-S(18.181.0.31:1234 10.0.1.1:45000)和session B-S(18.181.0.31:1234 10.0.1.2:5500)。
不同的NAT组合打洞的方式也有所不同,有点可以打洞,有的则不能打洞,如两个都是对称型设备则无法实现打洞。不同组合打洞结果如下:
4.1 对称NAT设备常用场景
1)使用第三方宽带公司提供的宽带,这类宽带给用户分配的是局域网IP,连接公网的NAT是运营商的,这类运营商一般采用对称NAT。
2)移动互联网,如3G、4G终端设备;
3)大公司路由器一般采用对称NAT;
4.2影响“打洞”的因素
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。