CN103236964B - 基于Linux的DS-Lite实现方法及其CPE接入设备 - Google Patents
基于Linux的DS-Lite实现方法及其CPE接入设备 Download PDFInfo
- Publication number
- CN103236964B CN103236964B CN201310162911.XA CN201310162911A CN103236964B CN 103236964 B CN103236964 B CN 103236964B CN 201310162911 A CN201310162911 A CN 201310162911A CN 103236964 B CN103236964 B CN 103236964B
- Authority
- CN
- China
- Prior art keywords
- ipv6
- server
- ipv4
- aftr
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于Linux的DS-Lite实现方法及其CPE接入设备,其基于Linux软件方式实现DS-Lite功能,并通过网关设备中使用DHCPv6Option64来获取AFTR服务器地址,在IPv6WAN连接下建立Tunnel,通过DNS Proxy来进行IPv4 DNS与IPv6 DNS相互转换,进行解析,以此方式实现网关LAN侧的IPv4数据包通过网关处理后,在IPv6-only的网络环境进行传输,降低对硬件的要求,简化了接入实现方式。
Description
技术领域
本发明涉及DS-Lite技术领域,具体涉及基于Linux的DS-Lite实现方法及其CPE接入设备。
背景技术
DS-Lite(Dual-Stack Lite)轻型双栈技术是一种IPv4-in-IPv6隧道技术,可实现在IPv6-only接入网环境下,双栈或IPv4-only主机访问IPv4网络资源,用来实现IPv4和IPv6的共存。
目前随着IPv4可分配地址资源的耗尽,互联网采用IPv6网络已成为下一代互联网的发展方向,越来越多的运营商已开始在接入网与核心网着手部署IPv6网络。但是由于原有大量应用层软件和已部署的终端硬件局限性的问题,在未来的相当长的时间内,需要IPv4和IPv6业务实现共存。那么在IPv6-only接入网环境下,如何实现终端对原有IPv4业务的访问成为必须解决的问题。
发明内容
本发明所要解决的技术问题是,在保留终端IPv4业务的基础上,如何实现IPv4业务流量在IPv6网络中传输,从而实现在IPv6的环境下,对IPv4业务进行访问。
为了解决上述技术问题,本发明所采用的技术方案是提供一种基于Linux的DS-Lite实现方法,其包括以下步骤:
利用用户终端网关(CPE)向网关控制服务器(BNG)发起呼叫请求,在WAN接口建立与IPv6网络的连接,获取WAN接口的IPv6全球地址;
判断是否静态配置AFTR(Address Family Translation Router,地址族过渡路由器单元)服务器域名,若是,则调用AFTR服务器为用户终端网关(CPE)提供AFTR服务器域名;若否,则利用用户终端网关(CPE)通过DHCPv6隧道端点选项(option 64)向网关控制服务器(BNG)发出请求分配AFTR服务器域名的请求,接收网关控制服务器(BNG)返回的AFTR服务器域名;
根据所述AFTR服务器域名进行解析,获得所述AFTR服务器的IPv6地址;
CPE通过DHCPv6获取IPv6DNS服务器地址,在其LAN接口实现IPv4至IPv6的DNS代理,LAN接口作为IPv4主机的DNS服务器,将LAN侧V4主机发送的IPv4DNS请求转换为IPv6DNS请求进行发送(A请求装换为AAAA请求),收到IPv6DNS响应后,再转换为IPv4DNS响应回送给V4主机;
开启DHCPv4Server功能,为连接到LAN接口的用户终端分配私有IPv4地址,同时加载linux系统中的ip6_tunnel模块;
根据所述WAN接口的IPv6全球地址和所述AFTR服务器的IPv6地址,建立用户终端网关至所述AFTR服务器的IPv4-in-IPv6隧道,构建网关隧道接口,利用所述WAN接口的IPv6全球地址作为网关隧道接口的网络地址;完成宽带桥接;
调用linux平台ip_tables.ko模块,通过下发iptables规则和限制隧道接口MTU值,来处理大包分片和自适应确定TCP MSS值;
判断待传输数据的报文协议类型用以选择传输通道,如果是IPv4协议,则通过IPv4-in-IPv6隧道完成与所述AFTR服务器的数据包传输,如果是IPv6协议,则直接通过WAN接口完成与所述AFTR服务器的数据包传输。
在上述方案中,所述用户终端网关(CPE)具有IPv4和IPv6两种协议栈。
在上述方案中,上述步骤中,在启动用户终端网关CPE时一并开启DHCPv6Server功能,为连接到LAN接口的用户终端分配相应的IPv6地址,用于实现IPv6协议终端与用户终端网关CPE之间的数据传输。
在上述方案中,上述步骤中,所述调用Linux平台下ip_tables模块,用于协商TCPMSS值的自适应过程如下:
使用远程主机的主机名和端口号创建TCP client,为TCP网络服务提供客户端连接,TCP client发出SYN报文,其中option选项填充的MSS字段一般为MTU+IP头大小+TCP头大小,同样TCP server服务器收到SYN报文后,会发送SYN+ACK报文应答,option选项填充的MSS字段也为MTU+IP头大小+TCP头大小;协商双方会比较SYN和SYN+ACK报文中MSS字段大小,选择较小的MSS作为发送TCP分片的大小。
在上述方案中,在所述判断待传输数据的报文协议类型用以选择传输通道的过程中,针对用户终端网关CPE的LAN接口流入的数据报文,判断所述数据报文的协议类型,如果是IPv4协议,则通过所述网关隧道接口进行IPv6协议的封装,然后通过IPv4-in-IPv6隧道完成与所述AFTR服务器的上行数据传输(即从终端上述数据至互联网);如果是IPv6协议,则利用IPv6协议通过所述WAN接口直接传输完成与所述AFTR服务器的上行数据传输。
在上述方案中,在所述判断待传输数据的报文协议类型用以选择传输通道的过程中,针对WAN接口侧流入的数据包,判断是否封装有IPv4协议类型的报文以确定待传输数据的报文协议类型,如果所述数据包中封装有IPv4协议类型,则传送至所述网关隧道接口进行解封装,将解封装之后的报文送至IPv4协议栈用以获取目标地址,然后将解封装之后的报文传送至所述目标地址对应的LAN接口,利用IPv4协议传输至相应的终端设备,完成下行数据(即从互联网上下载数据)的传输;如果所述数据包中没有封装IPv4协议类型,则将所述数据包传送至IPv6协议栈用以获取目标地址,然后将所述数据包传送至所述目标地址对应的LAN接口,利用IPv6协议传输至相应的终端设备,完成下行数据的传输。
在上述方案中,还提供了一种基于Linux的DS-Lite实现方法的CPE接入设备,包括LAN接口或/和WAN接口,其特征在于,所述设备包括:
发送/接收模块,用于利用LAN接口或/和WAN接口,根据待传输数据的报文协议类型和目标地址,向终端和/或AFTR服务器发送IPv4或IPv6协议数据包;
接入模式判断模块,用于判断是否静态配置AFTR服务器域名,并根据判断结果调用缓存中的AFTR服务器域名信息或利用所述发送/接收模块获取动态AFTR服务器域名信息;
域名解析模块,用于根据获得的AFTR服务器域名信息获得所述AFTR服务器的IPv6地址;
网关隧道接口模块,用于封装或解封装含有IPv4协议报文的IPv6协议数据包,并将封装后的IPv6协议数据包通过WAN接口传输至所述AFTR服务器或将解封装之后的IPv4协议报文通过LAN接口传输至终端设备;
数据报文类型判断模块,用于判断待传输数据的报文协议类型,并输出判断结果至所述发送/接收模块,用以建立与AFTR服务器之间的传输通道;及
自适应TCP MSS值确认模块,用于调用linux平台ip_tables.ko模块,通过下发iptables规则和限制隧道接口MTU值,来处理大包分片和自适应确定TCP MSS值。
在上述方案中,所述设备还包括:所述数据报文类型判断模块包括:
上行数据判断处理单元,用于根据用户终端网关CPE的LAN接口流入的数据报文协议类型,通过所述网关隧道接口模块将IPv4协议报文封装在IPv6协议数据包中送至所述发送/接收模块,或直接送至所述发送/接收模块利用IPv6协议发送数据;
下行数据判断处理单元,用于判断所述用户终端网关CPE的WAN接口侧流入的数据包中是否封装有IPv4协议类型的报文,根据判断结果将所述数据包送至所述网关隧道接口模块进行解封装或直接送至所述发送/接收模块。
在上述技术方案的基础上,所述设备还包括:IPv4协议栈模块,用于将报文按照IPv4协议封装或解封装后送入发送/接收模块;
在上述技术方案的基础上,所述设备还包括:IPv6协议栈模块,用于将报文按照IPv6协议封装或解封装后送入发送/接收模块或网关隧道接口模块。
本发明基于Linux软件方式实现DS-Lite功能,并通过网关设备中使用DHCPv6Option64来获取AFTR服务器地址,在IPv6WAN接口下建立4-in-6Tunnel,通过DNS Proxy在LAN侧接口实现IPv4到IPv6的DNS代理,实现IPv4DNS和IPv6DNS报文的相互转换,通过iptables规则和对接口MTU值的限制避免数据大包分片,以此方式实现网关LAN侧的IPv4数据包通过网关处理后,在IPv6-only的网络环境进行传输,降低对硬件的要求,简化了接入实现方式,提高了DS-Lite性能。此外本发明的特别之处在于,本发明以软件方式来实现DS-Lite功能,其可以在保证原有CPE接入设备在保留IPv4业务的基础上、通过植入基于Linux的DS-Lite的软件实现方法,来实现基于Linux操作系统对硬件物理层的控制,从而保证在不改变原有CPE接入设备硬件和操作系统环境的基础上实现在IPv6的环境下对IPv4业务进行访问,而这一目的的实现,完全可基于Linux的应用程序的植入来完成整个IPv4和IPv6业务实的共存,而不需要改变原有CPE接入设备的硬件和软件环境,本发明特别适用于基于Linux内核2.6.22以上的CPE设备。
附图说明
图1为本发明应用实施例的网络环境结构示意图;
图2为本发明的方法流程控制图;
图3为本发明的CPE接入设备的结构示意图。
具体实施方式
下面结合附图对本发明作出详细的说明。
如图1所示,本发明的主要应用场景为:用户终端网关(CPE)的下挂设备(比如机顶盒、PC、智能终端等)产生和使用IPv6协议网络的通讯数据,IPv4协议终端/IPv6协议终端由用户终端网关(CPE)将数据从LAN侧转发到WAN侧,用户终端网关(CPE)WAN接口侧接IPv6-only网络。
基于Linux内核2.6.22以上的CPE设备,本发明提供以下实现方式:如图2所示,一种基于Linux的DS-Lite实现方法,包括以下步骤:
步骤100、利用用户终端网关(CPE)向网关控制服务器(BNG)发起呼叫请求,在WAN接口建立与IPv6网络的连接,通过邻居发现协议获取IPv6链路地址,开启DHCPv6Client功能和RADVD功能(Linux提供的路由器广告守护进程),获取WAN接口的IPv6全球地址;
步骤101、判断是否静态配置AFTR(Address Family TranslationRouter,地址族过渡路由器单元)服务器域名,若是,则执行步骤102;否则,则执行步骤103;
步骤102、调用AFTR服务器为用户终端网关(CPE)提供AFTR服务器域名,转步骤105;
步骤103、利用用户终端网关(CPE)通过DHCPv6隧道端点选项(option64)向网关控制服务器(BNG)发出请求分配AFTR服务器域名的请求;
步骤104、接收网关控制服务器(BNG)返回的AFTR服务器域名;
步骤105、根据获取的AFTR服务器域名,对其进行IPv6DNS解析,获得AFTR服务器的IPv6地址;
步骤106、CPE通过DHCPv6请求获取IPv6DNS服务器地址,在其LAN接口实现IPv4至IPv6的DNS代理,LAN接口作为IPv4主机的DNS服务器,将LAN侧IPv4主机发送的IPv4DNS请求转换为IPv6DNS请求进行发送(A请求装换为AAAA请求),相应的收到IPv6DNS响应后,再转换为IPv4DNS响应回送给IPv4主机。
步骤107、开启DHCPv4Server功能,为连接到CPE的LAN接口上的用户终端分配私有IPv4地址,同时加载linux系统中的ip6_tunnel模块。ip6_tunnel模块为linux系统中的隧道代码,在linux内核代码目录树中有,ip6_tunnel.h,ip6_tunnel.c,tunnel6.c,编译之后生成ip6_tunnel.ko和tunne6.ko两个可加载驱动模块,使用insmod(指linux系统中的加载模块,是靠一个在kernel/module.c里定义的系统调用来实现的)加载到内核。
步骤108、根据CPE的WAN接口的IPv6全球地址和AFTR服务器的IPv6地址,建立用户终端网关(CPE)至AFTR服务器的IPv4-in-IPv6隧道;利用WAN接口的IPv6全球地址作为网关隧道接口的网络地址,添加IPv4默认路由,使IPv4数据经过隧道接口进行转发,完成宽带桥接;
步骤109、通过限制网关LAN侧接口和隧道接口的MTU值(MTU:MaxitumTransmission Unit最大传输单元),来避免传统方法建立IPv4-in-IPv6隧道导致的对分段数据的处理问题。加载Linux系统平台中的iptables模块(Linux系统平台中的iptables防火墙的守护进程,经过编译之后形成iptables.ko文件用于驱动加载),下发iptables规则,限制隧道接口MTU值,改变TCP MSS值以适应PMTU(path Maxinum Transimission Unit,即IP包数据包的总长度一定不能超过MTU,如果超过就要分段传送),这里通过限制LAN接口和隧道接口的MTU值,可以避免对IPv6数据分段的处理,完成对IPv4和IPv6大包的处理。
这里的TCP MSS值是指TCP数据包每次能够传输的最大数据分段,为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小20Bytes和TCP数据段的包头20Bytes),通讯双方会根据双方提供的MSS值得最小值确定为这次连接的最大MSS值。而一般以太网MTU都为1500,所以在以太网中,往往TCP MSS为1460。协商TCP MSS大小具体过程如下:
使用远程主机的主机名和端口号创建TCP client,为TCP网络服务提供客户端连接,TCP client发出SYN报文(包含SYN标志而不含ACK标志的报文),其中option选项填充的MSS字段一般为“MTU+IP头大小+TCP头大小”,同样TCP server服务器收到SYN报文后,会发送SYN+ACK报文(同时包含SYN标志和ACK标志的报文)应答,option选项填充的MSS字段也为“MTU+IP头大小+TCP头大小”;协商双方会比较SYN和SYN+ACK报文中MSS字段大小,选择较小的MSS作为发送TCP分片的大小。
在进入隧道接口时,由于对IPv4报文(包括IPv4分片报文)封装IPv6报头,会导致IPv6分片报文(包括在IPv4分片报文的基础上又进行IPv6的分片),这样会降低传输速率;通过限制LAN接口和隧道接口的MTU值,可以避免对IPv6数据分段的处理,完成对IPv4和IPv6大包的处理,提高DS-Lite处理能力。
步骤110、判断待传输数据的报文协议类型用以选择传输通道,如果是IPv4协议,则通过IPv4-in-IPv6隧道完成与AFTR服务器的数据包传输,如果是IPv6协议,则直接通过WAN侧IPv6接口完成与AFTR服务器的数据包传输。
在步骤110中,在判断待传输数据的报文协议类型用以选择传输通道的过程中,针对用户终端网关(CPE)LAN接口流入的数据报文,执行以下步骤118至120的过程;针对WAN接口侧流入的数据包,执行以下步骤128至130的过程。
步骤118、判断数据报文的协议类型,如果是IPv4协议,则执行步骤119;如果是IPv6协议,则执行步骤120;
步骤119、通过网关隧道接口进行对IPv4报文进行IPv6协议的封装,然后通过IPv4-in-IPv6隧道完成与AFTR服务器的上行数据传输(即从终端上传数据至互联网);
步骤120、利用IPv6协议通过WAN侧IPv6接口直接传输完成与AFTR服务器的上行数据传输。
步骤119中的封装是在一种将协议数据单元封装在一组协议头和尾中的过程。用户终端网关(CPE)WAN侧Tunnel接口将IPv4报文封装为IPv6报文,封装的方式为直接在IPv4报文上封装一个IPv6报文头(报文头的源地址为WAN侧IPv6地址,目的地址为AFTR地址);在用户终端网关(CPE)和AFTR服务器之间的IPv6网络中,该报文会使用IPv6报文头中的目的地址进行转发。
步骤128、判断是否封装有IPv4协议类型的报文以确定待传输数据的报文协议类型,若有,则执行步骤129;若无则执行步骤130;
步骤129、如果数据包中封装有IPv4协议类型,则传送至网关隧道接口进行解封装,将解封装之后的报文送至IPv4协议栈用以获取目标地址,然后将解封装之后的报文传送至所述目标地址对应的LAN接口,利用IPv4协议传输至相应的终端设备,完成下行数据(即从互联网上下载数据)的传输;
步骤130、如果数据包中没有封装IPv4协议类型,则将数据包传送至IPv6协议栈用以获取目标地址,然后将数据包传送至目标地址对应的LAN接口,利用IPv6协议传输至相应的终端设备,完成下行数据的传输。
在上述步骤128中,可以通过IPv6协议栈检查IPv6数据包中的封装协议类型,如果封装了IPv4协议,则数据包进入网关隧道接口模块进行解封装,解封装之后的报文被送到IPv4协议栈进行处理。
在上述步骤129中所指的解封装是上述封装的反过程,收到该报文数据包后进行解封装,解封装的方式为将IPv6报文头剥离,露出IPv4报文。
在上述方案中,所述用户终端网关(CPE)具有IPv4和IPv6两种协议栈。
在上述方案中,上述步骤中,在启动用户终端网关(CPE)时一并开启DHCPv6Server功能,为连接到LAN接口的用户终端分配相应的IPv6地址,用于实现IPv6协议终端与用户终端网关(CPE)之间的数据传输。
在上述方案中,WAN侧隧道接口的MTU值限制,应根据WAN侧IPv6接口的MTU值减去IPv6报头大小,来避免IPv4报文封装后产生IPv6分片报文。同时适应不支持IPv6分片报文的网络环境,提高DS-Lite传输性能,保证DS-Lite应用场景的多样性。
在上述步骤中,接入模式是指在终端IPv4的网络环境中,是如何与IPv6服务器建立连接,以此来建立IPv4流量在IPv6-only网络环境中的通道。实现了静态接入方式、动态接入方式两种接入方式来建立隧道连接。良好的接入方式,可以简化CPE(CPE是指物理上位于用户侧的硬件,如:服务器;工作站;通信硬件(CSU/DSUs,调制解调器))的实现模式,同时提高AFTR服务器(Address Family Transition Router地址族转换路由器)的高可用性。静态接入方式可以提高接入效率。动态接入方式,可以提高AFTR服务器的高可用性,隧道的端点可以位于供应商网络中的任务位置,方便AFTR服务器的横向扩展。
基于上述实现方法,将其构建的软件应用程序植入于基于Linux内核2.6.22以上的CPE设备上即可提供一种基于Linux的DS-Lite实现方法的CPE接入设备,如图3所示,CPE接入设备具有LAN接口或/和WAN接口,具体包括:
发送/接收模块,用于利用LAN接口或/和WAN接口,根据待传输数据的报文协议类型和目标地址,向终端和/或AFTR服务器发送IPv4或IPv6协议数据包;
接入模式判断模块,用于判断是否静态配置AFTR服务器域名,并根据判断结果调用缓存中的AFTR服务器域名信息或利用所述发送/接收模块获取动态AFTR服务器域名信息;
域名解析模块,用于根据获得的AFTR服务器域名信息获得所述AFTR服务器的IPv6地址;
网关隧道接口模块,用于封装或解封装含有IPv4协议报文的IPv6协议数据包,并将封装后的IPv6协议数据包通过WAN接口传输至所述AFTR服务器或将解封装之后的IPv4协议报文通过LAN接口传输至终端设备;
数据报文类型判断模块,用于判断待传输数据的报文协议类型,并输出判断结果至所述发送/接收模块,用以建立与AFTR服务器之间的传输通道;和,
自适应TCP MSS值确认模块,用于调用linux平台ip_tables.ko模块,通过下发iptables规则和限制隧道接口MTU值,来处理大包分片和自适应确定TCP MSS值。
在上述方案中,数据报文类型判断模块包括上行数据判断处理单元和下行数据判断处理单元。
上行数据判断处理单元,用于根据用户终端网关(CPE)LAN接口流入的数据报文协议类型,通过所述网关隧道接口模块将IPv4协议报文封装在IPv6协议数据包中送至所述发送/接收模块,或直接送至所述发送/接收模块利用IPv6协议发送数据;
下行数据判断处理单元,用于判断所述用户终端网关(CPE)WAN接口侧流入的数据包中是否封装有IPv4协议类型的报文,根据判断结果将所述数据包送至所述网关隧道接口模块进行解封装或直接送至所述发送/接收模块。
在上述技术方案的基础上,IPv4协议栈模块,用于将报文按照IPv4协议封装或解封装后送入发送/接收模块;
在上述技术方案的基础上,IPv6协议栈模块,用于将报文按照IPv6协议封装或解封装后送入发送/接收模块或网关隧道接口模块。
总之,在Linux操作系统平台上(大部分的CPE接入设备均采用的是Linux操作系统)构建一种可方便植入的应用软件系统,可以随意植入只要满足其硬件和操作系统需求的任意一台CPE设备之上,从而实现DS-Lite功能。在保留终端IPv4业务的基础上,实现IPv4业务流量在IPv6网络中传输,从而实现在IPv6的环境下,对IPv4业务进行访问。
基于如图1所示的网络架构图,单IPv4协议终端或单IPv6协议终端与IPv6协议网络业务服务器或IPv4协议网络业务服务器交互访问时,存在IPv4和IPv6协议之间的转换,可以通过在CPE设备上构建一个将数据包在IPv4协议栈和IPv6协议栈之间传输的功能单元,用以完善上述DS-Lite的实现方法,比如在单IPv4协议终端访问IPv6协议网络业务服务器时,可以通过在CPE设备增加一个协议转换单元,用以在上述步骤130中增加一个步骤:将所述数据包传送至IPv6协议栈进行解析,获得目标地址和报文信息,然后送至IPv4协议栈将所述目标地址和报文信息按照IPv4协议进行封装,再通过LAN接口传输给目标地址对应的单IPv4协议终端。这样做的目的在于实现单IPv4协议终端通过单IPv6协议网络访问单IPv4协议业务服务器的过程,整体网络架构简单,易操作。
本发明不局限于上述最佳实施方式,任何人应该得知在本发明的启示下作出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内。
Claims (10)
1.一种基于Linux的DS-Lite实现方法,其特征在于,包括以下步骤:
利用用户终端网关CPE向网关控制服务器BNG发起呼叫请求,在所述用户终端网关的WAN接口建立与IPv6网络的连接,并获取WAN接口的IPv6全球地址;
判断是否静态配置AFTR服务器域名,若是,则调用AFTR服务器为用户终端网关提供AFTR服务器域名;若否,则利用用户终端网关通过DHCPv6隧道端点选项向网关控制服务器发出请求分配AFTR服务器域名的请求,接收网关控制服务器返回的AFTR服务器域名;
根据所述AFTR服务器域名进行解析,获得所述AFTR服务器的IPv6地址;
CPE通过DHCPv6获取IPv6DNS服务器地址,在其LAN接口实现IPv4至IPv6的DNS代理,LAN接口作为IPv4主机的DNS服务器,将LAN侧V4主机发送的IPv4DNS请求转换为IPv6DNS请求进行发送,收到IPv6DNS响应后,再转换为IPv4DNS响应回送给V4主机;
开启DHCPv4Server功能,为连接到LAN接口的用户终端分配私有IPv4地址,同时加载linux系统中的ip6_tunnel模块;
根据所述WAN接口的IPv6全球地址和所述AFTR服务器的IPv6地址,建立用户终端网关至所述AFTR服务器的IPv4-in-IPv6隧道,构建网关隧道接口,利用所述WAN接口的IPv6全球地址作为网关隧道接口的网络地址;完成宽带桥接;
调用linux平台iptables模块,通过下发iptables规则和限制隧道接口MTU值,来处理大包分片和自适应确定TCP MSS值;
判断待传输数据的报文协议类型用以选择传输通道,如果是IPv4协议,则通过IPv4-in-IPv6隧道完成与所述AFTR服务器的数据包传输,如果是IPv6协议,则直接通过WAN接口完成与所述AFTR服务器的数据包传输。
2.根据权利要求1所述的方法,其特征在于,所述用户终端网关具有IPv4和IPv6两种协议栈。
3.根据权利要求1所述的方法,其特征在于,在启动用户终端网关时一并开启DHCPv6Server功能,为连接到LAN接口的用户终端分配相应的IPv6地址,用于实现IPv6协议终端与用户终端网关之间的数据传输。
4.根据权利要求1所述的方法,其特征在于,所述调用Linux平台下iptables模块,用于协商TCPMSS值的自适应过程如下:
使用远程主机的主机名和端口号创建TCP client,为TCP网络服务提供客户端连接,TCP client发出SYN报文,其中option选项填充的MSS字段一般为MTU+IP头大小+TCP头大小,同样TCP server服务器收到SYN报文后,会发送SYN+ACK报文应答,option选项填充的MSS字段也为MTU+IP头大小+TCP头大小;协商双方会比较SYN和SYN+ACK报文中MSS字段大小,选择较小的MSS作为发送TCP分片的大小。
5.根据权利要求2所述的方法,其特征在于,在所述判断待传输数据的报文协议类型用以选择传输通道的过程中,针对用户终端网关LAN接口流入的数据报文,判断所述数据报文的协议类型,如果是IPv4协议,则通过所述网关隧道接口进行IPv6协议的封装,然后通过IPv4-in-IPv6隧道完成与所述AFTR服务器的上行数据传输;如果是IPv6协议,则利用IPv6协议通过所述WAN接口直接传输完成与所述AFTR服务器的上行数据传输。
6.根据权利要求2所述的方法,其特征在于,在所述判断待传输数据的报文协议类型用以选择传输通道的过程中,针对WAN接口侧流入的数据包,判断是否封装有IPv4协议类型的报文以确定待传输数据的报文协议类型,如果所述数据包中封装有IPv4协议类型,则传送至所述网关隧道接口进行解封装,将解封装之后的报文送至IPv4协议栈用以获取目标地址,然后将解封装之后的报文传送至所述目标地址对应的LAN接口,利用IPv4协议传输至相应的终端设备,完成下行数据的传输;如果所述数据包中没有封装IPv4协议类型,则将所述数据包传送至IPv6协议栈用以获取目标地址,然后将所述数据包传送至所述目标地址对应的LAN接口,利用IPv6协议传输至相应的终端设备,完成下行数据的传输。
7.一种基于Linux的DS-Lite实现方法的CPE接入设备,具有LAN接口或/和WAN接口,其特征在于,所述CPE接入设备包括:
发送/接收模块,用于利用LAN接口或/和WAN接口,根据待传输数据的报文协议类型和目标地址,向终端和/或AFTR服务器发送IPv4或IPv6协议数据包;
接入模式判断模块,用于判断是否静态配置AFTR服务器域名,并根据判断结果调用缓存中的AFTR服务器域名信息或利用所述发送/接收模块获取动态AFTR服务器域名信息;
域名解析模块,用于根据获得的AFTR服务器域名信息获得所述AFTR服务器的IPv6地址;
网关隧道接口模块,用于封装或解封装含有IPv4协议报文的IPv6协议数据包,并将封装后的IPv6协议数据包通过WAN接口传输至所述AFTR服务器或将解封装之后的IPv4协议报文通过LAN接口传输至终端设备;
数据报文类型判断模块,用于判断待传输数据的报文协议类型,并输出判断结果至所述发送/接收模块,用以建立与AFTR服务器之间的传输通道;及
自适应TCP MSS值确认模块,用于调用linux平台iptables模块,通过下发iptables规则和限制隧道接口MTU值,来处理大包分片和自适应确定TCP MSS值。
8.根据权利要求7所述的CPE接入设备,其特征在于,所述数据报文类型判断模块包括:
上行数据判断处理单元,用于根据用户终端网关CPE的LAN接口流入的数据报文协议类型,通过所述网关隧道接口模块将IPv4协议报文封装在IPv6协议数据包中送至所述发送/接收模块,或直接送至所述发送/接收模块利用IPv6协议发送数据;
下行数据判断处理单元,用于判断所述用户终端网关CPE的WAN接口侧流入的数据包中是否封装有IPv4协议类型的报文,根据判断结果将所述数据包送至所述网关隧道接口模块进行解封装或直接送至所述发送/接收模块。
9.根据权利要求7所述的CPE接入设备,其特征在于,还包括:IPv4协议栈模块,用于将报文按照IPv4协议封装或解封装后送入发送/接收模块。
10.根据权利要求7所述的CPE接入设备,其特征在于,还包括:IPv6协议栈模块,用于将报文按照IPv6协议封装或解封装后送入发送/接收模块或网关隧道接口模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310162911.XA CN103236964B (zh) | 2013-05-07 | 2013-05-07 | 基于Linux的DS-Lite实现方法及其CPE接入设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310162911.XA CN103236964B (zh) | 2013-05-07 | 2013-05-07 | 基于Linux的DS-Lite实现方法及其CPE接入设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103236964A CN103236964A (zh) | 2013-08-07 |
CN103236964B true CN103236964B (zh) | 2015-09-16 |
Family
ID=48884982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310162911.XA Active CN103236964B (zh) | 2013-05-07 | 2013-05-07 | 基于Linux的DS-Lite实现方法及其CPE接入设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103236964B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105453488B (zh) | 2014-04-22 | 2019-01-18 | 柏思科技有限公司 | 用于处理dns请求的方法和系统 |
CN105812499B (zh) * | 2014-12-31 | 2018-12-28 | 中国电信股份有限公司 | 通信方法和通信系统及虚拟客户终端设备 |
CN109005251A (zh) * | 2018-08-01 | 2018-12-14 | 深圳市天威视讯股份有限公司 | 用于双栈机顶盒的IPv6地址获取方法和系统 |
CN111262721B (zh) | 2018-11-30 | 2021-06-15 | 贵州白山云科技股份有限公司 | 虚拟内网加速方法、系统、配置方法、装置、设备、介质 |
CN112583835B (zh) * | 2020-12-14 | 2023-01-20 | 深圳市共进电子股份有限公司 | 匹配网口数据的方法、装置、路由器和可读存储介质 |
CN113301605B (zh) * | 2021-05-18 | 2023-03-24 | 成都欧珀通信科技有限公司 | 消息传输方法、系统及相关装置 |
CN115460030B (zh) * | 2022-08-03 | 2024-01-26 | 深圳市华迅光通信有限公司 | 融合网关及其数据处理方法、设备及可读存储介质 |
CN116016436B (zh) * | 2022-12-07 | 2024-09-27 | 天翼云科技有限公司 | 一种基于云解析的多租户网络构建方法及装置 |
CN117319317B (zh) * | 2023-10-16 | 2024-08-06 | 广州通则康威科技股份有限公司 | 一种调整cpe下挂设备mtu的方法、装置及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102131233A (zh) * | 2010-01-18 | 2011-07-20 | 中兴通讯股份有限公司 | 基于ds-lite的数据包发送方法及装置 |
CN102170395A (zh) * | 2011-04-21 | 2011-08-31 | 中兴通讯股份有限公司 | 数据的传输方法及网络设备 |
CN102377628A (zh) * | 2010-08-12 | 2012-03-14 | 杭州华三通信技术有限公司 | 建立DS-Lite隧道的方法和DS-Lite CGN |
CN102404416A (zh) * | 2010-09-16 | 2012-04-04 | 中兴通讯股份有限公司 | 一种获取dns的方法和隧道网关设备 |
CN102572008A (zh) * | 2010-12-08 | 2012-07-11 | 中国电信股份有限公司 | 通信业务处理方法与系统、网关设备 |
CN102938736A (zh) * | 2012-11-20 | 2013-02-20 | 杭州迪普科技有限公司 | 一种实现IPv4报文穿越IPv6网络的方法和设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8817816B2 (en) * | 2011-02-28 | 2014-08-26 | Futurwei Technologies, Inc. | Multicast support for dual stack-lite and internet protocol version six rapid deployment on internet protocol version four infrastructures |
-
2013
- 2013-05-07 CN CN201310162911.XA patent/CN103236964B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102131233A (zh) * | 2010-01-18 | 2011-07-20 | 中兴通讯股份有限公司 | 基于ds-lite的数据包发送方法及装置 |
CN102377628A (zh) * | 2010-08-12 | 2012-03-14 | 杭州华三通信技术有限公司 | 建立DS-Lite隧道的方法和DS-Lite CGN |
CN102404416A (zh) * | 2010-09-16 | 2012-04-04 | 中兴通讯股份有限公司 | 一种获取dns的方法和隧道网关设备 |
CN102572008A (zh) * | 2010-12-08 | 2012-07-11 | 中国电信股份有限公司 | 通信业务处理方法与系统、网关设备 |
CN102170395A (zh) * | 2011-04-21 | 2011-08-31 | 中兴通讯股份有限公司 | 数据的传输方法及网络设备 |
CN102938736A (zh) * | 2012-11-20 | 2013-02-20 | 杭州迪普科技有限公司 | 一种实现IPv4报文穿越IPv6网络的方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN103236964A (zh) | 2013-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103236964B (zh) | 基于Linux的DS-Lite实现方法及其CPE接入设备 | |
CN103441996B (zh) | 并发传输文件的方法及系统 | |
CN101427526B (zh) | 用于自动地经IPv6网络互连IPv4网络的系统和方法 | |
CN112671628B (zh) | 业务服务提供方法及系统 | |
CN101447935B (zh) | 数据包转发方法、系统及设备 | |
US20040107287A1 (en) | Method and apparatus for communicating on a communication network | |
US8432877B2 (en) | Routing control method and system | |
CN102148767A (zh) | 一种基于nat的数据路由方法及其装置 | |
JP2013535905A (ja) | ネットワーク通信の方法および機器 | |
CN112671938B (zh) | 业务服务提供方法及系统、远端加速网关 | |
JP2009296405A (ja) | 通信システム | |
CN102546362A (zh) | 报文处理方法、系统和用户前端设备 | |
CN111788812B (zh) | 用于分组数据转换的技术 | |
GB2412272A (en) | Communication between internal networks through gateways over an external network | |
JP6386166B2 (ja) | IPv4とIPv6との間の翻訳方法及び装置 | |
Punithavathani et al. | IPv4/IPv6 transition mechanisms | |
KR20050094035A (ko) | 네트워크 어드레스 변환 기반의 이동성 관리 | |
Jain et al. | Performance Comparison Between Different Tunneling Techniques Using Different Routing Protocols | |
CN105516382A (zh) | Ipv4网络与ipv6物联网节点的通信方法及系统 | |
Mellor et al. | Bi-directional mapping system as a new IPv4/IPv6 translation mechanism | |
US9787578B2 (en) | Systems and methods of IPV6 mapping | |
Huang et al. | Tunneling IPv6 through NAT with Teredo mechanism | |
Isa et al. | Design and Comparison Migration Between IPv4 and IPv6 Transition Techniques | |
Raste et al. | Design and implementation scheme for deploying IPv4 over IPv6 tunnel | |
CN114726824B (zh) | 无线宽带路由器、报文处理和域名解析方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |