本发明涉及计算机通信技术领域,具体涉及一种基于域名的报文传输方法、报文转发控制方法及系统。
背景技术:
网域名称系统(dns,domainnamesystem)是一个分布式的客户机/服务器网络数据库,tcp/ip应用程序使用它来完成主机名称和ip地址之间的映射,提供电子邮件路由信息、服务命名和其他服务。
随着宽带接入的演进,宽带上行链接方式和种类越来越复杂化,域名请求缺乏可控制性,无法精确控制域名解析的上行通道和解析方式等。特别是在目前dns被设计为全球统一数据库的背景下,家庭网关设备实现多wan链接时,如果某条wan出现私网dns数据库,且无法正确控制域名解析的上行wan通道,将会导致非常严重的网络通信问题。
技术实现要素:
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于域名的报文传输方法、报文转发控制方法及系统,实现了协议的透明传输,并提供了运载其他辅助协议的能力和可行性。
为达到以上目的,本发明采取的技术方案是:一种基于域名的报文传输方法,包括以下步骤:
选定某种协议报文,设置该协议的传输边界;
建立符合域名规范的编码映射机制;
将协议报文根据编码映射机制映射成协议报文字符串;
将生成的协议报文字符串,附加到被请求的原始域名中生成新的域名;
采用新的域名,通过域名接口发起dns请求;
在该协议约束的传输边界内,将收到的dns报文逆向解析和反编码为原始请求域名和附加的原始协议报文。
在上述技术方案的基础上,所述方法还包括以下步骤:采用新的域名,通过域名接口发起dns请求之前,根据需求自定义的域名请求接口或修改系统原始的域名请求接口。
本发明还提供一种基于域名的报文转发控制方法,包括以下步骤:
定义域名转发控制协议,设置该协议的上游传输边界为dns代理;
建立符合域名规范的编码映射机制;
将域名转发控制协议报文根据编码映射机制映射成协议报文字符串;
将生成的协议报文字符串,附加到被请求的原始域名中生成新的域名;
采用新的域名,通过域名接口发起dns请求;
dns代理接收到dns请求报文,解析报文并反编码为原始域名和附加的域名转发控制协议报文,根据域名转发控制协议报文执行原始域名的转发,反馈域名解析结果至请求进程。
在上述技术方案的基础上,将生成的协议报文字符串,附加到被请求的原始域名中生成新的域名,具体包括以下步骤:
将生成的协议报文字符串作为原始域名的前缀、中缀或后缀,或与原始域名进行组合,或与原始域名组合后重新编码,生成新的域名。
在上述技术方案的基础上,所述域名转发控制协议包括通道指示字段,转发优先级字段和转发模式字段。
在上述技术方案的基础上,dns代理根据域名转发控制协议报文执行原始域名的转发,具体包括以下步骤:
解析域名转发控制协议报文的通道指示字段,选择并搜集目标dns服务器集合;
解析域名转发控制协议报文的转发模式字段,如果为广播方式,则将dns请求转发到所有服务器,等待成功解析第一个报文;
解析域名转发控制协议报文的转发模式字段,如果为按顺序转发,则解析转发优先级字段,在所述目标dns服务器集合中按照优先级高低顺序逐步转发dns请求,直到成功解析报文或者全部解析失败。
在上述技术方案的基础上,所述通道指示字段用于表示通道类型和通道值,所述通道类型包括对应wan链接的dns服务器通道、目标dns服务器ip的通道和资源重定向通道。
本发明还提供一种基于域名的报文转发控制系统,包括:
配置模块,其用于:定义域名转发控制协议,设置该协议的上游传输边界为dns代理,建立符合域名规范的编码映射机制;
编码映射模块,其用于:将域名转发控制协议报文根据编码映射机制映射成协议报文字符串;将生成的协议报文字符串,附加到被请求的原始域名中生成新的域名;
发送模块,其用于:采用新的域名,通过域名接口发起dns请求;
传输模块,其用于:传输dns请求报文至接收模块;
接收模块,其用于:接收dns请求报文;
解析模块,其用于:解析dns请求报文,反编码为原始域名和附加的域名转发控制协议报文;
转发模块,其用于:根据域名转发控制协议报文执行原始域名的转发,反馈域名解析结果至请求进程。
在上述技术方案的基础上,所述编码映射模块具体用于:
将生成的协议报文字符串作为原始域名的前缀、中缀或后缀,或与原始域名进行组合,或与原始域名组合后重新编码,生成新的域名。
在上述技术方案的基础上,所述域名转发控制协议包括通道指示字段,转发优先级字段和转发模式字段。
在上述技术方案的基础上,所述转发模块具体用于:
解析域名转发控制协议报文的通道指示字段,选择并搜集目标dns服务器集合;
解析域名转发控制协议报文的转发模式字段,如果为广播方式,则将dns请求转发到所有服务器,等待成功解析第一个报文;
解析域名转发控制协议报文的转发模式字段,如果为按顺序转发,则解析转发优先级字段,在所述目标dns服务器集合中按照优先级高低顺序逐步转发dns请求,直到成功解析报文或者全部解析失败。
在上述技术方案的基础上,所述通道指示字段用于表示通道类型和通道值,所述通道类型包括对应wan链接的dns服务器通道、目标dns服务器ip的通道和资源重定向通道。
与现有技术相比,本发明的优点在于:
本发明通过将协议报文编码并映射到请求域名的方式,在不破坏dns协议规范和系统域名接口唯一性的情况下,实现了协议的透明传输,并提供了运载其他辅助协议的能力和可行性。
本发明通过在域名转发控制协议中定义转发通道、转发优先级和转发方式等字段,实现了对请求域名更加精确的转发流程控制,弥补了现有dns协议以及系统域名接口在转发控制方面的不足之处,同时避免了破坏dns协议的规范性和系统域名接口的唯一性问题。
附图说明
图1为本发明实施例的基于域名的协议报文传输方法的流程示意图;
图2为本发明实施例的基于域名的报文转发控制方法的流程示意图;
图3为本发明实施例的基于域名的报文转发控制系统的转发控制系统的框图。
具体实施方式
以下结合附图对本发明的实施例作进一步详细说明。
本发明实施例提供一种基于域名的协议报文传输方法,参见图1所示,该协议报文的传输方法可以包括如下步骤:
在步骤101中,确定某种协议报文,以及该协议的传输边界。
根据应用场景选择或者设计一个合适的协议报文,并确定该报文的使用场景以及传输有效范围。并且明确报文的发送模块,传输模块、接收模块和解析模块等均在传输边界之内。
在步骤102中,建立符合网域名称系统字符规范的编码映射方法。
由于上述协议报文需要附加到域名中,并且在网域名称系统中正确传输,所以必须满足域名的编码要求。建立上述协议报文数据到由26个字母(不区分大小写)、0到9的数字以及“-”组成的域名字符集的映射机制,实现编码的转换。
在步骤103中,将协议报文按编码映射表映射成符合域名规范的协议报文字符串(记作t)。
在步骤104中,将所生成的协议报文字符串t,附加到被请求的原始域名(记作name.ori.com)中生成新的域名。
该步骤的通用方法包括但是不限制于,将协议报文字符串作为原始域名的前缀组合,例如t.name.ori.com;中缀组合,例如name.t.ori.com和name.ori.t.com;后缀组合,例如name.ori.com.t;以及上述组合后重新编码映射生成新域名的方法。该过程的一般性方法可以理解为:输入协议报文和原始请求域名,输出新的满足网域名称系统规范的域名,并且保证该过程可逆。
在步骤105中,通过域名接口请求新的域名。
通过系统域名接口或者自定义的域名接口,请求新的携带上述协议报文的域名。
在步骤106中,协议报文通过域名的形式在dns报文中传输,在该协议约束的传输边界内,将收到的dns报文逆向解析和反编码为原始请求域名及相关信息,和附加的原始协议报文。
本发明实施例还提供一种基于域名的报文转发控制方法的域名转发控制协议数据模型。
表1基于域名的报文转发控制方法的域名转发控制协议数据模型表
参见表1所示,该协议报文的内容可以包括如下内容。
version字段占用4bit,描述了该协议的版本信息,通过不同的版本信息方便协议内容的变更和维护,提供了协议的可扩展性。
length字段占用4bit,描述了该协议包括version字段的总长度。
forwardmode字段(即转发模式字段)占用2bit,描述了控制域名转发的方法,该转发方法可以包括但不限制于如下模式:当该值为0x0时,严格按照dns服务器集中服务器的顺序转发;当该值为0x01时,每次广播到dns服务器集所有的服务器。
forwardpriority字段(即转发优先级字段)占用2bit,描述了在forwardmode字段为顺序转发的情况,如何选择目标dns服务器的优先级。该优先级可以包括但不限制于如下优先级类型:
forwardpriority为0x0表示ipv4地址优先
forwardpriority为0x01表示ipv6地址优先
forwardpriority为0x02表示根据报文发送地址类型确认优先级
forwardpriority为0x03表示根据报文请求集类型确认优先级
channeltype字段占用4bit,描述了域名转发的通道选择,即通道类型。该通道方式可以包括但不限制于如下通道类型:当该值为0x0时,表示对应wan链接的dns服务器通道;当该值为0x01时,表示目标dns服务器ip的通道;当该值为0x02时,表示资源重定向通道,资源重定向通道可以重定向协议报文较大的极端情况,通过将相关内容重定向到其他地方。
data字段占用32bit,描述了channeltype对应的内容,即转发通道类型对应的内容,即通道值,需要和channeltype配合使用。当通道类型为0x0时,表示wan通道,data为描述wan通道的表示信息,例如网关创建wan链接的序号;当通道类型为0x01时,表示ip类型,data为目标dns服务器的ip地址信息;当通道类型为0x02时,表示资源重定向,data描述了目标资源的重新获取点,该获取点可以是某个资源服务器,资源进程或者资源文件等。
上述协议数据模型作为一个实例而并非以限制的方式,其他字段长度及其他字段类型也行。
本发明实施例还提供一种基于域名的报文转发控制方法,参见图2所示,该转发控制方法可以包括如下步骤:
在步骤301中,自定义了表1中的域名转发控制协议,并约束该协议上游传输边界为家庭网关dns代理模块。
在步骤302中,配置系统域名接口地址为环回地址。
修改系统dns服务器地址为环回地址127.0.0.1和::1,同时支持ipv4和ipv6的dns报文。
在步骤303中,家庭网关dns代理模块在环回地址上监听dns请求报文。
dns代理模块监听系统环回地址,可以实现托管并拦截所有从家庭网关系统本地进程请求的dns报文。在该实施例中家庭网关dns代理可同时作为接收模块405、解析模块406和转发模块407。
在步骤304中,建立符合网域名称系统域名字符规范的编码映射方法。
由于上述协议报文需要附加到域名中,并且在网域名称系统中正确传输,所以必须满足域名的编码要求。建立上述协议报文数据到由26个字母(不区分大小写)、0到9的数字以及“-”组成的域名字符集的映射机制,实现编码的转换。
在步骤305中,获取域名转发方案。
家庭网关的本地进程根据进程类型,从家庭网关预设配置文件中获取域名转发控制方案,并编码为上述的自定义域名转发控制协议。例如一种多wan情形的家庭网关,建立如下三条wan链接类型和对应的wan标识序号:tr069wan序号为0x01、internetwan序号为0x02以及voipwan对应序号为0x03。例如tr069进程选择tr069wan链接,channeltype设置为0x0,data设置为0x01;ping选择internetwan链接,channeltype设置为0x0,data设置为0x02;voip进程选择voipwan链接,channeltype设置为0x0,data设置为0x03。各个不同的进程在选择相关wan链接的dns服务器进行dns解析时,可以明确指出channeltype为wan类型,并标注data字段为wan的绑定标识信息。
在步骤306中,转换域名转发控制协议报文到符合域名规范的协议报文字符串。
通过步骤304中描述的映射方法,将步骤305中生成的域名转发控制协议报文,映射为符合域名规范的协议报文字符串。
在步骤307中,将原始请求域名和协议报文字符串为新的域名。
结合步骤306中生成的符合域名规范的域名转发控制协议和本地进程作为dns客户端欲请求的原始报文,生成新的符合域名规范的新域名。该步骤的通用方法包括但是不限制于,将协议报文字符串作为原始域名的前缀、中缀、后缀和相关组合,以及组合后重新编码映射生成新域名的方法。该步骤的一般性方法可以理解为:输入协议报文和原始请求域名,输出新的满足网域名称系统规范的域名,并且保证该过程可逆。
在步骤308中,使用携带域名转发控制协议的新域名,通过系统域名接口发起域名解析请求。
本地进程使用步骤307中生成的携带域名转发控制协议的新域名,通过系统域名接口发起域名解析请求。由于系统域名服务器预先被配置为本地环回地址,确保了所有本地域名请求的正常发送和接收。
在步骤309中,dns代理监听并解析域名请求报文。
dns代理中的解析模块,解析并反编码为原始请求域名和附加的原始域名转发协议报文。该步骤中所示的解析模块,实际为步骤306和步骤307的逆向过程,从而实现了域名转发控制协议从系统接口到dns代理的透明传输。
在步骤310中,dns代理根据域名转发控制协议实施原始域名的转发请求。
dns代理中的转发模块解析转发通道channeltype字段,选择并根据data指示字段搜集目标域名的转发dns服务器集合;
dns代理中的转发模块解析服务器的转发方式forwardmode字段,如果forwardmode等于0x01,广播方式,则将dns请求直接转发到所有服务器,然后等待第一个成功解析报文;
dns代理中的转发模块解析服务器的转发方式forwardmode字段,如果forwardmode等于0x0,则按顺序转发,并继续解析转发优先级字段,在上述dns服务器集合中按照优先级高低顺序逐步转发dns请求,直到成功解析报文或者全部解析失败;
在步骤311中,dns代理中的转发模块发送域名解析结果到请求进程。
本发明实施例还提供一种基于域名的报文转发控制系统,如图3所示,该基于域名的报文转发控制系统可以包括但不限于:配置模块401、编码映射模块402、发送模块403、传输模块404、接收模块405、解析模块406和转发模块407。
配置模块401,其用于:定义域名转发控制协议,设置该协议的上游传输边界为dns代理,建立符合域名规范的编码映射机制;
编码映射模块402,其用于:将域名转发控制协议报文根据编码映射机制映射成协议报文字符串;将生成的协议报文字符串,附加到被请求的原始域名中生成新的域名;
发送模块403,其用于:采用新的域名,通过域名接口发起dns请求;
传输模块404,其用于:传输dns请求报文至接收模块;
接收模块405,其用于:接收dns请求报文;
解析模块406,其用于:解析dns请求报文,反编码为原始域名和附加的域名转发控制协议报文;
转发模块407,其用于:根据域名转发控制协议报文执行原始域名的转发,反馈域名解析结果至请求进程。
其中,所述编码映射模块具体用于:
将生成的协议报文字符串作为原始域名的前缀、中缀或后缀,或与原始域名进行组合,或与原始域名组合后重新编码,生成新的域名。
优选的,所述域名转发控制协议包括通道指示字段,转发优先级字段和转发模式字段。
优选的,所述转发模块具体用于:
解析域名转发控制协议报文的通道指示字段,选择并搜集目标dns服务器集合;
解析域名转发控制协议报文的转发模式字段,如果为广播方式,则将dns请求转发到所有服务器,等待成功解析第一个报文;
解析域名转发控制协议报文的转发模式字段,如果为按顺序转发,则解析转发优先级字段,在所述目标dns服务器集合中按照优先级高低顺序逐步转发dns请求,直到成功解析报文或者全部解析失败。反馈域名解析结果至请求进程。
优选的,所述通道指示字段用于表示通道类型和通道值,所述通道类型包括对应wan链接的dns服务器通道、目标dns服务器ip的通道和资源重定向通道。
本发明实施例通过将协议报文编码并映射到请求域名的方式,在不破坏dns协议规范和系统域名接口唯一性的情况下,实现了协议的透明传输。并采用自定义的域名转发控制协议,实现了对请求域名更加精确的转发流程控制。弥补了现有dns协议以及系统域名接口在转发控制方面的不足之处,同时避免了破坏dns协议的规范性和系统域名接口的唯一性问题。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
1.一种基于域名的报文传输方法,其特征在于,包括以下步骤:
选定某种协议报文,设置该协议的传输边界;
建立符合域名规范的编码映射机制;
将协议报文根据编码映射机制映射成协议报文字符串;
将生成的协议报文字符串,附加到被请求的原始域名中生成新的域名;
采用新的域名,通过域名接口发起dns请求;
在该协议约束的传输边界内,将收到的dns报文逆向解析和反编码为原始请求域名和附加的原始协议报文。
2.如权利要求1所述的方法,其特征在于,所述方法还包括以下步骤:采用新的域名,通过域名接口发起dns请求之前,根据需求自定义的域名请求接口或修改系统原始的域名请求接口。
3.一种基于域名的报文转发控制方法,其特征在于,包括以下步骤:
定义域名转发控制协议,设置该协议的上游传输边界为dns代理;
建立符合域名规范的编码映射机制;
将域名转发控制协议报文根据编码映射机制映射成协议报文字符串;
将生成的协议报文字符串,附加到被请求的原始域名中生成新的域名;
采用新的域名,通过域名接口发起dns请求;
dns代理接收到dns请求报文,解析报文并反编码为原始域名和附加的域名转发控制协议报文,根据域名转发控制协议报文执行原始域名的转发,反馈域名解析结果至请求进程。
4.如权利要求3所述的方法,其特征在于,将生成的协议报文字符串,附加到被请求的原始域名中生成新的域名,具体包括以下步骤:
将生成的协议报文字符串作为原始域名的前缀、中缀或后缀,或与原始域名进行组合,或与原始域名组合后重新编码,生成新的域名。
5.如权利要求3所述的方法,其特征在于,所述域名转发控制协议包括通道指示字段,转发优先级字段和转发模式字段。
6.如权利要求5所述的方法,其特征在于,dns代理根据域名转发控制协议报文执行原始域名的转发,具体包括以下步骤:
解析域名转发控制协议报文的通道指示字段,选择并搜集目标dns服务器集合;
解析域名转发控制协议报文的转发模式字段,如果为广播方式,则将dns请求转发到所有服务器,等待成功解析第一个报文;
解析域名转发控制协议报文的转发模式字段,如果为按顺序转发,则解析转发优先级字段,在所述目标dns服务器集合中按照优先级高低顺序逐步转发dns请求,直到成功解析报文或者全部解析失败。
7.如权利要求5所述的方法,其特征在于,所述通道指示字段用于表示通道类型和通道值,所述通道类型包括对应wan链接的dns服务器通道、目标dns服务器ip的通道和资源重定向通道。
8.一种基于域名的报文转发控制系统,其特征在于,包括:
配置模块,其用于:定义域名转发控制协议,设置该协议的上游传输边界为dns代理,建立符合域名规范的编码映射机制;
编码映射模块,其用于:将域名转发控制协议报文根据编码映射机制映射成协议报文字符串;将生成的协议报文字符串,附加到被请求的原始域名中生成新的域名;
发送模块,其用于:采用新的域名,通过域名接口发起dns请求;
传输模块,其用于:传输dns请求报文至接收模块;
接收模块,其用于:接收dns请求报文;
解析模块,其用于:解析dns请求报文,反编码为原始域名和附加的域名转发控制协议报文;
转发模块,其用于:根据域名转发控制协议报文执行原始域名的转发,反馈域名解析结果至请求进程。
9.如权利要求8所述的系统,其特征在于,所述编码映射模块具体用于:
将生成的协议报文字符串作为原始域名的前缀、中缀或后缀,或与原始域名进行组合,或与原始域名组合后重新编码,生成新的域名。
10.如权利要求8所述的系统,其特征在于,所述域名转发控制协议包括通道指示字段,转发优先级字段和转发模式字段。
11.如权利要求10所述的系统,其特征在于,所述转发模块具体用于:
解析域名转发控制协议报文的通道指示字段,选择并搜集目标dns服务器集合;
解析域名转发控制协议报文的转发模式字段,如果为广播方式,则将dns请求转发到所有服务器,等待成功解析第一个报文;
解析域名转发控制协议报文的转发模式字段,如果为按顺序转发,则解析转发优先级字段,在所述目标dns服务器集合中按照优先级高低顺序逐步转发dns请求,直到成功解析报文或者全部解析失败。
12.如权利要求10所述的系统,其特征在于,所述通道指示字段用于表示通道类型和通道值,所述通道类型包括对应wan链接的dns服务器通道、目标dns服务器ip的通道和资源重定向通道。
技术总结