一种轻量级双协议栈隧道技术的设计和实现.docx
- 文档编号:2321458
- 上传时间:2023-05-03
- 格式:DOCX
- 页数:8
- 大小:19.16KB
一种轻量级双协议栈隧道技术的设计和实现.docx
《一种轻量级双协议栈隧道技术的设计和实现.docx》由会员分享,可在线阅读,更多相关《一种轻量级双协议栈隧道技术的设计和实现.docx(8页珍藏版)》请在冰点文库上搜索。
一种轻量级双协议栈隧道技术的设计和实现
一种轻量级双协议栈隧道技术的设计和实现
摘要IPv6的应用越来越广泛,IPv6组网会渐渐成为主流,而现有的IPv4效劳不可能立即废弃,因此就需要有IPv6/IPv4的过渡性方案。
文章提出一种基于轻量级双协议栈DS-Lite隧道技术的IPv6边缘网络,实现IPv4网络跨IPv6网络进行通信的过渡性方案。
它是隧道技术和NAT的结合,用户使用IPv4协议栈,通过隧道实现与IPv4双向互访的轻量级、可扩展性强的过度机制。
关键词隧道技术;边缘网络NAT;DS-Lite〔轻量级双协议栈〕
中图分类号:
TP393文献标识码:
A文章编号:
1671-7597〔2021〕19-0056-03
随着互联网、物联网的飞速开展,各种终端对IP地址的需求越来越大。
目前,IPv4地址已经根本耗尽。
在这种情况下,IPv6应运而生。
但是由于各种错综复杂的历史原因,使得目前通用的IPv4网络不可能在短时间内全部升级改造为IPv6网络。
在很长一段时间内,互联网仍将以IPv4为主导。
因此,IPv4如何向IPv6平滑过渡,成为目前网络部署的重要课题。
Dual-StackLite就是一种用于IPv6边缘网络,用来实现IPv4网络跨IPv6网络进行互联通信的过渡性方案。
1轻量级双协议隧道技术的关键技术
IPv6的应用越来越广泛,IPv6组网会渐渐成为主流,而现有的IPv4效劳不可能立即废弃,因此就需要有IPv6/IPv4的过渡性方案。
论文提出一种基于轻量级双协议栈DS-Lite隧道技术的IPv6边缘网络,实现IPv4网络跨IPv6网络进行通信的过渡性方案。
它是隧道技术和NAT的结合,用户使用IPv4协议栈,通过隧道实现与IPv4双向互访的轻量级、可扩展性强的过度机制。
1.1隧道技术
隧道技术是一种封装技术,即某种网络协议将其他网络协议的数据报文封装在自己的报文中,然后在网络中传输。
报文被封装后,在网络中传输的路径,称为隧道,在隧道的两端,需要对报文进行加封装和解封装。
隧道技术包括数据封装、传输和解封装在内的全过程。
DS-Lite采用IPv4-in-IPv6隧道技术,在IPv6边缘网络上,运营商只需要为用户分配IPv6地址,即可实现IPv4用户之间的通信,实现双栈网络。
1.2NAT技术
NAT〔NetworkAddressTranslation,网络地址转换〕技术是为了应对IPv4地址匮乏而应运而生的网络技术之一,同时也是一项网络平安防范的有效措施。
它通常被用在网络的外网口,用以保护内网〔用户侧私网〕地址的平安。
NAT的最核心、最根底的功能是通过对报文的源地址转换,将用户侧的私网地址转换为ISP认可的公网地址,由此实现私网用户可以使用重复的私网地址访问公网的目的。
2轻量级双协议栈隧道的分析和设计
2.1双协议栈隧道的整体架构
轻量级双协议栈隧道的典型组网如图1所示。
从图1可以看出,DS-Lite隧道整体架构主要由以下几个局部组成。
1〕Client。
客户端是处在IPv4孤岛中的IPv4主机,通过IPv6网络连接到另一侧IPv4孤岛中的Server。
2〕B4〔BasicBridgingBroadBand〕。
B4为部署在IPv6网络接入侧的双协议栈路由器,以IPv6地址与外部运营商网络相连接,同时支持IPv4和IPv6报文。
3〕AFTR〔AddressFamilyTransitionRouter地址族转换路由器〕。
AFTR部署在运营商网络,位于另一侧IPv4网络孤岛的边缘。
当收到来自DS-Lite隧道的IPv6报文之后,首先将报文解封装,然后进行NAT转换,将报文的源地址转换为公网IP地址,通过IPv4网络进行转发。
4〕DHCPv6Server。
DHCPv6Server的作用是通知B4侧AFTR端的域名。
5〕DS-LiteTunnel。
DS-Lite隧道是IPv4-over-Ipv6隧道的一种,都是在原始Ipv4报文头上封装一层Ipv6报文头,隧道的入口在B4侧,出口在AFTR侧。
6〕Server。
IPv4效劳器位于IPv4网络中,接收来自AFTR已经解封装的IPv4报文,仅作普通的IPv4转发。
2.2轻量级双栈隧道的功能设计
2.2.1B4的功能设计
B4设备需要两大功能,分别为Tunnel和DHCPv6,各自的功能需求分解如下。
Tunnel在IPv4-in-IPv6隧道中增加命令,指定通过DHCP获取AFTR域名的接口名;向DHCPv6Client模块注册回调函数,等待DHCPv6Client通知AFTR选项的信息;收到DHCPv6Client传来的AFTR域名时,解析出IPv6地址,并存到Tunnel控制块中;给IPv4报文封装上IPv6报文头,目的IP地址是接口连接的AFTR的IPv6地址,报文经过DS-Lite隧道传输;对从DS-Lite隧道返回的IPv6报文解封装,处理过程与普通IPv4-in-IPv6报文的解封装处理相同。
DHCPv6Client保存Tunnel注册的信息通知回调函数;DHCPv6Server反应AFTR的信息选项时,把得到的结果通过回调函数,告知Tunnel模块;当发现DHCPv6Server上的AFTR信息选项发生变化时,通知Tunnel模块,进行相应的变更。
2.2.2AFTR功能设计
Tunnel功能:
1〕AFTR端需要新增一种隧道模式,只允许配置源物理接口,不需要配置目的接口,并且设备上无需配置到达Tunnel的路由。
2〕维护TunnelID与IPv6源地址的双向映射表。
3〕解封装IPv6报文,根据IPv6源地址来确定解封装后的IPv4报文的TunnelID。
4〕在IPv4报文入处理流程的最后处理会话后续报文。
如果是正向报文,取会话管理出接口,否那么取会话入接口,判断接口是否为DS-Lite隧道接口,如果是,那么把报文直接送到此接口的OUTPUT处理阶段。
5〕在IPv4报文入处理流程的最后处理会话首报文,查找父会话信息,如果父会话是DS-Lite处理过的会话,设置当前会话的出接口为父会话入接口,并把报文送至父会话的入接口的OUTPUT处理阶段。
6〕对于Server返回的报文,通过TunnelID查找目的IPv6地址,如果报文没有TunnelID,那么丢弃。
DS-Lite隧道不支持外网Server主动访问内网主机。
7〕新增接口下的命令行,用来声明此接口为DS-Lite隧道IPv4报文的出接口。
NAT功能:
1〕在报文的解封装方向,IPv4报文需要通过出接口的NAT转换源地址〔即私网地址〕,设置转换后的地址端口到报文,并去除报文中的TunnelID。
2〕在报文的加封装方向,IPv4报文通过解封装方向NAT转换创立的session表项来转换目的地址,并填充私网地址端口到报文,根据会话信息设置报文的TunnelID。
IPFS功能:
需要修改IPv4fast-forwarding的cache数据结构,添加TunnelID成员,并提供相关获取、设置、去除MBUF中的cache的TunnelID相关信息的接口。
2.2.3DHCPV6Server功能设计
1〕增加配置AFTR域名的命令。
2〕解析请求报文中的AFTR查询选项,填充AFTR域名到应答报文中。
3轻量级双协议栈隧道的实现
3.1DS-Lite隧道实现任务的分解
根据上文分析,DS-Lite隧道需要实现以下4个局部。
1〕命令行局部,遵循相应的命令行设计标准,使用系统的标准命令行注册函数完成,该局部为整个系统用户态的根底。
2〕报文处理流程局部,如何简化报文处理,使设备的吞吐量和时延到达最大优化,这是DS-Lite隧道实现的难点。
3〕主模块功能局部,需要保证双协议栈隧道模块架构控制流程统一,层次清楚,高扩展性,功能完备性,这是主模块功能设计的重点。
4〕与其他模块交互局部,必须考虑与转发模块、路由模块、接口管理等根底模块的独立性,其中,由于DS-Lite隧道与NAT模块的耦合度相对最高,所以最关键的局部是保持与NAT的兼容性。
3.2DS-Lite隧道实现
3.2.1DS-Lite隧道的命令行实现
经过以上分析,可将命令行模块分为4个子模块。
1〕初始化模块。
注册注销命令、命令行解析、以及buildrun的安装和回调函数。
2〕注册模块。
用来向系统注册命令行。
3〕解析模块。
解析命令行下发的配置信息。
4〕Buildrun模块。
使用displaycurrent-configuration或displaythis等命令显示。
3.2.2DS-Lite隧道的报文处理流程实现
DS-Lite隧道最核心的局部在于对报文的处理。
下面对报文处理流程的实现进行详解。
1〕B4端。
在用户态,B4需要在接口UP事件处理中向DHCPv6注册信息通知回调函数,在DHCPv6模块获取到信息之后,调用回调函数。
在回调函数中,解析AFTR的域名,把得到的地址设置到tunnel控制块中,并通知内核进行更新。
在内核态,处理与IPv4-inIPv6隧道完全相同。
2〕AFTR端。
在用户态,DS-LiteAFTR隧道对报文没有特殊处理,与IPv4-in-IPv6隧道相同。
在内核态,加解封IPv4-in-IPv6隧道略有不同,需要单独实现。
DS-Lite隧道解封装处理时,首先根据解封装前的IPv6报文源地址查找表项,确定TunnelID,然后进行IPv4-inIPv6隧道解封装处理,把TunnelID设置到解封装后的MBUF中。
DS-Lite隧道加封装处理时,首先在NAT处理过程中填充TunnelID到报文,然后在DS-Lite业务处理过程中,判断是否为会话首包且存在父会话,如果是,那么从父会话中取DS-Lite隧道的接口索引,设置到本会话中,并送到DS-Lite隧道接口的Output处理;如果父会话不存在,或者父会话没有经过DS-Lite处理,那么不作额外处理。
3〕DHCPv6Client。
为支持DS-Lite,需要修改DHCPv6客户端的实现,以支持OPTION_AFTR_NAME选项。
当TUNNEL向DHCPv6注册了该选项的回调函数之后,DHCPv6可不短需要在DHCPv6请求报文的OPTION_ORO选项中增加OPTION_AFTR_NAME字段,并且相应DHCPv6应答消息时,解析OPTION_AFTR_NAME选项中的域名,并调用回通知TUNNEL进程,解析域名,获取地址,记录到DS-Lite隧道的控制块中。
4〕DHCPv6Server。
DHCPv6效劳器需要支持OPTION_AFTR_NAME选项,并且需要支持添加AFTR域名的命令,当收到带有OPTION_AFTR_NAME选项的请求时,把AFTR域名添加到回应消息中。
3.2.3DS-Lite隧道的主模块功能实现
DS-Lite的系统功能实现主要包括大两局部——TUNNEL和DHCPv6。
其模块结构框图如图2所示。
由图2可以看出,在用户态,TUNNEL局部的主要内容为增加DS-Lite隧道模式,包括DHCPv6信息通知回调函数、报文的加解封装处理、各自数据维护,以及AFTR的session处理等。
DHCPv6局部,又分为Client和Server。
Client需要提供信息通知回调机制,供给用模块获取特定的选项信息,向DHCPv6发送OPTION_AFTR_NAME请求;DHCPv6Server需要增加配置AFTR域名的命令,并需要有机制来应答OPTION_AFTR_NAME选项请求。
此外,需要在NAT处理中参加TunnelID的设置和去除动作。
在内核态,TunnelKernel需要进行配置处理、数据维护、调试信息输出、接口事件处理、加解封装处理、会话业务处理、注册和初始化以及快转处理8个局部。
3.2.4DS-Lite隧道与NAT模块交互局部功能实现
在DS-Lite隧道典型组网环境下,考虑到网络平安,DS-Lite组网不支持外网主动访问内网,所以NAT主要应用在外网口处,用来转换B4侧的IPv4源地址。
NAT在DS-Lite隧道中主要在出接口出对报文进行处理。
其处理流程是NAT通过报文获取会话,使用临时会话NAT扩展信息中的关联表转换信息,对报文进行转换处理。
对于首报文,NAT查找配置进行转换后,不判断是否已存在临时会话表,直接通知会话管理模块创立会话表。
所调用接口的入参为地址转换前的报文Mbuf,会话管理需要先判断Mbuf中的会话指针是否为空,假设不为空,那么说明已经存在临时会话,直接返回。
如果报文在入接口处理中已经做了源地址转换,出接口那么不再进行源地址转换处理。
另外,NAT模块还需要进行的调整有:
在解封装方向,NAT源地址变换之后,设置转换后的地址/端口到报文,并去除报文中的Tunnel-ID;在加封装方向,NAT目的地址变化之后,填充私网地址/端口到报文,并根据会话信息设置报文的Tunnel-ID。
4总结
Dual-StackLite隧道技术提出了在一种IPv6边缘网络中,用户使用IPv4协议栈,通过隧道实现与IPv4Internet双向互访的轻量级、可扩展性强的过渡机制。
轻量级双栈技〔DS-Lite〕使得私网用户之间能够共享IPv4地址,具有高复用性。
它整合了两种现有技术IPv4-over-IPv6隧道封装技术和NAT技术。
它使得IPv4效劳能继续提供,又鼓励了IPv6的扩张,并简化了部署过程。
参考文献
[1]Bradner,S.Theendofend-to-endsecurity?
[Internetsecurity].IEEESecurity&Privacy2006,4〔2〕:
10-15.
[2]王相林.IPv6核心技术[M].北京:
科学出版社,2021:
21-23.
[3]曹继军,王勇军.基于网络处理器的NAT协议实现技术[J].计算机工程,2005,31〔17〕:
121-123.
[4]ShiuhpyngS,FushenH,Yu-LunH,etal.Networkaddresstranslators:
effectsonsecurityprotocolsandapplicationsintheTCP/IPstack.IEEEInternetComputing,2000,4〔6〕:
46-48.
[5]SrisureshP,GanD.IPNetworkAddressTranslator〔NAT〕TerminologyandConsiderationsRFC2663,IETF,1999〔8〕:
2-3.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一种 轻量级 协议 隧道 技术 设计 实现