针对多WAN口网关设备的域名解析方法与流程

文档序号:15752131发布日期:2018-10-26 17:58阅读:1146来源:国知局
针对多WAN口网关设备的域名解析方法与流程

本发明涉及网络通信,尤其是涉及一种针对多WAN口网关设备的域名解析方法。



背景技术:

随着通信及网络的普及,在宽带终端接入产品中,由于需要支持多种业务数据,如语音、视频等数据。不同的业务流来自不同的LAN(Local Area Net,局域网)口,在各项业务中涉及的域名解析,首先是在本地解析,若未解析成功,则还可能通过WAN(Wide Area Net,广域网)口向外部的服务器发送解析请求。

而在多WAN环境下,在需要向外部发送解析请求时,传统的域名解析采用LAN口向多个WAN口同时发送解析请求的方式。当业务数据过多时,会增加网络资源的消耗。



技术实现要素:

基于此,有必要提供一种能够减小网络资源消耗的针对多WAN口网关设备的域名解析方法。

一种针对多WAN口网关设备的域名解析方法,包括:将LAN口分组,并使每一组LAN口与一个WAN口绑定;接收LAN口发送过来的域名解析请求报文并进行本地解析,若解析成功,则向发送该域名解析请求报文的LAN口返回解析结果,否则将该域名解析请求报文通过与发送该域名解析请求报文的LAN口绑定的WAN口发出,并监测接收解析结果。

优选地,所述将LAN口分组的步骤中,将LAN口按照业务类型分组。

优选地,所述将LAN口分组的步骤中,每一组LAN口包含2个以上的LAN口。

优选地,所述本地解析的步骤具体为:对应各个LAN口建立查询表,所述查询表中包含域名和与域名对应的IP地址;接收从LAN口发送的请求报文,并将该请求报文解析并处理后得到域名解析请求,将域名解析请求加入先进先出的请求队列;从请求队列中取出域名解析请求,并根据所述域名解析请求查询所述查询表。

优选地,所述将请求报文进行解析得到的信息包括:与所述LAN口连接的设备名称、LAN口绑定到的WAN口以及与LAN口对应的查询表。

优选地,若从WAN口返回域名解析结果,则将所述域名解析请求从请求队列中删除。

优选地,若从WAN口返回域名解析结果,则将所述域名解析结果存储到与发送相应请求报文的LAN口所对应的查询表中。

上述方法通过将LAN口和WAN口绑定,使其在解析域名时,LAN口的请求报文不会发送到多个WAN口,从而减少网络资源的消耗。

【附图说明】

图1为一实施例的针对多WAN口网关设备的域名解析方法流程图;

图2为实现图1实施例方法的模块原理图;

图3为域名解析的整体处理流程图;

图4为对请求报文进行处理的流程图;

图5为经过WAN口获得解析结果后的处理流程。

【具体实施方式】

图1为一实施例的针对多WAN口网关设备的域名解析方法。图2为能够实现本实施例方法的网关设备的模块原理图。该网关设备将LAN口分组,并使每一组LAN口与一个WAN口绑定。基于该网关设备,本实施的方法首先接收LAN口发送过来的域名解析请求报文并进行本地解析,若解析成功,则向发送该域名解析请求报文的LAN口返回解析结果,否则将该域名解析请求报文通过与发送该域名解析请求报文的LAN口绑定的WAN口发出,并监测接收解析结果。

上述的LAN口发送请求报文以及WAN口接收解析结果都是通过发送接收端口实现的。域名解析的整体流程如图3所示。该流程持续循环进行,用于不断检测发送域名解析请求的端口和接收域名解析报文的端口。

函数伪码如下:

本实施例的方法具体包括如下步骤。

S101:将LAN口分组,并使每一组LAN口与一个WAN口绑定。将LAN口分组的步骤中,可以将LAN口按照业务类型分组,例如将发送音频业务的LAN口分为一组、将发送视频业务的LAN口分为一组。也可以按照其他标准分组,例如单纯按照数量进行等分。优选地,每一组LAN口包含2个以上的LAN口。将LAN口与WAN口绑定是指从LAN口接收到的域名解析请求从指定的WAN口发出,而不是以类似广播的方式从多个WAN口发出。

本实施例的方法基于传统的Dproxy,并在其基础上对数据结构和函数进行改进实现。Dproxy并不支持对多WAN解析,首先要修改数据结构,以支持LAN-WAN绑定,主要的修改包括:

其中,结构体中各参数含义如下:

szName[INTERFACE_LEN] LAN设备名称

ST_LAN_INFO*pNext 下一个节点指针

szWanIf[INTERFACE_LEN] LAN绑定的WAN口

szDnsIp[NUM_OF_PROTO][NUM_OF_DNS][IP_LEN]使用哪个DNS服务器

szCacheFile[CONF_FILE_LEN]各个LAN口所对应的查询表

通过在结构体中定义LAN口和WAN口绑定的参数,使Dproxy支持多WAN解析。

此外,Dproxy中定义的域名解析请求函数dns_request_s也是预先定义好的,同时也在其中加入了支持LAN-WAN绑定的信息,说明如下:

S102:对应各个LAN口建立查询表。在步骤S101中,szCacheFile[]即与LAN口对应的查询表。查询表中包含域名和与域名对应的IP地址。根据历史数据或者其他数据来源,可预先建立该查询表。

S103:接收从LAN口发送的请求报文,并将该请求报文解析并处理后得到域名解析请求,将域名解析请求加入先进先出的请求队列。将请求报文进行解析得到的信息包括:与所述LAN口连接的设备名称、LAN口绑定到的WAN口以及与LAN口对应的查询表。即上述结构体中的szName[]、szWanIf[]以及szCacheFile[]。从LAN口发送的请求报文包含很多信息,而与域名解析相关的信息则比较少,对LAN口发送的请求报文进行解析并获得与域名解析相关的信息可以减少域名解析过程中的内存消耗,提高处理效率。

本实施例中,采用dns_read_packet函数实现本步骤的处理。该函数从检测到的发送接收端口读取报文,并将报文重组成请求队列指定的格式,最后将报文加入到请求队列中。处理流程如图4所示。

函数伪码如下:

当检测到LAN口有请求报文到达时,进行相应的处理,即对IPV4报文以IPV4协议进行解析并处理后得到域名解析请求并加入请求队列,对IPV6报文以IPV6协议进行解析并处理后得到域名解析请求并加入请求队列。

S104:从请求队列中取出域名解析请求,并根据所述域名解析请求查询所述查询表。

S105:判断是否获得解析结果,若是,则向发送该域名解析请求报文的LAN口返回解析结果,并返回执行步骤S104,否则执行步骤S106。

S106:将该域名解析请求报文通过与发送该域名解析请求报文的LAN口绑定的WAN口发出。

S107:判断是否从WAN口返回域名解析结果,若是,则执行步骤S108,否则返回执行步骤S103。

S108:将所述域名解析结果存储到与发送相应请求报文的LAN口所对应的查询表中。将解析成功的域名保存在相应的LAN口的查询表中,以备下次查询时使用。本实施例中采用dns_handle_request函数实现,dns_handle_request函数会处理域名解析请求报文和域名解析结果报文。

如果是域名解析请求报文,dns_handle_request函数会判断该域名解析请求是否已存在请求队列中,如果不存在,会将该域名解析请求添加进请求队列中。

如果是域名解析结果报文,dns_handle_request函数会将域名解析结果写入发送该域名解析请求的LAN口对应的查询表中,同时发送DNS响应。

具体实现流程如图5所示。

S109:将所述域名解析请求从请求队列中删除。将域名解析请求删除以释放其占用的资源。

上述方法通过将LAN口和WAN口绑定,使其在解析域名时,LAN口的请求报文不会发送到多个WAN口,从而减少网络资源的消耗。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1