首页 > 硬件 > 网络 > 正文

VPP全锥型NAT实现

2020-08-06 15:17:43   来源:IT运维网>

 
本期智汇华云,华云数据特别邀请到华云数据网络组开发工程师许猛为大家带来“VPP全锥型NAT实现”。
 
内容介绍
 
在现实Internet网络环境中,大多数计算机主机都位于防火墙或NAT之后,只有少部分主机能够直接接入Internet。很多时候,我们希望网络中的两台主机能够直接进行通信,即所谓的P2P通信,而不需要其他公共服务器的中转。由于主机可能位于防火墙或NAT之后,在进行P2P通信之前,我们需要进行检测以确认它们之间能否进行P2P通信以及如何通信。这种技术通常称为NAT穿透(NAT Traversal)。最常见的NAT穿透是基于UDP的技术,如RFC3489中定义的STUN协议。
 
RFC5780为了检测NAT类型,对NAT定义了三种映射规则Mapping跟Filtering,组合形成9种类型,包含RFC3489种定义的4种类型:Full Cone NAT、Restricted Cone NAT、Port Restricted Cone NAT、Symmetric NAT。
 
根据NAT实现原理,对称NAT安全性最高,全锥形NAT安全性最低,这也意味着对称NAT实现P2P条件最苛刻。VPP作为网络转发平面,VPP默认支持对称型NAT,要实现P2P必须要求对方为全锥形NAT,在现实网络环境中,网络路径中几乎不存在,为了最大程度支持P2P,VPP实现全锥形NAT,这种模式下,很适合类似视频推流里P2P。
 
NAT类型分类
 
RFC3489NAT的UDP的实现方式有4种类型:
 
Full Cone NAT
·          
完全锥形NAT,所有从同一个内网IP和端口号发送过来的请求都会被映射成同一个外网IP和端口号,并且任何一个外网主机都可以通过这个映射的外网IP和端口号向这台内网主机发送包。
 
Restricted Cone NAT
 
限制锥形NAT,它也是所有从同一个内网IP和端口号发送过来的请求都会被映射成同一个外网IP和端口号。与完全锥形不同的是,外网主机只能够向先前已经向它发送过数据包的内网主机发送包。
 
Port Restricted Cone NAT
 
端口限制锥形NAT,与限制锥形NAT很相似,只不过它包括端口号。也就是说,一台IP地址X和端口P的外网主机想给内网主机发送包,必须是这台内网主机先前已经给这个IP地址X和端口P发送过数据包。
 
Symmetric NAT
 
对称NAT,所有从同一个内网IP和端口号发送到一个特定的目的IP和端口号的请求,都会被映射到同一个IP和端口号。如果同一台主机使用相同的源地址和端口号发送包,但是发往不同的目的地,NAT将会使用不同的映射。此外,只有收到数据的外网主机才可以反过来向内网主机发送包。
 
RFC5780中9种NAT类型:
 
下面介绍一种Mapping Behavior(映射规则)和 Fieltering Behavior(过滤规则):
 
Mapping Behavior:
 
l  Endpoint-Independent Mapping:
 
对于一个内网的EedpointP,其对应的外网EndpointG是基本固定的,不会随着通讯外部主机的不同而变化。
 
Filtering Behavior:
 
l  Endpoint-Independent Filtering:
 
对于这种过滤型,NAT在主机的一个外网EndpointG1收到包,只要找到与之对应的内网EndpointP1,NAT就会转发这个资料包给相应的内网EndpointP1,不管这个资料包的来源是哪里。(安全性最低,穿透性最高)
 
VPP Full Cone NAT
 
VPP通过三元组(其实是四元组,fib用来做)记录内网IP跟出口网关的对应关系以及协议,而不记录对端IP以及PORT,所以回程不会检查过滤源IP及PORT。
 
简化版NAT报文处理流程如下,文件in2out.c out2in.c:
 
1、 内网发起的对外请求
2、 查找user的in2out表,如果不存在则根据映射算法计算出 NAT转换后的IP、PORT,建立转换关系in2out以及out2in表
3、 根据映射关系替换原始包头的IP、PORT重新计算校验和
4、 发送报文
5、 外网回复报文,进入到out2in流程,查找out2in表,找到对应映射关系
6、 根据映射关系替换原始包头的IP、PORT重新计算校验和
7、 接受报文
8、 发送给内网地址
 
In2out处理简化流程:

 
Out2in处理流程:



免责声明:本网站(www.365master.com)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。电话:010-88558043)

相关热词搜索:NAT 华云数据

上一篇:如何用SDN打通混合云的网络孤岛
下一篇:最后一页

扫码关注公众号

扫码订阅杂志

扫码下载2020年《混合多云行业应用调查报告》