CN115022283A - 一种支持域名解析的可编程交换机以及网络报文处理方法 - Google Patents
一种支持域名解析的可编程交换机以及网络报文处理方法 Download PDFInfo
- Publication number
- CN115022283A CN115022283A CN202210570514.5A CN202210570514A CN115022283A CN 115022283 A CN115022283 A CN 115022283A CN 202210570514 A CN202210570514 A CN 202210570514A CN 115022283 A CN115022283 A CN 115022283A
- Authority
- CN
- China
- Prior art keywords
- domain name
- dns
- programmable switch
- mapping relation
- plane module
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title description 5
- 238000013507 mapping Methods 0.000 claims abstract description 69
- 238000012545 processing Methods 0.000 claims abstract description 48
- 230000004044 response Effects 0.000 claims abstract description 46
- 238000000034 method Methods 0.000 claims description 17
- 230000001133 acceleration Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 7
- 238000004458 analytical method Methods 0.000 claims description 5
- 230000004083 survival effect Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 238000012217 deletion Methods 0.000 claims description 2
- 230000037430 deletion Effects 0.000 claims description 2
- 230000006870 function Effects 0.000 description 12
- 230000009471 action Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006854 communication Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种支持域名解析的可编程交换机,包括:数据平面模块,其存储有用于支持域名解析的匹配‑动作表,所述匹配‑动作表中包含多个表项,每个表项存储有一个域名‑IP地址映射关系、以及对应于该映射关系的网络报文的处理逻辑,其中,所述数据平面模块用于按照匹配‑动作表中的域名‑IP地址映射关系对来自于DNS请求报文进行域名解析并按照对应域名‑IP地址映射关系的处理逻辑对数据包进行处理以实现对客户端的应答、将来自于DNS服务器的DNS应答报文转发到对应的客户端、将非DNS协议对应的数据包根据转发表选择对应的端口转发出去;控制平面模块,用于增添或删除所述数据平面模块中的匹配‑动作表表项。
Description
技术领域
本发明涉及网络技术领域,具体来说,涉及域名解析技术领域,更具体地说,涉及一种将域名解析从DNS服务器释放到其他设备的方法和系统,即一种支持域名解析的可编程交换机以及基于该类交换机的网络报文处理方法。
背景技术
域名系统被用于将网络的域名映射至对应的网络地址(例如网际协议InternetProtocol,IP地址)。传统的域名解析服务由层级式的分布式DNS系统提供,使用户无需记忆复杂的实际网络地址,仅通过指定网络域名即可访问网络资源,是互联网众多服务(包括电子邮件、网站服务、即时通信等)的基础。但传统的域名解析服务存在解析延迟较大、域名解析服务器的负载不能有效平衡的问题,影响了网络服务的质量,因此研究低时延的域名解析服务方案十分有必要。
为了降低域名解析服务的时延,CoDNS提出了一种轻量化、协同化的域名解析服务方案,该方案中在各个对等的节点设计了本地域名解析服务器并使本地域名解析服务器可以协同地处理域名解析请求,当本地域名服务器的域名解析服务失效时,会由该服务器将域名解析请求转发给对等节点进行解析,避免等待超时重传而造成的高延迟,从而降低域名解析服务的延迟。然而,该技术方案虽然解决了本地域名解析服务发生故障时的高延迟问题,但没有提升正常情况下域名解析服务的效果,也并没有解决域名解析服务器本身的解析延迟问题,加速效果有限。
还有一些研究工作针对某些特定类型的DNS记录进行域名解析流程的改进。例如,对于MX、CNAME、SRV等需进行多步DNS解析以获得最终目标服务器IP地址的DNS解析记录类型,可通过预取最终目标服务器的IP地址到权威域名服务器,以降低使用邮件服务等相关网络服务时的DNS解析次数,从而达到降低域名解析服务时延,提升域名解析服务质量的目的。但是,该技术方案仅对某些特定类型的域名解析服务的性能进行了改进,没有全面提升域名解析服务的性能。
另外还有一些基于交换机的域名解析卸载加速方案,其通过自定义数据平面对数据包的处理逻辑,初步实现了域名解析服务加速的功能,降低了域名解析服务的时延与本地域名解析服务器的负载。但现有的借助交换机实现域名解析卸载加速的技术方案,存在不支持解析任意长度字段域名、缓存域名更新规则不合理等问题,这导致现有技术方案的实用价值有限。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种能够进行域名解析的可编程交换机以及网络报文处理方法。
根据本发明的第一方面,提供一种支持域名解析的可编程交换机,用于接收来自于客户端的DNS请求报文、来自于DNS服务器的DNS应答报文、非DNS协议对应的数据包,所述可编程交换机存储有转发表且所述可编程交换机包括:数据平面模块,其存储有用于支持域名解析的匹配-动作表,所述匹配-动作表中包含多个表项,每个表项存储有一个域名-IP地址映射关系、以及对应于该映射关系的网络报文的处理逻辑,其中,所述数据平面模块用于按照匹配-动作表中的域名-IP地址映射关系对来自于DNS请求报文进行域名解析并按照对应域名-IP地址映射关系的处理逻辑对数据包进行处理以实现对客户端的应答、将来自于DNS服务器的DNS应答报文转发到对应的客户端、将非DNS协议对应的数据包根据转发表选择对应的端口转发出去;控制平面模块,用于增添或删除所述数据平面模块中的匹配-动作表表项。
在本发明的一些实施例中,所述匹配-动作表是在可编程交换机启动初期进行预置或在可编程交换机运行过程中由所述控制平面模块进行动态更新。优选的,所述匹配-动作表表项中的对应于域名-IP地址映射关系的网络报文处理逻辑由数据平面模块定义,其包括:对数据包的内容进行增添或删除、确定数据包的发送端口或广播端口、是否与控制平面模块通信。
在本发明的一些实施例中,所述数据平面模块被配置为按照如下方式对接收到的网络报文进行处理:S1、检查并提取网络报文的内容以根据网络报文首部判断该网络报文的应用层协议是否为DNS协议,并根据交换机存储的转发表选择对应的端口将非DNS协议对应的数据包转发出去;S2、针对DNS协议对应的网络报文,根据网络报文中协议首部QR字段值判断网络报文是DNS请求报文还是DNS应答报文;S3、针对DNS请求报文,根据其UDP首部中的UDP报文长度字段计算得到请求解析的域名长度,并以请求解析的域名为关键字、根据请求解析的域名长度在匹配-动作表中进行匹配以搜索是否有对应表项,匹配成功时将DNS请求报文按照其对应表项的处理逻辑进行处理,匹配不成功时将DNS请求报文转发给DNS服务器;针对DNS应答报文,根据数据包中的应答内容提取域名-IP地址映射关系,并将该映射关系与域名长度组成三元组发送给控制平面模块。
在本发明的一些实施例中,所述控制平面模块被配置为按照如下方式对匹配-动作表进行表项增添:根据接收到的数据平面模块发送的三元组,获取DNS应答报文中的域名-IP地址对应关系,并将该域名-IP地址对应关系下发到数据平面模块的匹配-动作表中以进行表项添加。
在本发明的一些实施例中,所述控制平面模块被配置为按照如下方式对匹配-动作表进行表项删除:控制平面模块将域名-IP地址映射关系下发到数据平面模块的匹配-动作表中的同时,在其自身存储空间中存储该域名-IP地址映射关系,并为每一个映射关系设置一个计时器用于预先设置该映射关系的生存时间,并在映射关系达到预先设置的生存时间时,向数据平面模块下发删除该映射关系的指令。
根据本发明的第二方面,提供一种基于本发明第一方面所述的可编程交换机的网络报文处理方法,所述方法包括:T1、接收网络报文,检查并提取网络报文的内容以根据网络报文UDP首部判断该网络报文的应用层协议是否为DNS协议,并根据交换机数据平面模块存储的转发表选择对应的端口将非DNS协议对应的数据包转发出去;T2、判断DNS对应的数据包是DNS请求报文还是DNS应答报文,按照可编程交换机中的匹配-动作表中的域名-IP地址映射关系对DNS请求报文进行域名解析并按照对应域名-IP地址映射关系的处理逻辑对数据包进行处理,将DNS应答报文转发到对应的客户端。
根据本发明的第三方面,提供一种域名解析服务加速系统,其与本地DNS服务器相连,本地DNS服务器与对等节点的DNS服务器相连,所述系统包括一个或者多个客户端以及如本发明第一方面所述的可编程交换机,其中:所述客户端向可编程交换机发送DNS请求报文并接收来自于可编程交换机的DNS应答报文;所述可编程交换机用于根据其存储的匹配-动作表中的域名-IP地址映射关系对DNS请求报文进行域名解析并按照对应域名-IP地址映射关系的处理逻辑对数据包进行处理以实现对DNS请求报文的应答、将来自于DNS服务器的DNS应答报文转发到对应的客户端以及将无对应的域名-IP地址映射关系的DNS请求报文转发给本地DNS服务器;所述本地DNS服务器用于对在可编程交换机中无对应域名-IP地址映射关系的DNS请求报文进行解析以及在其解析服务失效时将DNS请求报文发送给对等节点的DNS服务器;所述对等节点的DNS服务器用于对接收到的DNS请求报文进行域名解析。
与现有技术相比,本发明的优点在于:本发明通过将域名解析服务从DNS服务器卸载到可编程交换机上,实现降低域名解析时延、减少网络中DNS流量的效果,从而提升域名解析服务的性能。与现有技术相比,本发明提出的一种支持域名解析的可编程交换机通过改变数据平面对数据包的处理逻辑,使可编程交换机可以在数据平面对域名解析请求与应答报文进行识别解析与进一步处理,对于DNS请求报文,如果所述报文中请求解析的域名可在所述可编程交换机数据平面的匹配-动作表(match-action table)中匹配成功,则由所述可编程交换机对所述DNS请求报文直接进行应答,大大的降低域名解析延迟,对于匹配不成功的则由所述可编程交换机转发所述DNS请求报文到DNS服务器进行域名解析;对于DNS应答报文,所述可编程交换机数据平面模块将所述DNS应答报文传至控制平面模块进行后续处理。本发明在控制平面模块更改可编程交换机匹配-动作表表项以改变数据平面处理逻辑的方法,在所述控制平面编写针对数据平面上传报文的处理程序,提取DNS应答报文中域名与IP的映射关系,并根据所述映射关系改变可编程交换机内匹配-动作表内容,实现数据平面根据所述映射关系针对所述域名的DNS请求应答所述IP地址的功能。本发明通过将域名解析服务卸载到可编程交换机,在保证域名解析服务功能准确性与可用性的前提下降低了服务的时延,同时减轻了域名解析服务器的负载。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1为根据本发明实施例的可编程交换机模块示意图;
图2为根据本发明实施例的数据平面模块对数据包的处理流程示意图;
图3为根据本发明实施例的控制平面模块对匹配动作表动态更新流程示意图;
图4为根据本发明实施例的域名解析服务加速系统示意图。
具体实施方式
为了使本发明的目的,技术方案及优点更加清楚明白,以下通过具体实施例对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
发明人在进行域名解析加速技术研究时,发现现有降低域名解析服务时延的技术方案中,以背景技术中所述的针对原有域名解析服务技术的解析算法或过程等进行改进的技术方案,未考虑对域名解析服务的系统结构进行改进,使得这些技术方案的加速效果有限;基于可编程交换机进行域名解析加速的方案,虽通过改进域名解析服务的整体结构,较大幅度的降低了域名解析服务的时延。但由于现有实现方案存在对变长域名解析的支持度低、域名动态更新算法较为简单、控制平面缺乏灵活性等局限性,使其实用性较差。
为了解决上述问题,本发明借助软件定义网络(Software Defined Networking,SDN))领域新兴的硬件可编程技术,提出了一种基于可编程交换机的域名解析加速方案,将域名解析服务从DNS服务器卸载到可编程交换机,并通过编写定制化的数据平面与控制平面程序,解决了变长域名解析的问题。同时支持利用DNS首部的复杂信息实现丰富的处理逻辑以及动态更新域名-IP映射关系的功能,从而达到减少网络中的DNS流量、降低域名解析服务时延、最终提升域名解析服务性能的技术效果的目的。
根据本发明的一个实施例,如图1所示,提供一种支持域名解析的可编程交换机,其接收来自于客户端的DNS请求报文、来自于DNS服务器的DNS应答报文、非DNS协议对应的数据包,所述可编程交换机存储有转发表且所述可编程交换机包括:数据平面模块和控制平面模块,其中,所述数据平面模块存储有用于支持域名解析的匹配-动作表,所述匹配-动作表中包含多个表项,每个表项存储有一个域名-IP地址映射关系、以及对应于该映射关系的网络报文的处理逻辑,其中,所述数据平面模块用于按照匹配-动作表中的域名-IP地址映射关系对来自于DNS请求报文进行域名解析并按照对应域名-IP地址映射关系的处理逻辑对数据包进行处理以实现对客户端的应答、将来自于DNS服务器的DNS应答报文转发到对应的客户端、将非DNS协议对应的数据包根据转发表选择对应的端口转发出去;所述控制平面模块用于增添或删除所述数据平面模块中的匹配-动作表表项。
根据本发明的一个实施例,本发明使用P4语言编写可编程交换机的数据包处理逻辑并实现数据平面和控制平面的分离,具体地,通过编写执行P4程序来自定义可编程交换机芯片中数据平面模块对于数据包的处理方式,控制平面模块则可将匹配-动作表表项下发到数据平面模块,以供数据平面模块对不同数据包执行不同的操作。可编程交换机对数据包的具体处理逻辑主要由匹配-动作表表项实现,对于每一个收到的数据包,可编程交换机首先解析提取数据包中特定字段作为匹配关键字,在匹配-动作表中进行匹配,并根据匹配结果执行一系列的相应操作,包括对数据包内容的增添、删除,确定数据包的发送端口、广播端口等。此外,控制器可对数据平面的匹配-动作表内容进行修改,以更改数据平面的数据包处理逻辑。
为了更好地理解本发明,下面结合实施例进行详细说明。
首先介绍一下匹配动作表。表1所示为匹配动作表中的表项示例,以a.com为例,其对应的IP地址为1.1.1.1,与a.com-1.1.1.1这个映射关系相对应的数据包处理逻辑为执行动作中记录的所有事项。其中,针对不同类型不同长度的域名,其对应的域名-IP地址映射关系以及数据包处理逻辑均与该表项格式一致。
表1
根据本发明的一个实施例,如图2所示,可编程交换机的数据平面模块对数据包的处理流程包括:
S201、对于每一个由可编程交换机接收到的数据包,首先检查并提取所述数据包内容,当解析到UDP首部时,通过判断该数据包的目的端口号是否为53来判断该数据包的应用层协议是否为DNS协议。如果目的端口为53,则认为该数据包应用层协议为DNS协议,转入步骤S202;否则执行转发功能,根据可编程交换机存储的转发表将该数据包从合适的端口进行转发。
S202、如果所述数据包为DNS数据包,则根据步骤1的提取结果,通过该DNS数据包中DNS协议首部的QR(Question or Response)字段值判断该DNS数据包是否为DNS请求报文。表2所示为DNS数据包格式,其包括事务ID字段、标志、问题计数、回答资源记录数、权威名称服务器计数、附加资源记录数、查询问题区域、回答问题区域、权威名称服务器区域、附加信息区域。表3示出标志字段中包含的各个具体字段,其包括QR字段、Opcode字段、AA字段等。如果所述DNS数据包QR字段的值为0,则认为所述数据包为DNS请求报文,转入步骤S203执行;如QR字段的值为1,则认为所述数据包为DNS应答报文,转入步骤4执行。
表2
表3
QR | Opcode | AA | TC | RD | RA | Z | Reply code |
S203、如所述数据包为DNS请求报文,根据其UDP首部中的UDP报文长度字段,计算得到请求解析域名的长度,以请求解析的域名为关键字,根据请求解析的域名的长度,在可编程交换机存储的相应的匹配-动作表中进行匹配。匹配-动作表表项所存储的是匹配关键字与可编程交换机一系列操作的映射关系,所述操作包括修改数据包内容、确定数据包发送端口、是否与控制器通信等,因此确定匹配-动作表表项内容是实现可编程交换机处理逻辑的关键,操作动作由数据平面模块预先设定好。在本发明中,实现域名解析关键的操作是确定并附加所请求解析域名对应的IP地址的信息,相应的,匹配-动作表表项的匹配关键字为待解析的域名,匹配成功后执行的动作是基于域名的IP地址,在原DNS请求数据包后附加构造的资源记录部分。根据本发明的一个实施例,匹配-动作表表项可在交换机启动初期预置,也可以在运行过程中,通过捕获由域名解析服务器发送的DNS应答数据包来动态更新。
以针对a.com域名进行DNS解析为例。可编程交换收到针对a.com的解析请求后,经解析提取后,以a.com作为关键字在匹配-动作表中进行匹配,如域名匹配成功,则执行步骤S205按匹配-动作表表项中执行动作列描述的内容。
S204、如所述数据包为DNS应答报文,则在根据步骤1中提取的内容,得到DNS应答中域名-IP地址映射关系,并将该映射关系与计算得到的域名长度构造成一个三元组发送到控制器进行处理。同时对该数据包执行步骤S206。
S205、对客户端进行应答。仍然以a.com域名为例,匹配成功后,根据所命中的匹配-动作表表项中的IP地址值1.1.1.1,在原有的DNS请求报文后附加回答问题部分,同时对调该数据包的源IP地址与目的IP地址以及源MAC地址与目的MAC地址,并将修改后的数据包从可编程交换机接收该数据包的接收端口发送,从而在可编程交换机完成对该DNS请求的应答。如域名匹配失败,可编程交换机的匹配-动作表中未存储请求解析域名的信息,可编程交换机执行转发功能,将该DNS请求报文转发至DNS服务器,由DNS服务器进行后续的域名解析工作。
S206、执行转发功能,根据转发表内容将数据包从合适的端口发送,完成DNS应答报文对应的域名解析请求的应答。
根据本发明的一个实施例,可编程交换机的控制平面模块接收到数据平面模块转发的三元组后,对三元组的处理流程包括:对于所有接收到的三元组,控制平面模块中的程序首先获取域名长度信息,按域名长度的不同将域名-IP映射关系下发到数据平面模块相应的匹配-动作表以在匹配-动作表中增加该域名-IP地址映射关系对应的表项。同时在控制平面模块内存储所有的域名-IP映射关系,并为其初始化TTL(Time To Live)值,用于指示域名-IP映射关系的生命周期。控制平面模块同时维护一个计时器,如图3所示,该计时器每秒将控制平面模块所记录的所有域名-IP映射关系的TTL值减1,当对应的记录的TTL值减为0后,控制平面模块将该记录从其中删除,并向数据平面模块下发指令,从匹配-动作表中删除该域名-IP映射关系所对应的表项,实现记录的动态更新,避免过时的域名解析信息造成域名解析服务失效,同时避免可编程交换机因长期缓存不常用域名而造成的缓存空间不足与查询性能下降的问题。
由此可见,控制平面模块实现的功能主要有两点:一是根据接收到的域名-IP地址映射关系,获取应答报文资源记录部分的域名与资源数据部分内容,即请求解析的域名与该域名对应的IP地址,并将这对域名-IP地址的映射关系下发到可编程交换机数据平面模块的匹配-动作表中;二是在控制平面模块的存储空间中记录上述映射关系,并为每一对映射关系分别设置一个计时器,当映射关系到达事先规定的生存时间后,便向数据平面模块下发命令,从匹配-动作表中删除该映射关系,以实现表项的动态更新。
根据本发明的一个实施例,如图4所示,提供一种基于本发明可编程交换机的域名解析加速系统,所述系统包括:客户端101、可编程交换机102、可编程交换机数据平面模块103、可编程交换机控制平面模块104,此外还有本地DNS服务器105与对等节点的DNS服务器106,其中,所述客户端101向可编程交换机102发送DNS请求报文并接收来自于可编程交换机的DNS应答报文;所述可编程交换机用于根据其存储的匹配-动作表中的域名-IP地址映射关系对DNS请求报文进行域名解析并按照对应域名-IP地址映射关系的处理逻辑对数据包进行处理以实现对DNS请求报文的应答、将来自于DNS服务器的DNS应答报文转发到对应的客户端以及将无对应的域名-IP地址映射关系的DNS请求报文转发给本地DNS服务器;所述本地DNS服务器105用于对在可编程交换机中无对应域名-IP地址映射关系的DNS请求报文进行解析以及在其解析服务是失效时将DNS请求报文发送给对等节点的DNS服务器;所述对等节点的DNS服务器106用于对接收到的DNS请求报文进行域名解析。需要说明的是,本网络结构示意图仅作为描述原理的示例,不代表实际网络结构中的设备连接情况,实际网络结构中一台可编程交换机可与多个客户端、DNS服务器建立连接,一个客户端也可与多个可编程交换机建立连接。客户端101与可编程交换机102之间可进行双向通信。客户端的所有网络流量均通过可编程交换机102进行转发。特别的,当客户端101使用域名解析服务时,将由可编程交换机102转发客户端101发送的DNS请求报文。其中可编程交换机数据平面模块103实现转发功能,负责进行客户端101与其它网络节点间通信时的转发工作。针对域名解析服务,可编程交换机数据平面模块103需负责客户端101与本地DNS服务器105间数据包的转发工作,详细的处理步骤如上述实施例所述,此处不再赘述。此外,可编程交换机数据平面模块103可与可编程交换机控制平面模块104进行双向通信,数据平面模块103会将特定数据包或数据包特定字段的摘要(其中,特定数据包尤其指来自于DNS服务器的DNS应答报文)转发至控制平面模块104处理,控制平面模块104可以根据对所述数据包或字段的处理情况对数据平面模块103中匹配-动作表表项进行增添或删除操作,应说明的是,控制平面模块对数据平面模块的操作并不依赖于数据平面模块所提供的数据包或字段,控制平面模块也可根据其它可事先定义的处理逻辑对数据平面模块进行控制。针对包括DNS请求报文与DNS应答报文在内的域名解析服务相关数据包,控制平面模块104详细的处理步骤前述实施例所述,此处不再赘述。
从上述实施例可以看出,本发明通过将域名解析服务从DNS服务器卸载到可编程交换机上,实现降低域名解析时延、减少网络中DNS流量的效果,从而提升域名解析服务的性能。
与现有技术相比,本发明提出的一种支持域名解析的可编程交换机通过改变数据平面对数据包的处理逻辑,使可编程交换机可以在数据平面对域名解析请求与应答报文进行识别解析与进一步处理,对于DNS请求报文,如果所述报文中请求解析的域名可在所述可编程交换机数据平面的匹配-动作表(match-action table)中匹配成功,则由所述可编程交换机对所述DNS请求报文直接进行应答,大大的降低域名解析延迟,对于匹配不成功的则由所述可编程交换机转发所述DNS请求报文到DNS服务器进行域名解析;对于DNS应答报文,所述可编程交换机数据平面模块将所述DNS应答报文传至控制平面模块进行后续处理。本发明在控制平面模块更改可编程交换机匹配-动作表表项以改变数据平面处理逻辑的方法,在所述控制平面编写针对数据平面上传报文的处理程序,提取DNS应答报文中域名与IP的映射关系,并根据所述映射关系改变可编程交换机内匹配-动作表内容,实现数据平面根据所述映射关系针对所述域名的DNS请求应答所述IP地址的功能。本发明通过将域名解析服务卸载到可编程交换机,在保证域名解析服务功能准确性与可用性的前提下降低了服务的时延,同时减轻了域名解析服务器的负载。
需要说明的是,虽然上文按照特定顺序描述了各个步骤,但是并不意味着必须按照上述特定顺序来执行各个步骤,实际上,这些步骤中的一些可以并发执行,甚至改变顺序,只要能够实现所需要的功能即可。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以包括但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种支持域名解析的可编程交换机,用于接收来自于客户端的DNS请求报文、来自于DNS服务器的DNS应答报文、非DNS协议对应的数据包,其特征在于,所述可编程交换机存储有转发表且所述可编程交换机包括:
数据平面模块,其存储有用于支持域名解析的匹配-动作表,所述匹配-动作表中包含多个表项,每个表项存储有一个域名-IP地址映射关系、以及对应于该映射关系的网络报文的处理逻辑,其中,所述数据平面模块用于按照匹配-动作表中的域名-IP地址映射关系对来自于DNS请求报文进行域名解析并按照对应域名-IP地址映射关系的处理逻辑对数据包进行处理以实现对客户端的应答、将来自于DNS服务器的DNS应答报文转发到对应的客户端、将非DNS协议对应的数据包根据转发表选择对应的端口转发出去;
控制平面模块,用于增添或删除所述数据平面模块中的匹配-动作表表项。
2.根据权利要求1所述的可编程交换机,其特征在于,所述匹配-动作表是在可编程交换机启动初期进行预置或在可编程交换机运行过程中由所述控制平面模块进行动态更新。
3.根据权利要求1所述的可编程交换机,其特征在于,所述匹配-动作表表项中的对应于域名-IP地址映射关系的网络报文处理逻辑包括:
对数据包的内容进行增添或删除、确定数据包的发送端口或广播端口、是否与控制平面模块通信。
4.根据权利要求3所述的可编程交换机,其特征在于,所述数据平面模块被配置为按照如下方式对接收到的网络报文进行处理:
S1、检查并提取网络报文的内容以根据网络报文首部判断该网络报文的应用层协议是否为DNS协议,并根据交换机存储的转发表选择对应的端口将非DNS协议对应的数据包转发出去;
S2、针对DNS协议对应的网络报文,根据网络报文中协议首部QR字段值判断网络报文是DNS请求报文还是DNS应答报文;
S3、针对DNS请求报文,根据其UDP首部中的UDP报文长度字段计算得到请求解析的域名长度,并以请求解析的域名为关键字、根据请求解析的域名长度在匹配-动作表中进行匹配以搜索是否有对应表项,匹配成功时将DNS请求报文按照其对应表项的处理逻辑进行处理,匹配不成功时将DNS请求报文转发给DNS服务器;针对DNS应答报文,根据数据包中的应答内容提取域名-IP地址映射关系,并将该映射关系与域名长度组成三元组发送给控制平面模块。
5.根据权利要求4所述的可编程交换机,其特征在于,所述控制平面模块被配置为按照如下方式对匹配-动作表进行表项增添:
根据接收到的数据平面模块发送的三元组,获取DNS应答报文中的域名-IP地址对应关系,并将该域名-IP地址对应关系下发到数据平面模块的匹配-动作表中以进行表项添加。
6.根据权利要求5所述的可编程交换机,其特征在于,所述控制平面模块被配置为按照如下方式对匹配-动作表进行表项删除:
控制平面模块将域名-IP地址映射关系下发到数据平面模块的匹配-动作表中的同时,在其自身存储空间中存储该域名-IP地址映射关系,并为每一个映射关系设置一个计时器用于预先设置该映射关系的生存时间,并在映射关系达到预先设置的生存时间时,向数据平面模块下发删除该映射关系的指令。
7.一种基于权利要求1-6任一所述可编程交换机的网络报文处理方法,其特征在于,所述方法包括:
T1、接收网络报文,检查并提取网络报文的内容以根据网络报文UDP首部判断该网络报文的应用层协议是否为DNS协议,并根据交换机存储的转发表选择对应的端口将非DNS协议对应的数据包转发出去;
T2、判断DNS对应的数据包是DNS请求报文还是DNS应答报文,按照可编程交换机中的匹配-动作表中的域名-IP地址映射关系对DNS请求报文进行域名解析并按照对应域名-IP地址映射关系的处理逻辑对数据包进行处理,将DNS应答报文转发到对应的客户端。
8.一种域名解析服务加速系统,其与本地DNS服务器相连,本地DNS服务器与对等节点的DNS服务器相连,其特征在于,所述系统包括一个或者多个客户端以及如权利要去1-6任一所述的可编程交换机,其中:
所述客户端向可编程交换机发送DNS请求报文并接收来自于可编程交换机的DNS应答报文;
所述可编程交换机用于根据其存储的匹配-动作表中的域名-IP地址映射关系对DNS请求报文进行域名解析并按照对应域名-IP地址映射关系的处理逻辑对数据包进行处理以实现对DNS请求报文的应答、将来自于DNS服务器的DNS应答报文转发到对应的客户端以及将无对应的域名-IP地址映射关系的DNS请求报文转发给本地DNS服务器;
所述本地DNS服务器用于对在可编程交换机中无对应域名-IP地址映射关系的DNS请求报文进行解析以及在其解析服务是失效时将DNS请求报文发送给对等节点的DNS服务器;
所述对等节点的DNS服务器用于对接收到的DNS请求报文进行域名解析。
9.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,所述计算机程序可被处理器执行以实现权利要求7所述方法的步骤。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述电子设备实现如权利要求7所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210570514.5A CN115022283A (zh) | 2022-05-24 | 2022-05-24 | 一种支持域名解析的可编程交换机以及网络报文处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210570514.5A CN115022283A (zh) | 2022-05-24 | 2022-05-24 | 一种支持域名解析的可编程交换机以及网络报文处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115022283A true CN115022283A (zh) | 2022-09-06 |
Family
ID=83068290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210570514.5A Pending CN115022283A (zh) | 2022-05-24 | 2022-05-24 | 一种支持域名解析的可编程交换机以及网络报文处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115022283A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111797341A (zh) * | 2020-06-22 | 2020-10-20 | 电子科技大学 | 一种基于可编程交换机的网内缓存方法 |
CN116132018A (zh) * | 2022-12-20 | 2023-05-16 | 暨南大学 | 一种在p4可编程交换机上实现sha256算法的方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104767690A (zh) * | 2014-01-08 | 2015-07-08 | 杭州迪普科技有限公司 | 一种流量调度装置及方法 |
US20150295887A1 (en) * | 2014-04-09 | 2015-10-15 | Canon Kabushiki Kaisha | Communication apparatus, control method, and storage medium |
CN110855632A (zh) * | 2019-10-24 | 2020-02-28 | 新华三信息安全技术有限公司 | 报文检测方法、装置、网络设备和计算机可读存储介质 |
CN113992626A (zh) * | 2021-10-22 | 2022-01-28 | 浪潮思科网络科技有限公司 | 一种实现dns的方法、设备、存储介质 |
-
2022
- 2022-05-24 CN CN202210570514.5A patent/CN115022283A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104767690A (zh) * | 2014-01-08 | 2015-07-08 | 杭州迪普科技有限公司 | 一种流量调度装置及方法 |
US20150295887A1 (en) * | 2014-04-09 | 2015-10-15 | Canon Kabushiki Kaisha | Communication apparatus, control method, and storage medium |
CN110855632A (zh) * | 2019-10-24 | 2020-02-28 | 新华三信息安全技术有限公司 | 报文检测方法、装置、网络设备和计算机可读存储介质 |
CN113992626A (zh) * | 2021-10-22 | 2022-01-28 | 浪潮思科网络科技有限公司 | 一种实现dns的方法、设备、存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111797341A (zh) * | 2020-06-22 | 2020-10-20 | 电子科技大学 | 一种基于可编程交换机的网内缓存方法 |
CN111797341B (zh) * | 2020-06-22 | 2023-04-18 | 电子科技大学 | 一种基于可编程交换机的网内缓存方法 |
CN116132018A (zh) * | 2022-12-20 | 2023-05-16 | 暨南大学 | 一种在p4可编程交换机上实现sha256算法的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10826869B2 (en) | Domain name resolution method, server and storage medium | |
CN115022283A (zh) | 一种支持域名解析的可编程交换机以及网络报文处理方法 | |
US20190081923A1 (en) | Method and system for increasing speed of domain name system resolution within a computing device | |
US20240214345A1 (en) | Message Forwarding and Domain Name Address Querying | |
US8156249B2 (en) | Using server type to obtain network address | |
US20150381557A1 (en) | Container name server and method for container name resolution | |
US20130290563A1 (en) | Answer augmentation system for authoritative dns servers | |
US9848059B2 (en) | Content handling method, apparatus, and system | |
CN109525684B (zh) | 报文转发方法和装置 | |
WO2021042673A1 (zh) | Dns解析方法、权威dns服务器和dns解析系统 | |
CN110012118B (zh) | 一种提供网络地址转换nat服务的方法及控制器 | |
WO2017096888A1 (zh) | 域名解析系统的实现方法及装置 | |
US20160323138A1 (en) | Scalable Event-Based Notifications | |
US20190081924A1 (en) | Discovering address mobility events using dynamic domain name services | |
JP2014508350A (ja) | 企業ネットワークの外部から分散ファイルシステムへのサイト認識アクセス | |
US11843650B2 (en) | Two-level cache architecture for live video streaming through hybrid ICN | |
CN109413224B (zh) | 报文转发方法和装置 | |
US10122630B1 (en) | Methods for network traffic presteering and devices thereof | |
US10009258B2 (en) | Methods, systems, and computer readable media for routing a redirected request message | |
EP2719118B1 (en) | Routing by resolution | |
CN109495525B (zh) | 网络组件、解析内容标识的方法和计算机可读存储介质 | |
JP6096464B2 (ja) | プロキシ装置及び中継装置 | |
CN114785733A (zh) | 一种实现跨vpc网络流量转发中会话溯源的方法 | |
JP5597872B2 (ja) | 分散情報処理システム、分散情報処理方法及びデータ転送装置 | |
US20180367452A1 (en) | Information centric networking over multi-access network interfaces |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220906 |