CN114650271B - 全局负载dns邻居站点学习方法及装置 - Google Patents
全局负载dns邻居站点学习方法及装置 Download PDFInfo
- Publication number
- CN114650271B CN114650271B CN202210291148.XA CN202210291148A CN114650271B CN 114650271 B CN114650271 B CN 114650271B CN 202210291148 A CN202210291148 A CN 202210291148A CN 114650271 B CN114650271 B CN 114650271B
- Authority
- CN
- China
- Prior art keywords
- message data
- server
- global load
- type
- destination port
- 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
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开涉及一种全局负载DNS邻居站点学习方法、装置、电子设备及计算机可读介质。该方法包括:全局负载DNS设备由其邻居站点获取报文数据;基于所述报文数据确定IP类型和目的端口的服务端信息;在IP类型和所述服务端信息不匹配时,调整所述报文数据的源IP地址;将调整后的报文数据的域名信息存储在本地;将所述报文数据发送到目的端口。本申请涉及的全局负载DNS邻居站点学习方法、装置、电子设备及计算机可读介质,能够在全局负载DNS本地站点和邻居站点使用不同协议栈的情况下,进行域名学习,建立邻居站。
Description
技术领域
本申请涉及网络信息处理领域,具体而言,涉及一种全局负载DNS邻居站点学习方法、装置、电子设备及计算机可读介质。
背景技术
全局负载均衡(GSL.B,Global Server Load Balance)主要的目的是在整个网络范围内将用户的请求定向到最近的节点(或者区域)。因此,就近性判断是全局负载均衡的主要功能。本地负载均衡一般局限于一定的区域范围内,其目标是在特定的区域范围内寻找一台最适合的节点提供服务。
在实际应用场景中,客户端向全局负载设备请求域名对应的记录信息,基于DNS的全局负载设备结合网络环境的稳定性、通过相应的调度算法返回给客户端较为相近亦或是可靠的记录信息,引导客户端将访问更加稳定的服务端,从而实现负载功能。相邻的全局负载设备可配置站点信息以及邻居信息,根据不同的学习模式,可以与邻居全局负载设备进行互相学习域名和记录信息的映射关系或者学习域名信息的健康状态,使得全局负载功能更具有灵活性和健壮性。
现有的全局负载DNS站点学习,目前仅支持相同协议栈下的邻居交互,对于本地站点和邻居站点使用不同的协议栈的情况,会导致邻居建立失败的情况,无法进行域名的学习。
因此,需要一种新的全局负载DNS邻居站点学习方法、装置、电子设备及计算机可读介质。
在所述背景技术部分公开的上述信息仅用于加强对本申请的背景的理解,因此它可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
有鉴于此,本申请提供一种全局负载DNS邻居站点学习方法、装置、电子设备及计算机可读介质,能够在全局负载DNS本地站点和邻居站点使用不同协议栈的情况下,进行域名学习,建立邻居站点。
本申请的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本申请的实践而习得。
根据本申请的一方面,提出一种全局负载DNS邻居站点学习方法,该方法包括:全局负载DNS设备由其邻居站点获取报文数据;基于所述报文数据确定IP类型和目的端口的服务端信息;在IP类型和所述服务端信息不匹配时,调整所述报文数据的源IP地址;将调整后的报文数据的域名信息存储在本地;将所述报文数据发送到目的端口。
在本申请的一种示例性实施例中,还包括:在IP类型和所述服务端信息匹配时,和所述目的端口建立套接字连接;基于所述连接将所述报文数据发送到目的端口。
在本申请的一种示例性实施例中,基于所述报文数据确定IP类型和目的端口的服务端信息,包括:在数据链路层对所述报文数据进行解析;根据解析结果获取IP类型和目的端口的服务端信息。
在本申请的一种示例性实施例中,根据解析结果获取IP类型和目的端口的服务端信息,包括:根据解析结果获取报文数据的IP首部和TCP首部;基于所述IP首部确定所述IP类型;基于所述TCP首部确定目的端口的所述服务端信息。
在本申请的一种示例性实施例中,基于所述TCP首部确定目的端口的所述服务端信息之前,还包括:全局负载DNS设备的套接字服务端将多个服务端地址和其对应的端口号绑定。
在本申请的一种示例性实施例中,调整所述报文数据的源IP地址,包括:获取所述服务端的IP地址类型;根据服务端的IP地址类型将所述报文数据的源IP地址进行调整。
在本申请的一种示例性实施例中,将调整后的报文数据的域名信息存储在本地,包括:全局负载DNS设备的套接字服务端将多个客户端地址和其调整后的地址绑定。
在本申请的一种示例性实施例中,所述全局负载DNS设备支持双栈协议。
根据本申请的一方面,提出一种全局负载DNS邻居站点学习装置,该装置包括:报文模块,用于全局负载DNS设备由其邻居站点获取报文数据;信息模块,用于基于所述报文数据确定IP类型和目的端口的服务端信息;调整模块,用于在IP类型和所述服务端信息不匹配时,调整所述报文数据的源IP地址;发送模块,用于将所述报文数据发送到目的端口。
在本申请的一种示例性实施例中,还包括:连接模块,用于在IP类型和所述服务端信息匹配时,和所述目的端口建立套接字连接;基于所述连接将所述报文数据发送到目的端口。
根据本申请的一方面,提出一种电子设备,该电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上文的方法。
根据本申请的一方面,提出一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上文中的方法。
根据本申请的全局负载DNS邻居站点学习方法、装置、电子设备及计算机可读介质,通过全局负载DNS设备由其邻居站点获取报文数据;基于所述报文数据确定IP类型和目的端口的服务端信息;在IP类型和所述服务端信息不匹配时,调整所述报文数据的源IP地址;将调整后的报文数据的域名信息存储在本地;将所述报文数据发送到目的端口的方式,能够在全局负载DNS本地站点和邻居站点使用不同协议栈的情况下,进行域名学习,建立邻居站点。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
通过参照附图详细描述其示例实施例,本申请的上述和其它目标、特征及优点将变得更加显而易见。下面描述的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种全局负载DNS邻居站点学习方法及装置的系统框图。
图2是根据一示例性实施例示出的一种全局负载DNS邻居站点学习方法的流程图。
图3是根据另一示例性实施例示出的一种全局负载DNS邻居站点学习方法的流程图。
图4是根据另一示例性实施例示出的一种全局负载DNS邻居站点学习方法的示意图。
图5是根据一示例性实施例示出的一种全局负载DNS邻居站点学习装置的框图。
图6是根据一示例性实施例示出的一种电子设备的框图。
图7是根据一示例性实施例示出的一种计算机可读介质的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
本申请涉及的技术缩略语解释如下:
Domain Name System域名系统,它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。虽然IP地址可以作为互联网中节点的唯一标识,但对于用户而言,一串数字较难记忆,因此有了域名的诞生,域名是有意义的一串字符串,通常该字符串标识服务器端的服务项,方便用户记忆和使用,域名系统即能够将该域名映射到对应的IP地址,告诉用户实际应访问的互联网节点。对用户而言,访问域名和访问IP地址而言,效果是等价的。
Global Server Load Balancing全局负载均衡,在网络环境中,根据静态或动态的数据信息和选定的调度算法,将用户的请求定向到就近或网络环境较为稳定的服务端,提高服务端的高效利用和数据传输的稳定性,提供良好的用户体验,实现异地服务器群服务质量的保证。目前较为常用的有以下几种技术:基于DNS、基于HTTP重定向、IP路由的全局负载。
Dual Stack双协议栈,表示设备上既支持IPv4协议也支持IPv6协议,具备同时处理两个协议地址的功能。随着互联网的发展,IPv6的出现解决了IPv4地址日后紧缺的问题,但IPv6不可能立刻替代IPv4,因此在相当一段时间内IPv4和IPv6会共存在一个环境中。要提供平稳的转换过程,使得对现有的使用者影响最小,就需要有良好的转换机制。IPv6和IPv4是功能相近的网络层协议,两者都应用于相同的物理平台,并承载相同的传输层协议TCP或UDP。该技术的节点上同时运行IPv4和IPv6两套协议栈,这是使IPv6节点保持与纯IPv4节点兼容最直接的方式。
如背景描述中所述,全局负载DNS站点连接建立目前仅支持相同协议栈之间的通信,跨协议栈的邻居无法建立成功,暂不支持双栈。有鉴于现有技术中的技术缺陷,本申请提出一种全局负载DNS邻居站点学习方法、装置,可通过IPv4和IPv6地址的映射,可实现不同协议栈的邻居之间创建连接,提高全局负载DNS站点邻居交互的灵活性和通用性。
下面借助于具体的实施例,对本申请的内容进行详细描述。
图1是根据一示例性实施例示出的一种全局负载DNS邻居站点学习方法、装置的系统框图。
如图1所示,系统架构10可以包括终端设备101、102、103,网络104和全局负载DNS站点105、106、107、应用服务器108、109、110。网络104用以在终端设备101、102、103和全局负载DNS站点105、106、107之间;全局负载DNS站点105、106、107之间;全局负载DNS站点105、106、107和应用服务器108、109、110之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过全局负载DNS站点105、106、107与应用应用服务器108、109、110交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
应用服务器108、109、110可以是提供各种服务的服务器,例如对用户利用终端设备101、102、103所浏览的购物类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果反馈给终端设备101、102、103。应用服务器108、109、110可为同一个购物类网站的后台服务器,应用服务器108、109、110可位于不同的物理地点,但其可执行相同的服务功能。
在终端设备101、102、103请求访问某购物网站时,全局负载DNS站点105、106、107获取终端设备101、102、103的访问请求,然后将访问请求在全局负载DNS站点105、106、107之间传输,以为终端设备101、102、103选择最优的链接通路以访问应用服务器108或109、110。
全局负载DNS站点105、106、107之间可以通过域名学习将邻居发来的域名信息存储至本地,存至本地的域名信息可回复给终端设备101、102、103。
全局负载DNS站点105(也可为106或107)可例如由全局负载DNS站点106(或107)获取报文数据;全局负载DNS站点105可例如基于所述报文数据确定IP类型和目的端口的服务端信息;全局负载DNS站点105可例如在IP类型和所述服务端信息不匹配时,调整所述报文数据的源IP地址;全局负载DNS站点105可例如,将调整后的报文数据和与其对应域名信息存储在本地;全局负载DNS站点105可例如将所述报文数据发送到目的端口。
全局负载DNS站点105可例如,在IP类型和所述服务端信息匹配时,和所述目的端口建立套接字连接;基于所述连接将所述报文数据发送到目的端口。
全局负载DNS站点105、106、107可以是一个实体的服务器,还可例如为多个服务器组成,需要说明的是,本申请实施例所提供的全局负载DNS邻居站点学习方法可以由全局负载DNS站点105、106、107执行,相应地,全局负载DNS邻居站点学习装置可以设置于全局负载DNS站点105、106、107中。
图2是根据一示例性实施例示出的一种全局负载DNS邻居站点学习方法的流程图。全局负载DNS邻居站点学习方法20至少包括步骤S202至S208。
如图2所示,在S202中,全局负载DNS设备由其邻居站点获取报文数据。在本申请中的所述全局负载DNS设备为支持双栈协议。
在本申请中,全局负载DNS站点学习可支持两种学习模式:Server模式和Client模式。Server模式向邻居发送本地的域名信息且能够将邻居发来的域名信息存储至本地,存至本地的域名信息可回复给客户端;Client模式向邻居发送本地的域名信息记录信息的关联内容,但不会学习邻居发来的域名信息。常见的应用场景为:Server模式的集群设备更靠近客户端,Client模式的集群设备更靠近服务端。Client模式的集群设备关联的链路和虚服务状态更高效地反映了服务端的稳定性,Server模式的集群设备则更致力于更快速高效地回复客户端DNS请求。
在S204中,基于所述报文数据确定IP类型和目的端口的服务端信息。在数据链路层对所述报文数据进行解析;根据解析结果获取IP类型和目的端口的服务端信息。
更具体的,可根据解析结果获取报文数据的IP首部和TCP首部;基于所述IP首部确定所述IP类型;基于所述TCP首部确定目的端口的所述服务端信息。
在一个实施例中,还包括:全局负载DNS设备的套接字服务端将多个服务端地址和其对应的端口号绑定。
在S206中,在IP类型和所述服务端信息不匹配时,调整所述报文数据的源IP地址。可例如,获取所述服务端的IP地址类型;根据服务端的IP地址类型将所述报文数据的源IP地址进行调整。
在S208中,将调整后的报文数据和与其对应域名信息存储在本地。可例如,全局负载DNS设备的套接字服务端将多个客户端地址和其调整后的地址绑定并存储在本地。
在S210中,在IP类型和所述服务端信息匹配时,和所述目的端口建立套接字连接。
在S212中,将所述报文数据发送到目的端口。
在一个实施例中,可基于socket服务端监听套接字需绑定地址和端口号,如果报文的目的协议和端口与服务端信息相匹配,则继续进行如下判断:如果与服务端IP类型保持一致,则进行套接字的连接或者数据传输;若不一致则进行IP地址转换,将报文的源IP地址映射为与服务端IP类型一致的IP地址中。
根据本申请的全局负载DNS邻居站点学习方法,通过全局负载DNS设备由其邻居站点获取报文数据;基于所述报文数据确定IP类型和目的端口的服务端信息;在IP类型和所述服务端信息不匹配时,调整所述报文数据的源IP地址;将调整后的报文数据的域名信息存储在本地;将所述报文数据发送到目的端口的方式,能够在全局负载DNS本地站点和邻居站点使用不同协议栈的情况下,进行域名学习,建立邻居站点。
应清楚地理解,本申请描述了如何形成和使用特定示例,但本申请的原理不限于这些示例的任何细节。相反,基于本申请公开的内容的教导,这些原理能够应用于许多其它实施例。
图3是根据另一示例性实施例示出的一种全局负载DNS邻居站点学习方法的流程图。图3所示的流程30是对图2所示的流程中S204“基于所述报文数据确定IP类型和目的端口的服务端信息”的详细描述。
如图3所示,在S302中,在数据链路层对所述报文数据进行解析。
在S304中,根据解析结果获取报文数据的IP首部和TCP首部。
在S306中,基于所述IP首部确定所述IP类型。
在S308中,基于所述TCP首部确定目的端口的所述服务端信息。
报文传送至全局负载DNS的数据链路层时,对报文数据进行解析,获取该报文的太网首部、IP首部、TCP首部以及应用数据和以太网尾部。
在一个实施例中,可通过IP首部判断报文数据的IP类型,然后将报文传送至网络层中。
在一个实施例中,还可通过TCP首部判断目的端口,以确定待访问的目的端口所对应服务有哪些。
图4是根据另一示例性实施例示出的一种全局负载DNS邻居站点学习方法的示意图。借助于图4,以客户端为IPv4类型,服务端为IPv6类型为例进行本申请内容的详细说明。
全局负载DNS服务器的接收数据链路通过查看以报文的太网类型字段获取每帧报文对应的IP。
当IP类型为IPv4时,而通过TCP信息获取的该IPv4数据报的目的端口对应的是一个IPv6套接字,则需要把该数据报的IPv4的首部中的源IPv4地址转换成一个等价的IPv4映射的IPv6地址。
accept系统用于在套接字连接建立之后,从已经完成三次握手的连接队列中取一个连接,进行后续服务;调用过程中,会重新分配一个socket,以及关联文件和传输控制块,如果应用层需要获取对端信息,则将对端信息拷贝到用户空间。
在一个实施例中,当accept系统调用把这个已经接受的IPv4客户端连接返回给服务器进程时,这个映射后的地址将作为客户的IPv6地址返回给全局负载DNS服务器邻居站点的IPv6套接字该连接上其余的数据报都是IPv4数据报。在这种情况下,邻居站点不会感知到其自身是在跟IPv4客户端通信,客户端也不知道自己和IPv6的服务器通信。
在一个实施例中,对于IPv6客户端而言,当accept系统调用把接受的IPv6客户端连接返回给全局负载DNS进程时,全局负载DNS中识别到该客户的IPv6地址就是原来IPv6首部中的源地址,不需要进行映射,该连接上其余的数据报都是IPv6数据报。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU执行的计算机程序。在该计算机程序被CPU执行时,执行本申请提供的上述方法所限定的上述功能。所述的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本申请示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
图5是根据一示例性实施例示出的一种全局负载DNS邻居站点学习装置的框图。如图5所示,全局负载DNS邻居站点学习装置50包括:报文模块502,信息模块504,调整模块506,发送模块508,连接模块510。
报文模块502用于全局负载DNS设备由其邻居站点获取报文数据;在本申请中的所述全局负载DNS设备为支持双栈协议。
信息模块504用于基于所述报文数据确定IP类型和目的端口的服务端信息;信息模块504还用于在数据链路层对所述报文数据进行解析;根据解析结果获取IP类型和目的端口的服务端信息。
调整模块506用于在IP类型和所述服务端信息不匹配时,调整所述报文数据的源IP地址;调整模块506还用于获取所述服务端的IP地址类型;根据服务端的IP地址类型将所述报文数据的源IP地址进行调整。
发送模块508用于将所述报文数据发送到目的端口。
连接模块510用于在IP类型和所述服务端信息匹配时,和所述目的端口建立套接字连接;基于所述连接将所述报文数据发送到目的端口。
根据本申请的全局负载DNS邻居站点学习装置,通过全局负载DNS设备由其邻居站点获取报文数据;基于所述报文数据确定IP类型和目的端口的服务端信息;在IP类型和所述服务端信息不匹配时,调整所述报文数据的源IP地址;将调整后的报文数据的域名信息存储在本地;将所述报文数据发送到目的端口的方式,能够在全局负载DNS本地站点和邻居站点使用不同协议栈的情况下,进行域名学习,建立邻居站点。
图6是根据一示例性实施例示出的一种电子设备的框图。
下面参照图6来描述根据本申请的这种实施方式的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图6所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书中描述的根据本申请各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图2,图3中所示的步骤。
所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(ROM)6203。
所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备600也可以与一个或多个外部设备600’(例如键盘、指向设备、蓝牙设备等)通信,使得用户能与该电子设备600交互的设备通信,和/或该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,如图7所示,根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本申请实施方式的上述方法。
总体而言,目前的全局负载DNS站点连接建立仅支持相同协议栈之间的通信,跨协议栈的邻居无法建立成功,暂不支持双栈。因此,可通过IPv4和IPv6地址的映射,可实现不同协议栈的邻居之间创建连接,提高全局负载DNS站点邻居交互的灵活性和通用性。为此,本公开在报文传送至数据链路层时,报文主要内容为以太网首部、IP首部、TCP首部以及应用数据和以太网尾部。通过IP首部判断IP类型,将报文传送至网络层中;通过TCP首部判断目的端口,确定访问的对应服务有哪些。socket服务端监听套接字需绑定地址和端口号,如果报文的目的协议和端口与服务端信息相匹配,则进行如下判断:如果与服务端IP类型保持一致,则进行套接字的连接或者数据传输;若不一致则进行IP地址转换,将报文的源IP地址映射为与服务端IP类型一致的IP地址中。以客户端为IPv4类型,服务端为IPv6类型为例,服务器的接收数据链路通过查看以太网类型字段把每帧传递给相应的IP模块。IPv4模块结合其上的TCP模块检测到IPv4数据报的目的端口对应的是一个IPv6套接字,于是把该数据报IPv4首部中的源IPv4地址转换成一个等价的IPv4映射的IPv6地址。当accept系统调用把这个已经接受的IPv4客户端连接返回给服务器进程时,这个映射后的地址将作为客户的IPv6地址返回给服务器的IPv6套接字(也就是说服务器根本不知道自己是在跟IPv4客户端通信,客户端也不知道自己和IPv6的服务器通信),该连接上其余的数据报都是IPv4数据报。对于IPv6客户端,当accept系统调用把接受的IPv6客户端连接返回给服务器进程时,该客户的IPv6地址就是原来IPv6首部中的源地址,不需要进行映射,该连接上其余的数据报都是IPv6数据报。本公开扩展了DNS站点邻居交互的通信范围,实现IPv4站点和IPv6站点的信息交互,更好地适应IPv4和IPv6并存的网络环境,有益于IPv4至IPv6的过渡阶段发展,提高了邻居站点建立的灵活性。
所述软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该计算机可读介质实现如下功能:全局负载DNS设备由其邻居站点获取报文数据;基于所述报文数据确定IP类型和目的端口的服务端信息;在IP类型和所述服务端信息不匹配时,调整所述报文数据的源IP地址;将调整后的报文数据的域名信息存储在本地;将所述报文数据发送到目的端口。该计算机可读介质还可实现如下功能:在IP类型和所述服务端信息匹配时,和所述目的端口建立套接字连接;基于所述连接将所述报文数据发送到目的端口。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施例的描述,本领域的技术人员易于理解,这里描述的示例实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本申请实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、移动终端、或者网络设备等)执行根据本申请实施例的方法。
以上具体地示出和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现方法;相反,本申请意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (8)
1.一种全局负载DNS邻居站点学习方法, 其特征在于,包括:
全局负载DNS设备由其邻居站点获取报文数据;
基于所述报文数据确定IP类型和目的端口的服务端信息;
在IP类型和所述服务端信息不匹配时,调整所述报文数据的源IP地址,包括:获取所述服务端的IP地址类型,根据服务端的IP地址类型将所述报文数据的源IP地址进行调整;
将调整后的报文数据和与其对应域名信息存储在本地,包括:全局负载DNS设备的套接字服务端将多个客户端地址和其调整后的地址绑定并存储在本地;
将所述报文数据发送到目的端口。
2.如权利要求1所述的方法,其特征在于,还包括:
在IP类型和所述服务端信息匹配时,和所述目的端口建立套接字连接;
基于所述连接将所述报文数据发送到目的端口。
3.如权利要求1所述的方法,其特征在于,基于所述报文数据确定IP类型和目的端口的服务端信息,包括:
在数据链路层对所述报文数据进行解析;
根据解析结果获取IP类型和目的端口的服务端信息。
4.如权利要求3所述的方法,其特征在于,根据解析结果获取IP类型和目的端口的服务端信息,包括:
根据解析结果获取报文数据的IP首部和TCP首部;
基于所述IP首部确定所述IP类型;
基于所述TCP首部确定目的端口的所述服务端信息。
5.如权利要求4所述的方法,其特征在于,基于所述TCP首部确定目的端口的所述服务端信息之前,还包括:
全局负载DNS设备的套接字服务端将多个服务端地址和其对应的端口号绑定。
6.如权利要求1所述的方法,其特征在于,所述全局负载DNS设备支持双栈协议。
7.一种全局负载DNS邻居站点学习装置, 其特征在于,包括:
报文模块,用于全局负载DNS设备由其邻居站点获取报文数据;
信息模块,用于基于所述报文数据确定IP类型和目的端口的服务端信息;
调整模块,用于在IP类型和所述服务端信息不匹配时,调整所述报文数据的源IP地址,包括:获取所述服务端的IP地址类型,根据服务端的IP地址类型将所述报文数据的源IP地址进行调整,并且将调整后的报文数据和与其对应域名信息存储在本地,包括:全局负载DNS设备的套接字服务端将多个客户端地址和其调整后的地址绑定并存储在本地;
发送模块,用于将所述报文数据发送到目的端口。
8.如权利要求7所述的装置,其特征在于,还包括:
连接模块,用于在IP类型和所述服务端信息匹配时,和所述目的端口建立套接字连接;基于所述连接将所述报文数据发送到目的端口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210291148.XA CN114650271B (zh) | 2022-03-23 | 2022-03-23 | 全局负载dns邻居站点学习方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210291148.XA CN114650271B (zh) | 2022-03-23 | 2022-03-23 | 全局负载dns邻居站点学习方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114650271A CN114650271A (zh) | 2022-06-21 |
CN114650271B true CN114650271B (zh) | 2023-12-05 |
Family
ID=81995080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210291148.XA Active CN114650271B (zh) | 2022-03-23 | 2022-03-23 | 全局负载dns邻居站点学习方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114650271B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1512377A (zh) * | 2002-12-31 | 2004-07-14 | 联想(北京)有限公司 | 基于内核中套接字对接的第七层负载均衡的方法 |
CN1525699A (zh) * | 2003-09-17 | 2004-09-01 | 中国科学院计算技术研究所 | 一种可穿越网络地址翻译的自动隧道的方法 |
WO2006105718A1 (en) * | 2005-04-04 | 2006-10-12 | Huawei Technologies Co., Ltd. | A method for realizing the mpls-vpn across the hybrid network |
CN1852213A (zh) * | 2005-11-14 | 2006-10-25 | 华为技术有限公司 | 一种跨多自治系统混合网络虚拟专用网的实现方法 |
CN102075445A (zh) * | 2011-02-28 | 2011-05-25 | 杭州华三通信技术有限公司 | 负载均衡方法及装置 |
EP3603033A1 (en) * | 2017-03-22 | 2020-02-05 | Citrix Systems, Inc. | A method for dns response reordering based on path quality and connection priority for better qos |
WO2020140433A1 (zh) * | 2019-01-02 | 2020-07-09 | 北京宏图佳都通信设备有限公司 | IPv4/IPv6地址转换系统 |
CN111432045A (zh) * | 2020-03-19 | 2020-07-17 | 杭州迪普科技股份有限公司 | 一种域名系统服务器调度算法的测试方法、装置及设备 |
CN113691589A (zh) * | 2021-07-27 | 2021-11-23 | 杭州迪普科技股份有限公司 | 报文传输方法、装置及系统 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8825859B2 (en) * | 2009-12-23 | 2014-09-02 | Citrix Systems, Inc. | System and methods for mixed mode of IPv6 and IPv4 DNS of global server load balancing |
US10101981B2 (en) * | 2015-05-08 | 2018-10-16 | Citrix Systems, Inc. | Auto discovery and configuration of services in a load balancing appliance |
US9628442B2 (en) * | 2015-06-22 | 2017-04-18 | Cisco Technology, Inc. | DNS snooping to create IP address-based trust database used to select deep packet inspection and storage of IP packets |
US10965592B2 (en) * | 2019-05-31 | 2021-03-30 | Juniper Networks, Inc. | Inter-network service chaining |
-
2022
- 2022-03-23 CN CN202210291148.XA patent/CN114650271B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1512377A (zh) * | 2002-12-31 | 2004-07-14 | 联想(北京)有限公司 | 基于内核中套接字对接的第七层负载均衡的方法 |
CN1525699A (zh) * | 2003-09-17 | 2004-09-01 | 中国科学院计算技术研究所 | 一种可穿越网络地址翻译的自动隧道的方法 |
WO2006105718A1 (en) * | 2005-04-04 | 2006-10-12 | Huawei Technologies Co., Ltd. | A method for realizing the mpls-vpn across the hybrid network |
CN1852213A (zh) * | 2005-11-14 | 2006-10-25 | 华为技术有限公司 | 一种跨多自治系统混合网络虚拟专用网的实现方法 |
CN102075445A (zh) * | 2011-02-28 | 2011-05-25 | 杭州华三通信技术有限公司 | 负载均衡方法及装置 |
EP3603033A1 (en) * | 2017-03-22 | 2020-02-05 | Citrix Systems, Inc. | A method for dns response reordering based on path quality and connection priority for better qos |
WO2020140433A1 (zh) * | 2019-01-02 | 2020-07-09 | 北京宏图佳都通信设备有限公司 | IPv4/IPv6地址转换系统 |
CN111432045A (zh) * | 2020-03-19 | 2020-07-17 | 杭州迪普科技股份有限公司 | 一种域名系统服务器调度算法的测试方法、装置及设备 |
CN113691589A (zh) * | 2021-07-27 | 2021-11-23 | 杭州迪普科技股份有限公司 | 报文传输方法、装置及系统 |
Non-Patent Citations (3)
Title |
---|
On the DNS Deployment of Modern Web Services;Shuai Hao;《IEEE》;全文 * |
基于SDN的CDN请求路由方法研究;郭俊杰;《中国优秀硕士学位论文全文数据库信息科技辑》;全文 * |
移动电子政务架构安全性及其数据同步研究;童开峰;《中国优秀硕士学位论文全文数据库信息科技辑》;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114650271A (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110049022B (zh) | 一种域名访问控制方法、装置和计算机可读存储介质 | |
CN109543121B (zh) | 一种外链url资源调用方法及装置 | |
CN113691589B (zh) | 报文传输方法、装置及系统 | |
US9565161B2 (en) | Automatically replacing localhost as hostname in URL with fully qualified domain name or IP address | |
CN113259479B (zh) | 一种数据处理方法以及设备 | |
CN111917900A (zh) | 一种域名代理的请求处理方法及装置 | |
CN112003945A (zh) | 服务请求响应方法及装置 | |
CN112104640B (zh) | 网关的数据处理方法、装置、设备及可读存储介质 | |
US6950873B2 (en) | Apparatus and method for port sharing a plurality of server processes | |
CN111726400A (zh) | 反向连接的方法、装置和服务端系统 | |
CN111885190B (zh) | 服务请求处理方法及系统 | |
CN113179317B (zh) | 内容重写设备的测试系统及方法 | |
CN113452778B (zh) | 会话保持方法、装置、设备、系统及存储介质 | |
JP2003141002A (ja) | Url長変換システム及びそのプログラム | |
CN107222365B (zh) | 数据处理方法、装置及服务器 | |
CN111800518B (zh) | 客户端ip地址插入方法及装置 | |
CN114650271B (zh) | 全局负载dns邻居站点学习方法及装置 | |
CN110572394B (zh) | 访问控制方法及装置 | |
CN109005250B (zh) | 用于访问服务端的方法和装置 | |
US10958580B2 (en) | System and method of performing load balancing over an overlay network | |
CN109600452B (zh) | 服务器集群、消息推送方法及相关服务器 | |
JP2023522785A (ja) | 調和総合プロキシサービス | |
CN114124883A (zh) | 基于云存储地址的数据访问方法、装置、计算机设备及介质 | |
CN113271300A (zh) | 一种认证的系统和方法 | |
US20130326027A1 (en) | Information processing apparatus, communication system, and communication method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |