前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WebRTC NAT穿越原理

WebRTC NAT穿越原理

作者头像
码农帮派
发布2021-01-12 14:57:16
8540
发布2021-01-12 14:57:16
举报
文章被收录于专栏:码农帮派码农帮派码农帮派

在真实的网路环境中,NAT随处可见,NAT出现的两个目的:

  • 1. 解决IPv4地址不足的问题,在IPv6在短期内无法替代IPv4的情况下,为了解决IPv4不足的问题,引入了NAT解决方案,NAT让多个主机公用一个公网IP地址,内网主机访问公网资源的时候,NAT会对内网主机的地址和访问的公网地址进行映射处理,这样大大缓解了IPv4地址 不足的情况;
  • 2. 解决安全问题,NAT可以有效的隐藏主机的地址,将来自公网的访问全部挡在NAT处理,达到防护内网主机的目的。

NAT虽然带来了不少的好处,但是也增加了端对端直接通信的难度,NAT使得端对端的通信方式在某些场景下只能通过中转服务器进行交互。

NAT的种类

处于对安全的需求,NAT可以分为4种类型:完全锥型、IP限制锥形、端口限制锥形、对称型。

1. 完全锥型

上图中内网主机X,A、B、C是公网主机。

完全锥型NAT的特点是,当host主机通过NAT对公网中的主机B进行访问的时候,首先会在NAT上打洞,所有知道这个洞的公网主机都可以通过这个NAT上的洞,与主机X进行通信。

“打洞”的本质是NAT建立一个内网主机地址和其访问的公网地址的映射关系,以便在公网主机通过NAT的地址回传数据的时候,NAT可以将回传资源数据正确的发送到内网中对应的主机上,这种NAT打洞的方式建立的NAT地址映射表中包含4个关键的数据:

{ ‍ ‍   
  内网IP
  内网端口号
  映射的公网IP              
  映射的公网端口号
}

上面的数据可以理解为NAT打的洞的数据标示,所有从公网发送到这个洞的数据,NAT都会中转到内网的主机X上。

上图中,内网主机host在NAT上打洞成功之后,外网主机A、C从主机B处获得内网主机host的公网IP之后,就可以通过NAT向主机host发送数据了。

2. IP限制锥型NAT

相比完全锥型,IP限制锥型的安全要求更严格,它的特点是host在NAT上打洞之后,NAT会对公网中通过该“洞”向内网主机X发送数据的IP进行限制,只有host访问的外网主机才能够穿越NAT。

这种类型的NAT的地址映射表中包含5个数据:

{
    内网IP
    内网端口号
    映射的公网IP
    映射的公网端口号
    被访问的外网IP地址
}

在上图中,内网host主机访问B主机,那么只有B主机发送分数据才能够穿越NAT向内网主机host发送数据,其他的外网主机A、C即使从主机B处获取到host主机的公网IP也无法穿越NAT。

3. 端口限制锥型

端口限制锥型相比IP限制锥型的安全限制更为严格,端口限制锥型不但对IP地址进行了限制,而且对NAT穿越的公网主机的端口也做了限制,这种类型的NAT地址映射关系包括6个数据:

{
  内网IP
  内网端口号
  映射的公网IP
  映射的公网端口号
  被访问的外网主机的IP地址
  被访问的外网主机的端口号
}

上图中,内网主机host通过打洞访问公网主机B的p1端口,只有公网主机B的p1端口发送回来的数据才允许穿越NAT,其他来源的数据包都会被丢弃。

4. 对称型NAT

对成型NAT是所有NAT类型中最为严格的一种类型。对称型NAT和端口限制型NAT一样,只允许访问的IP和端口号进行穿越,但是对称型NAT与端口型NAT最大的不同在于,当内网主机host访问公网主机A的时候,会重新打洞,而不会使用之前的访问主机B时使用的洞。也就是对称型NAT的每个链接都会使用不同的端口、甚至更换IP,而端口限制型NAT的多个链接使用同一个IP和端口。

上面这4种NAT会给P2P的穿越带来很多麻烦,尤其是对称型NAT遇到对称型NAT、对称型NAT遇到端口型NAT的时候,双方基本无法完成NAT穿越。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-01-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农帮派 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
NAT 网关
NAT 网关(NAT Gateway)提供 IP 地址转换服务,为腾讯云内资源提供高性能的 Internet 访问服务。通过 NAT 网关,在腾讯云上的资源可以更安全的访问 Internet,保护私有网络信息不直接暴露公网;您也可以通过 NAT 网关实现海量的公网访问,最大支持1000万以上的并发连接数;NAT 网关还支持 IP 级流量管控,可实时查看流量数据,帮助您快速定位异常流量,排查网络故障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档