CN112019492B - 访问控制方法、装置及存储介质 - Google Patents
访问控制方法、装置及存储介质 Download PDFInfo
- Publication number
- CN112019492B CN112019492B CN201910473326.9A CN201910473326A CN112019492B CN 112019492 B CN112019492 B CN 112019492B CN 201910473326 A CN201910473326 A CN 201910473326A CN 112019492 B CN112019492 B CN 112019492B
- Authority
- CN
- China
- Prior art keywords
- rule
- sub
- packet
- field
- tunnel endpoint
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
Abstract
本申请公开了一种访问控制方法、装置及存储介质,属于通信技术领域。所述方法包括:中间节点接收第一隧道端点发送的第一业务报文,第一业务报文是第一隧道端点对第二业务报文进行隧道封装后得到的;当第二业务报文的报文头信息匹配中间节点的第一目标子规则时,中间节点根据第一目标子规则,在第一业务报文的隧道封装头中设置分组标识;中间节点将设置有分组标识的第一业务报文发送给第二隧道端点,以指示第二隧道端点根据分组标识对第二业务报文进行处理。本申请将业务报文的控制逻辑分布在中间节点和隧道端点上,而不是仅仅分布在隧道端点上,这样,可以减少隧道端点上的资源消耗,还可以提高中间节点的资源利用率。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种访问控制方法、装置及存储介质。
背景技术
在虚拟化可扩展局域网(Virtual Extensible LAN,VXLAN)中,脊叶(Spine-Leaf)结构是一种较为典型的网络结构。这种网络结构通常包括有多个Spine节点和多个Leaf节点,Spine节点通常是VXLAN隧道的中间节点,Leaf节点通常是VXLAN隧道的端点。每个Spine节点均可以与每个Leaf节点进行通信,进而通过Spine节点可以实现两个Leaf节点之间的通信。当这种网络结构被部署在包括多个服务器的数据中心时,Leaf节点可以与服务器连接,这样,通过Leaf节点和Spine节点可以实现任意两个服务器之间的通信。
但是在某些情况下,可能需要对服务器的访问进行控制,因此,在Leaf节点上可以部署访问控制列表(Access Control List,ACL),以通过ACL实现服务器的访问控制。具体地,第一服务器可以向第一Leaf节点发送业务报文,第一Leaf节点接收到业务报文之后,对业务报文进行VXLAN封装,将VXLAN封装的业务报文发送给Spine节点,由Spine节点转发至第二Leaf节点。当第二Leaf节点接收到VXLAN封装的业务报文时,对该业务报文进行VXLAN解封装,将解封装后的业务报文与存储的ACL规则进行匹配,当与某一条规则匹配成功时,通过匹配成功的这条规则对解封装后的业务报文进行处理,从而实现对第二服务器的访问控制。
随着通信技术的发展,Leaf节点上可能需要部署很多不同业务,而这些业务需要通过ACL实现,因此Leaf节点上需要配置大量ACL规则,消耗大量资源,导致Leaf节点中的ACL出现资源匮乏,从而制约网络的业务部署能力。
发明内容
本申请提供了一种访问控制方法、装置及存储介质,可以解决相关技术中ACL资源匮乏的问题。所述技术方案如下:
第一方面,提供了一种访问控制方法,所述方法包括:
中间节点接收第一隧道端点发送的第一业务报文,所述第一业务报文是所述第一隧道端点对第二业务报文进行隧道封装后得到的;
当所述第二业务报文的报文头信息匹配所述中间节点的第一目标子规则时,所述中间节点根据所述第一目标子规则,在所述第一业务报文的隧道封装头中设置分组标识;
所述中间节点将设置有分组标识的第一业务报文发送给第二隧道端点,以指示所述第二隧道端点根据所述分组标识对所述第二业务报文进行处理。
由于中间节点接收到第一业务报文之后,并不是进行透传,而是将第一业务报文中封装的第二业务报文的报文头信息与自身存储的第一子规则进行匹配。当第二业务报文的报文头信息匹配第一目标子规则时,在第一业务报文的隧道封装头中设置分组标识,然后将设置有分组标识的第一业务报文发送给第二隧道端点。这样,在第二隧道端点接收到设置有分组标识的第一业务报文之后,可以按照该分组标识对第二业务报文进行处理。也即是,本申请通过中间节点进行报文头信息与子规则的匹配,第二隧道端点无需进行报文头信息与子规则的匹配,这样,就可以减少第二隧道端点上的资源消耗,还可以提高中间节点的资源利用率。
第二业务报文的报文头信息可以为第二业务报文的五元组信息,当然,也可以为其他的信息,比如,第二业务报文中的媒体接入控制(Medium Access Control,MAC)地址等等。下面,本申请将以第二业务报文的五元组信息为例进行说明。
需要说明的是,当第一业务报文中封装的第二业务报文的报文头信息未匹配中间节点中存储的任一第一子规则时,中间节点可以将第一业务报文进行透传。也即是,直接传输给第二隧道端点。
由于有的业务报文需要中间节点进行透传,而有的业务报文则需要中间节点在隧道封装头中设置分组标识。当中间节点对这些业务报文进行不同操作时,第二隧道端点对这些业务报文进行的操作也会不同。因此,为了便于区分,当中间节点在业务报文的隧道封装头中设置分组标识时,可以将该隧道封装头中的分布式ACL指示设置为第一数值。这样,第二隧道端点可以按照该隧道封装头中的分布式ACL指示的数值来确定这个业务报文的处理操作。
也即是,在一些实现中,分组标识包括分布式ACL指示和分组字段,中间节点根据所述第一目标子规则,在所述第一业务报文的隧道封装头中设置分组标识,包括:将所述隧道封装头中的所述分布式ACL指示设置为第一数值;根据所述第一目标子规则,设置所述分组字段。
为了实现访问控制,中间节点存储的一条或多条第一子规则中通常包括有动作类型,因此,在一些实现中,中间节点根据所述第一目标子规则,设置所述分组字段,包括:根据所述第一目标子规则中的第一动作类型,将所述分组字段中的动作类型字段中的第一目标比特位设置为第二数值,所述第一目标比特位与所述第一动作类型对应。这样,可以通过动作类型字段中不同的比特位指示不同的动作类型。
作为一种示例,中间节点中可以存储有动作类型与比特位编号之间的对应关系。这样,中间节点可以根据第一动作类型,从存储的动作类型与比特位编号之间对应关系中,获取对应的比特位编号,并将该比特位编号所指示的比特位确定为第一目标比特位。
在某些情况下,中间节点存储的一条或多条第一子规则中还可以包括动作参数,也即是,所述第一目标子规则还包括第一动作参数,所述第一动作参数与所述第一动作类型对应。这样,中间节点根据所述第一目标子规则,设置所述分组字段,还包括:将所述分组字段中的动作参数字段中的第二目标比特位设置为第三数值,所述第二目标比特位与所述第一动作参数对应,从而可以通过动作参数字段中不同的比特位指示不同的动作参数。
但是由于不同的第一子规则可以包括不同的参数,当第一子规则的数量较多时,这些不同参数的数量也较多,而动作参数字段内的比特位的数量有限,因此,在另一些实现中,在中间节点将该分组字段中的动作类型字段中的第一目标比特位设置为第二数值之后,还可以按照第四数值设置所述分组字段中的动作参数字段中的每个比特位,以使所述动作参数字段中的比特位对应的十进制数与所述第四数值相等,所述第四数值与所述第一动作参数对应。也即是,通过该动作参数字段中的比特位对应的十进制来表示第二子规则中的参数。通过这种方式能够表示的参数的数量将远远大于通过比特位能够表示的参数的数量。
在某些情况下,中间节点存储的一条或多条第一子规则中可能会包括多个动作类型,也即是,第一目标子规则中不仅可以包括第一动作类型,而且第一目标子规则还可以包括第二动作类型。此时,中间节点根据所述第一目标子规则,设置所述分组字段,还包括:将所述动作类型字段中的第三目标比特位设置为第五数值,所述第三目标比特位与所述第二动作类型对应。这样,通过该动作参数字段中的第三目标比特位上的数值即可确定对应的第二动作类型。
第二方面,提供了一种访问控制方法,所述方法包括:
第二隧道端点接收中间节点发送的第一业务报文,所述第一业务报文包括隧道封装头,所述隧道封装头中包括第一隧道端点的标识和所述第二隧道端点的标识,所述隧道封装头中还包括分组标识;
所述第二隧道端点对所述第一业务报文进行解封装,得到所述第二业务报文;
所述第二隧道端点确定所述第二隧道端点中与所述分组标识匹配的第二目标子规则;
所述第二隧道端点根据所述第二目标子规则对所述第二业务报文进行处理。
由于中间节点在第一业务报文中设置有分组标识,因此,在第二隧道端点接收到设置有分组标识的第一业务报文之后,可以直接确定分组标识所匹配的子规则,即第二目标子规则,进而按照第二目标子规则对第二业务报文进行处理。这样,在第二隧道端点中不仅可以对第一计算机设备发出的业务报文进行控制,还可以对发送给第二计算机设备的业务报文进行控制。而且,第二隧道端点无需进行报文头信息与子规则的匹配,这样,就可以减少第二隧道端点上的资源消耗。
分组标识可以包括分布式ACL指示和分组字段,因此,在一些实现中,第二隧道端点确定所述第二隧道端点中与所述分组标识匹配的第二目标子规则,包括:根据所述分布式ACL指示和分组字段,确定所述第二目标子规则。
在一些实现中,分组字段可以包括动作类型字段,第二隧道端点中可以存储有一条或多条第二子规则,且第二隧道端点存储的每条第二子规则具有一定的优先级,因此,第二隧道端点根据所述分布式ACL指示和所述分组字段,确定所述第二目标子规则,包括:若所述分布式ACL指示为第一数值,则按照所述第二隧道端点中的子规则的优先级顺序,将首个与所述分组字段中的动作类型字段内的比特位匹配的子规则确定为所述第二目标子规则。
在另一些实现中,分组字段还可以包括动作参数字段,这样,第二隧道端点按照所述第二隧道端点中的子规则的优先级顺序,将首个与所述分组字段中的动作类型字段内的比特位匹配的子规则确定为所述第二目标子规则,包括:按照所述第二隧道端点中的子规则的优先级顺序,将首个与所述分组字段中的动作类型字段内的比特位以及所述分组字段中的动作参数字段内的比特位匹配的子规则确定所述第二目标子规则。
第三方面,提供了一种访问控制装置,所述访问控制装置具有实现上述第一方面或者第二方面中访问控制方法行为的功能。所述访问控制装置包括至少一个模块,所述至少一个模块用于实现上述第一方面或者第二方面所提供的访问控制方法。
第四方面,提供了一种访问控制装置,所述访问控制装置的结构中包括处理器和存储器,所述存储器用于存储支持访问控制装置执行上述第一方面或者第二方面所提供的访问控制方法的程序,以及存储用于实现上述第一方面或者第二方面所述的访问控制方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。所述访问控制装置还可以包括通信总线,所述通信总线用于在所述处理器与所述存储器之间建立连接。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或者第二方面所述的访问控制方法。
第六方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或者第二方面所述的访问控制方法。
上述第三方面、第四方面、第五方面和第六方面所获得的技术效果与上述第一方面和第二方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
本申请提供的技术方案至少可以带来以下有益效果:由于第一业务报文是对第二业务报文进行隧道封装之后得到的,因此,在中间节点接收到第一隧道端点发送的第一业务报文之后,可以确定第一业务报文中封装的第二业务报文的报文头信息在中间节点中所匹配的子规则,即第一目标子规则。当确定第一目标子规则之后,可以在第一业务报文的隧道封装头中设置分组标识。这样,当第二隧道端点接收到设置有分组标识的第一业务报文之后,可以直接确定分组标识所匹配的子规则,即第二目标子规则,进而按照第二目标子规则对第二业务报文进行处理。这样,在第二隧道端点中不仅可以对第一计算机设备发出的业务报文进行控制,还可以对发送给第二计算机设备的业务报文进行控制。而且,第一目标子规则和第二目标子规则可以为传统的ACL规则拆分后得到的,这样,业务报文的控制逻辑分布在中间节点和第二隧道端点上,而不是仅仅分布在第二隧道端点上,并且第二隧道端点只需要按照分组标识对应的动作类型对第二业务报文进行处理,无需按照报文头信息进行匹配,从而可以减少第二隧道端点上的资源消耗,还可以提高中间节点的资源利用率。
附图说明
图1是根据本申请实施例示出的一种网络架构的示意图。
图2是根据本申请实施例示出的一种计算机设备的结构示意图。
图3是根据本申请实施例示出的一种网络设备的结构示意图。
图4是根据本申请实施例示出的一种主控板的结构示意图。
图5是根据本申请实施例示出的一种接口板的结构示意图。
图6是根据本申请实施例示出的一种访问控制方法的流程图。
图7是根据本申请实施例示出的一种VXLAN封装头的结构示意图。
图8是根据本申请实施例示出的一种访问控制装置的结构示意图。
图9是根据本申请实施例示出的一种访问控制装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请的实施方式作进一步地详细描述。
请参考图1,图1是根据本申请实施例示出的一种网络架构示意图。该网络架构包括多个计算机设备101、多个隧道端点102和多个中间节点103。一个计算机设备101与一个隧道端点102之间建立有通信连接,每个隧道端点102与每个中间节点103之间建立有通信连接。可选地,为了提高计算机设备101与隧道端点102之间的通信可靠性,一个计算机设备101也可以与两个或者两个以上的隧道端点102建立通信连接,此时,这两个或者两个以上的隧道端点102可以互为备份节点。该多个计算机设备101可以为服务器、防火墙、负载均衡器等等,服务器可以为虚拟机,也可以为裸机,即不包括操作系统的机器。示例性地,当该网络架构为Spine-Leaf结构时,隧道端点102可以为Leaf节点,中间节点103可以为Spine节点。
通常情况下,任意两个计算机设备101通过上述网络架构进行通信的方式为:第一计算机设备可以向第一隧道端点102发送业务报文。第一隧道端点102接收到该业务报文之后,可以对该业务报文进行隧道封装,然后将隧道封装后的业务报文发送给一个中间节点103,该中间节点103可以将接收到的业务报文根据隧道封装头透传给第二隧道端点102。第二隧道端点102接收到该中间节点103发送的业务报文之后,可以对接收到的业务报文进行隧道解封装,然后将解封装后的业务报文发送给第二计算机设备,从而实现两个计算机设备之间的通信。其中,第一隧道端点102可以为与第一计算机设备建立通信连接的一个隧道端点,第二隧道端点102可以为与第二计算机设备建立通信连接的一个隧道端点。
举例来说,隧道端点102对业务报文进行的隧道封装可以为VXLAN封装。当然,隧道端点102也可以采用其他技术,例如,多连接透明互连(Transparent Interconnection ofLots of Links,TRILL)对业务报文进行隧道封装,本申请实施例对此不做限定。
可选地,请参考图2,该网络架构还可以包括多个隧道端点104和多个运营商边缘设备105,每个隧道端点104与每个中间节点103之间建立有通信连接,一个隧道端点104还可以与一个或多个运营商边缘设备105连接,以实现计算机设备101与外网的其他设备进行交互。示例地,计算机设备101向隧道端点102发送业务报文。隧道端点102接收到该业务报文之后,可以对该业务报文进行隧道封装,然后将隧道封装后的业务报文发送给一个中间节点103,该中间节点103可以将接收到的业务报文透传给隧道端点104。隧道端点104接收到该中间节点103发送的业务报文之后,可以对接收到的业务报文进行隧道解封装,然后将解封装后的业务报文发送给运营商边缘设备105,从而通过运营商边缘设备105发送给其他的设备。
请参考图3,图3是根据本申请实施例示出的一种计算机设备的结构示意图,该计算机设备可以是图1中所示的计算机设备101。该计算机设备包括至少一个处理器301、通信总线302、存储器303以及至少一个通信接口304。
处理器301可以是一个通用中央处理器(Central Processing Unit,CPU)、网络处理器(NP)、微处理器、或者可以是一个或多个用于实现本申请方案的集成电路,例如,专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
通信总线302用于在上述组件之间传送信息。通信总线302可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器303可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,也可以是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。存储器303可以是独立存在,并通过通信总线302与处理器301相连接。存储器303也可以和处理器301集成在一起。
通信接口304使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信接口304包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(WirelessLocal Area Networks,WLAN)接口,蜂窝网络通信接口或其组合等。
在具体实现中,作为一种实施例,处理器301可以包括一个或多个CPU,如图3中所示的CPU0和CPU1。
在具体实现中,作为一种实施例,计算机设备可以包括多个处理器,如图3中所示的处理器301和处理器305。这些处理器中的每一个可以是一个单核处理器(single-CPU),也可以是一个多核处理器(multi-CPU)。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在具体实现中,作为一种实施例,计算机设备还可以包括输出设备306和输入设备307。输出设备306和处理器301通信,可以以多种方式来显示信息。例如,输出设备306可以是液晶显示器(liquid crystal display,LCD)、发光二级管(light emitting diode,LED)显示设备、阴极射线管(cathode ray tube,CRT)显示设备或投影仪(projector)等。输入设备307和处理器301通信,可以以多种方式接收用户的输入。例如,输入设备307可以是鼠标、键盘、触摸屏设备或传感设备等。
在一些实施例中,存储器303用于存储执行本申请方案的程序代码310,处理器301可以执行存储器303中存储的程序代码310。也即是,该计算机设备可以通过处理器301以及存储器303中的程序代码310,来实现下文图6实施例提供的访问控制方法。
请参考图4,图4是根据本申请实施例示出的一种网络设备的结构示意图,该网络设备可以是图1中所示的中间节点103。该网络设备包括至少一个处理器401、通信总线402、存储器403以及至少一个通信接口404。
处理器401可以是一个通用CPU、网络处理器(NP)、微处理器、或者可以是一个或多个用于实现本申请方案的集成电路,例如,ASIC,PLD或其组合。上述PLD可以是CPLD,FPGA,GAL或其任意组合。
通信总线402用于在上述组件之间传送信息。通信总线402可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器403可以是ROM或可存储静态信息和指令的其它类型的静态存储设备,也可以是RAM或者可存储信息和指令的其它类型的动态存储设备,也可以是EEPROM、CD-ROM或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由处理器401存取的任何其它介质,但不限于此。
需要说明的是,存储器403可以是独立存在,并通过通信总线402与处理器401相连接。存储器403也可以和处理器401集成在一起。
通信接口404使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信接口404包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为WLAN接口,蜂窝网络通信接口或其组合等。
在具体实现中,作为一种实施例,处理器401可以包括一个或多个CPU,如图4中所示的CPU0和CPU1。
在具体实现中,作为一种实施例,网络设备可以包括多个处理器,如图4中所示的处理器401和处理器405。这些处理器中的每一个可以是一个单核处理器,也可以是一个多核处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在一些实施例中,存储器403用于存储多个第一子规则,以及报文头信息与分组标识之间的对应关系,即动作类型与比特位编号之间的对应关系,以及动作参数与比特位编号之间的对应关系,或者,动作参数与十进制数之间的对应关系。
可选地,存储器403中还用于存储执行本申请方案的程序代码410。在接收到第一业务报文时,处理器401可以调用存储器403中存储的程序代码410,通过执行这个程序代码410,确定与第一业务报文中封装的第二业务报文的报文头信息匹配的第一目标子规则,进而按照第一目标子规则从存储器403中确定对应的分组标识,从而在第一业务报文中设置分组标识。也即是,该网络设备可以通过处理器401以及存储器403中的程序代码410,来实现下文图6实施例提供的访问控制方法。
请参考图5,图5是根据本申请实施例示出的一种网络设备的结构示意图,该网络设备可以是图1中所示的隧道端点102。该网络设备包括至少一个处理器501、通信总线502、存储器503以及至少一个通信接口504。
处理器501可以是一个通用CPU、网络处理器(NP)、微处理器、或者可以是一个或多个用于实现本申请方案的集成电路,例如,ASIC,PLD或其组合。上述PLD可以是CPLD,FPGA,GAL或其任意组合。
通信总线502用于在上述组件之间传送信息。通信总线402可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器503可以是ROM或可存储静态信息和指令的其它类型的静态存储设备,也可以是RAM或者可存储信息和指令的其它类型的动态存储设备,也可以是EEPROM、CD-ROM或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由处理器501存取的任何其它介质,但不限于此。
需要说明的是,存储器503可以是独立存在,并通过通信总线502与处理器501相连接。存储器503也可以和处理器501集成在一起。
通信接口504使用任何收发器一类的装置,用于与其它设备或通信网络通信。通信接口404包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为WLAN接口,蜂窝网络通信接口或其组合等。
在具体实现中,作为一种实施例,处理器501可以包括一个或多个CPU,如图5中所示的CPU0和CPU1。
在具体实现中,作为一种实施例,网络设备可以包括多个处理器,如图5中所示的处理器501和处理器505。这些处理器中的每一个可以是一个单核处理器,也可以是一个多核处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(如计算机程序指令)的处理核。
在一些实施例中,存储器503用于存储多个第二子规则。可选地,存储器403中还用于存储执行本申请方案的程序代码410。在接收到设置有分组标识的第一业务报文时,处理器401可以调用存储器403中存储的程序代码410,通过执行这个程序代码410,按照设置的分组标识,从存储器403中确定匹配的第二目标子规则,从而按照第二目标子规则对第一业务报文中封装的第二业务报文进行处理。也即是,该网络设备可以通过处理器401以及存储器403中的程序代码410,来实现下文图6实施例提供的访问控制方法。
请参考图6,图6是根据本申请实施例示出的一种访问控制方法的流程图。参见图6,该方法包括以下步骤。
步骤601:第一隧道端点接收第二业务报文,对第二业务报文进行隧道封装得到第一业务报文,并将第一业务报文发送给中间节点。
当业务报文要通过隧道传输时,需要在隧道端点进行封装和解封装。具体来说,隧道的入口端点对业务报文进行封装,也即,在业务报文的外层添加隧道封装头。隧道的出口端点对隧道封装的业务报文进行解封装,也即,去除隧道封装头。
本申请实施例中,第一隧道端点与第二隧道端点之间建立有隧道,例如VXLAN隧道,第一隧道端点是隧道的入口端点,第二隧道端点是隧道的出口端点,中间节点是隧道所经过的网络节点。
在一些实施例中,第一隧道端点可以接收与其连接的计算机设备发送的第二业务报文,然后,对第二业务报文进行隧道封装得到第一业务报文。也即是,在第二业务报文上添加隧道封装头得到第一业务报文。该隧道封装头中包括第一隧道端点的标识和第二隧道端点的标识。
作为一种示例,当隧道端点与中间节点之间采用VXLAN进行通信时,第一隧道端点接收到第二业务报文之后,可以对第二业务报文进行VXLAN封装得到第一业务报文。也即是,在第二业务报文上添加VXLAN封装头得到第一业务报文。该VXLAN封装头中包括第一隧道端点的互联网协议(Internet Protocol,IP)地址和端口,以及第二隧道端点的IP地址和端口。
步骤602:中间节点接收第一隧道端点发送的第一业务报文,当第一业务报文中封装的第二业务报文的报文头信息匹配中间节点的第一目标子规则时,中间节点根据第一目标子规则,在第一业务报文的隧道封装头中设置分组标识。
在一些实施例中,中间节点可以存储有一条或多条第一子规则。当中间节点接收到第一隧道端点发送的第一业务报文时,可以获取第一业务报文中封装的第二业务报文的报文头信息,将获取的第二业务报文的报文头组信息与该一条或多条第一子规则进行匹配。当第二业务报文的报文头信息匹配该一条或多条子规则中的任一子规则时,可以将该任一子规则作为第一目标子规则。然后,根据第一目标子规则,在第一业务报文的隧道封装头中设置分组标识。
所述分组标识包括分布式ACL指示和分组字段,所述根据所述第一目标子规则,在所述第一业务报文的隧道封装头中设置分组标识,包括:将所述隧道封装头中的所述分布式ACL指示设置为第一数值;并根据所述第一目标子规则,设置所述分组字段。所述第一数值用于表示所述中间节点采用了分布式ACL方案,以指示隧道出口端点根据分组字段进行ACL规则匹配和处理。
设置分组标识的具体细节可参见后文。
步骤603:中间节点将设置有分组标识的第一业务报文发送给第二隧道端点。
在一些实施例中,第一隧道端点在第二业务报文中添加的隧道封装头中可以包括第一隧道端点的IP地址和端口,以及第二隧道端点的IP地址和端口。因此,当中间节点按照步骤602在第一业务报文的隧道封装头中设置分组标识之后,可以按照该隧道封装头中的第二隧道端点的IP地址和端口,将设置有分组标识的第一业务报文发送给第二隧道端点。
步骤604:第二隧道端点接收中间节点发送的第一业务报文,确定第一业务报文的隧道封装头中的分组标识。
可以理解,第二隧道端点接收中间节点发送的第一业务报文中包括隧道封装头,所述隧道封装头中包括第一隧道端点的标识和所述第二隧道端点的标识,所述隧道封装头中还包括分组标识。
当第二隧道端点接收到中间节点发送所述第一业务报文之后,第二隧道端点从所述第一业务报文的隧道封装头中获取所述分组标识。
步骤605:第二隧道端点对所述第一业务报文进行解封装,得到第二业务报文,确定第二隧道端点中与所述分组标识匹配的第二目标子规则。
所述分组标识包括分布式ACL指示和分组字段。若所述分布式ACL指示为第一数值,则表示所述中间节点进行了分布式ACL处理,所述第二隧道端点可以根据所述分组字段的值确定第二目标子规则。若所述分布式ACL指示不是所述第一数值,则表示所述中间节点没有进行分布式ACL处理,所述第二隧道端点可以采用传统方式处理所述第一业务报文,即对所述第一业务报文解封装得到第二业务报文后,根据所述第二业务报文的报文头信息进行ACL处理。
在一些实施例中,第二隧道端点中可以存储有一条或多条第二子规则。因此,第二隧道端点可以将确定的分组字段分别与该一条或多条第二子规则进行匹配。当分组字段匹配该一条或多条第二子规则中的任一子规则时,可以将该任一子规则作为第二目标子规则。
在另一些实施例中,第二隧道端点存储的每条第二子规则具有一定的优先级,在进行规则匹配时,可以按照该一条或多条第二子规则的优先级顺序,将首个与确定的分组字段匹配的子规则确定为第二目标子规则。
步骤606:第二隧道端点根据第二目标子规则对第二业务报文进行处理。
通常情况下,第二隧道端点存储的每条第二子规则中包括动作类型。因此,在第二隧道端点确定出第二目标子规则之后,可以按照第二目标子规则中的动作类型对第二业务报文进行处理。比如,第二目标子规则中的动作类型为允许(permit),那么,第二隧道端点可以将第二业务报文发送给第二计算机设备。
在上述步骤602中,第二业务报文的报文头信息可以为第二业务报文的五元组信息,当然,也可以为其他的信息,比如,第二业务报文中的MAC地址等等。下面,本申请实施例将以第二业务报文的五元组信息为例进行说明。
第二业务报文的五元组信息可以包括源IP地址、源端口、目的IP地址、目的端口和传输层协议。示例性地,假设第一计算机设备当前需要向第二计算机设备发送数据,那么,第二业务报文的五元组信息中的源IP地址和源端口为第一计算机设备的IP地址和端口,该五元组信息中的目的IP地址和目的端口为第二计算机设备的IP地址和端口,该五元组信息中的传输层协议为第一计算机设备和第二计算机设备通信时所采用的协议。
中间节点存储的一条或多条第一子规则用于对计算机设备之间的通信进行访问控制,且能够与该一条或多条第一子规则匹配的信息可能为五元组信息中的部分信息,也可能为五元组信息中的所有信息。因此,中间节点接收到第一隧道端点发送的第一业务报文之后,可以直接从第一业务报文中获取第二业务报文的五元组信息。在进行规则匹配时,哪条第一子规则需要哪些信息,就将第二业务报文的五元组信息中的哪些信息与其进行比较,从而确定第一目标子规则。
值得注意的是,中间节点存储的每条第一子规则可以具有一定的优先级,在进行规则匹配时,可以按照该一条或多条第一子规则的优先级顺序进行匹配,然后将首个匹配成功的第一子规则确定为第一目标子规则。
比如,中间节点存储有5条第一子规则,分别为子规则11、子规则12、子规则13、子规则14和子规则15,且这5条第一子规则按照优先级排序之后的顺序为子规则11、子规则12、子规则13、子规则14和子规则15。假设,子规则11中用于进行匹配的信息包括源IP地址,子规则12中用于进行匹配的信息包括源IP地址和源端口,子规则13中用于进行匹配的信息包括目的IP地址,子规则14中用于进行匹配的信息包括目的IP地址和目的端口,子规则15中用于进行匹配的信息包括源IP地址、目的IP地址和传输层协议。那么,在中间节点获取到第二业务报文的五元组信息之后,可以将第二业务报文的五元组信息中的源IP地址和子规则11中的源IP地址进行比较,将第二业务报文的五元组信息中的源IP地址和源端口,分别与子规则12中的源IP地址和源端口进行比较,将第二业务报文的五元组信息中的目的IP地址与子规则13中的目的IP地址进行比较,将第二业务报文的五元组信息中的目的IP地址和目的端口,分别与子规则14中的目的IP地址和目的端口进行比较,以及将第二业务报文的五元组信息中的源IP地址、目的IP地址和传输层协议,分别与子规则15中的源IP地址、目的IP地址和传输层协议进行比较。如果第二业务报文的五元组信息匹配子规则12和子规则13,由于子规则12的优先级高于子规则13的优先级,因此,可以将子规则12确定为第一目标子规则。
在一些实施例中,中间节点根据第一目标子规则,在第一业务报文的隧道封装头中设置分组标识的操作可以为:将该隧道封装头中的分布式ACL指示设置为第一数值。根据第一目标子规则,设置分组标识包括的分组字段。
需要说明的是,有的业务报文需要中间节点进行透传,而有的业务报文则需要中间节点按照本申请实施例提供的方法在隧道封装头中设置分组标识。当中间节点对这些业务报文进行不同操作时,第二隧道端点对这些业务报文进行的操作也会不同。因此,为了便于区分,当中间节点在业务报文的隧道封装头中设置分组标识时,可以将该隧道封装头中的分布式ACL指示设置为第一数值。这样,第二隧道端点可以按照该隧道封装头中的分布式ACL指示的数值来确定这个业务报文的处理操作。
为了实现访问控制,中间节点存储的一条或多条第一子规则中通常包括有动作类型,因此,在一些实施例中,中间节点可以根据第一目标子规则中的第一动作类型,将该分组字段中的动作类型字段中的第一目标比特位设置为第二数值,第一目标比特位与第一动作类型对应。这样,通过该动作类型字段中的第一目标比特位上的数值即可确定对应的第一动作类型。
作为一种示例,中间节点中可以存储有动作类型与比特位编号之间的对应关系。这样,中间节点可以根据第一动作类型,从存储的动作类型与比特位编号之间对应关系中,获取对应的比特位编号,并将该比特位编号所指示的比特位确定为第一目标比特位。
比如,第一目标子规则中的第一动作类型为允许,中间节点存储的动作类型与比特位编号之间的对应关系可以如下表1所示。这样,中间节点可以根据第一目标子规则中的第一动作类型,从下述表1所示的对应关系中获取对应的比特位编号为1,也即是,第一动作类型与动作类型字段中的第1个比特位对应。然后,中间节点可以将该动作类型字段中的第1个比特位设置为第二数值。
表1
动作类型 | 比特位编号 |
允许 | 1 |
拒绝(deny) | 2 |
承诺访问速率(Committed Access Rate,CAR) | 3 |
...... | ...... |
在某些情况下,中间节点存储的一条或多条第一子规则中还可以包括动作参数,也即是,第一目标子规则还可以包括第一动作参数,第一动作参数与第一动作类型对应。这样,在一些实施例中,在中间节点将该分组字段中的动作类型字段中的第一目标比特位设置为第二数值之后,还可以将该分组字段中的动作参数字段中的第二目标比特位设置为第三数值,第二目标比特位与第一动作参数对应。这样,通过该动作参数字段中的第二目标比特位上的数值即可确定对应的第一动作参数。
作为一种示例,中间节点中可以存储有动作参数与比特位编号之间的对应关系。这样,中间节点可以根据第一动作参数,从存储的动作参数与比特位编号之间对应关系中,获取对应的比特位编号,并将该比特位编号所指示的比特位确定为第二目标比特位。
比如,第一目标子规则中的第一动作类型为CAR,第一目标子规则中的第一动作参数为10Mbps,中间节点存储的动作参数与比特位编号之间的对应关系可以如下表2所示。这样,中间节点可以根据第一目标子规则中的第一动作类型,从上述表1所示的对应关系中获取对应的比特位编号为3,也即是,第一动作类型与动作类型字段中的第3个比特位对应。然后,中间节点可以将该动作类型字段中的第3个比特位设置为第二数值。之后,中间节点可以根据第一目标子规则中的第一动作参数,从下述表2所示的对应关系中获取对应的比特位编号为1,也即是,第一动作参数与动作参数字段中的第1个比特位对应。然后,中间节点可以将该动作参数字段中的第1个比特位设置为第三数值。
表2
动作参数 | 比特位编号 |
10Mbps | 1 |
20Mbps | 2 |
30Mbps | 3 |
...... | ...... |
需要说明的是,在第一目标子规则包括第一动作类型和第一动作参数的情况下,中间节点可以先将分组字段中的动作类型字段中的第一目标比特位设置为第二数值,再将分组字段中的动作参数字段中的第二目标比特位设置为第三数值。或者,中间节点可以先将分组字段中的动作参数字段中的第二目标比特位设置为第三数值,再将分组字段中的动作类型字段中的第一目标比特位设置为第二数值。当然,中间节点也可以同时将分组字段中的动作类型字段中的第一目标比特位设置为第二数值,并将分组字段中的动作参数字段中的第二目标比特位设置为第三数值。本申请实施例对中间节点设置动作类型字段和动作参数字段的先后顺序不做限定。
上述方式是通过动作参数字段中的一个比特位指示一个参数,但是由于不同的第一子规则可以包括不同的参数,当第一子规则的数量较多时,这些不同参数的数量也较多,而动作参数字段内的比特位的数量有限,因此,在另一些实施例中,在中间节点将该分组字段中的动作类型字段中的第一目标比特位设置为第二数值之后,还可以按照第四数值设置分组字段中的动作参数字段中的每个比特位,以使动作参数字段中的比特位对应的十进制数与第四数值相等,第四数值与第一动作参数对应。也即是,通过该动作参数字段中的比特位对应的十进制来表示第二子规则中的参数。通过这种方式能够表示的参数的数量将远远大于通过比特位能够表示的参数的数量。
作为一种示例,中间节点中可以存储有动作参数与十进制数之间的对应关系。这样,中间节点可以根据第一动作参数,从存储的动作参数与十进制数之间对应关系中,获取对应的十进制数,将获取的十进制数称为第四数值,然后按照第四数值确定动作参数字段中的每个比特位上的数值。也即是,按照动作参数字段中的比特位的数量,将第四数值转换为对应的二进制数,然后按照转换后得到的二进制数设置动作参数字段中的每个比特位。
比如,第一目标子规则中的第一动作类型为CAR,第一目标子规则中的第一动作参数为10Mbps,中间节点存储的动作参数与十进制数之间的对应关系可以如下表3所示。这样,中间节点可以根据第一目标子规则中的第一动作类型,从上述表1所示的对应关系中获取对应的比特位编号为3,也即是,第一动作类型与动作类型字段中的第3个比特位对应。然后,中间节点可以将该动作类型字段中的第3个比特位设置为第二数值。之后,中间节点可以根据第一目标子规则中的第一动作参数,从下述表3所示的对应关系中获取对应的十进制数为5。假设,动作参数字段中包括8个比特位,此时,可以将十进制数5转为对应的二进制数00000101,然后,中间节点可以将该动作参数字段中的第1个比特位至第5个比特位,以及第7个比特位均设置为0,将该动作参数字段中的第6个比特位和第8个比特位设置为1。
表2
动作参数 | 十进制数 |
10Mbps | 5 |
20Mbps | 3 |
30Mbps | 7 |
...... | ...... |
在某些情况下,中间节点存储的一条或多条第一子规则中可能会包括多个动作类型,也即是,第一目标子规则中不仅可以包括第一动作类型,而且第一目标子规则还可以包括第二动作类型。此时,中间节点可以将动作类型字段中的第三目标比特位设置为第五数值,第三目标比特位与第二动作类型对应。这样,通过该动作参数字段中的第三目标比特位上的数值即可确定对应的第二动作类型。其中,第三目标比特位的确定方式与第一目标比特位的确定方式相同,本申请实施例对此不再赘述。
需要说明的是,第一数值与第二数值可以相同,也可以不同。比如,第一数值可以为1,第二数值可以为1也可以为0。第三数值和第五数值也可以与第一数值相同或者不同,本申请实施例对此不做限定。
另外,上述仅仅是以第一目标子规则包括第一动作类型、第一动作参数和第二动作类型中的至少一者为例进行说明。实际应用中,第一目标子规则中可能还包括其他的动作类型或者其他的动作参数,这些动作类型和动作参数对应的比特位上的数值设置方法可以参考上述设置方法,本申请实施例对此不做赘述。
作为一种示例,当隧道端点与中间节点之间采用VXLAN进行通信时,第一业务报文中的VXLAN封装头的结构可以如图7所示。此时,VXLAN封装头中位于虚线框A中的任意一个R可以作为分布式ACL指示,VXLAN封装头中24bit的保留字段可以作为动作类型字段,VXLAN封装头中8bit的保留字段可以作为动作参数字段。
作为另一种示例,当隧道端点与中间节点采用TRILL进行通信时,隧道封装头即为TRILL头。第一业务报文中的TRILL头中的可选字段长度(Op-Length)字段可以作为分布式ACL指示,TRILL头中的Options字段中的高24bit可以作为动作类型字段,TRILL头中的可选(Options)字段中的低8bit可以作为动作参数字段。当隧道端点与中间节点之间采用其他的网络进行通信时,分布式ACL指示、动作类型字段和动作参数字段可以为其他类型封装头中的字段,本申请实施例不再一一列举。
需要说明的是,当第一业务报文中封装的第二业务报文的报文头信息未匹配中间节点中的子规则时,中间节点可以将第一业务报文进行透传。也即是,直接传输给第二隧道端点。
基于上述步骤602的描述,分组字段包括动作类型字段,还可以进一步包括动作参数字段。当第一目标子规则包括第一动作类型时,若分布式ACL指示为第一数值,则第二隧道端点可以按照该一条或多条第二子规则的优先级顺序,将首个与动作类型字段内的比特位匹配的子规则确定为第二目标子规则。
当第一目标子规则在包括第一动作类型的基础上还包括第一动作参数时,第二隧道端点可以按照该一条或多条第二子规则的优先级顺序,将首个与动作类型字段内的比特位以及动作参数字段内的比特位匹配的子规则确定为第二目标子规则。
当第一目标子规则在包括第一动作类型和第一动作参数的基础上还包括第二动作类型时,第二隧道端点可以按照该一条或多条第二子规则的优先级顺序,将首个与动作类型字段内的比特位以及动作参数字段内的比特位匹配的子规则确定为第二目标子规则。
比如,第二隧道端点存储有5条第二子规则,分别为子规则21、子规则22、子规则23、子规则24和子规则25,且这5条第二子规则按照优先级排序之后的顺序为子规则21、子规则22、子规则23、子规则24和子规则25。假设,子规则21中限定的动作类型字段中的第1个比特为1,子规则22中限定的动作类型字段中的第2个比特为1,子规则23中限定的动作类型字段中的第1个比特和动作参数字段中的第1个比特均为1,子规则24中限定的动作类型字段中的第4个比特为1,子规则25中限定的动作类型字段中的第3个比特和动作参数字段中的第3个比特均为1。如果接收到的第一业务报文的隧道封装头中包括的分组标识中的分布式ACL指示为第一数值,那么,第二隧道端点可以将接收到的第一业务报文的隧道封装头中包括的分组标识中的动作类型字段内的第1个比特位与子规则21进行比较,将接收到的第一业务报文的隧道封装头中包括的分组标识中的动作类型字段内的第2个比特位与子规则22进行比较,将接收到的第一业务报文的隧道封装头中包括的分组标识中的动作类型字段内的第1个比特位和动作参数字段中的第1个比特位,分别与子规则23进行比较,将接收到的第一业务报文的隧道封装头中包括的分组标识中的动作类型字段内的第4个比特位与子规则24进行比较,将接收到的第一业务报文的隧道封装头中包括的分组标识中的动作类型字段内的第3个比特位和动作参数字段内的第3个比特位,分别与子规则25进行比较。如果与子规则21和子规则23都匹配,由于子规则21的优先级高于子规则23的优先级,因此,可以将子规则21确定为第二目标子规则。
基于上述描述,中间节点中存储有一条或多条第一子规则,第二隧道端点中存储有一条或多条第二子规则。其中,第一子规则和第二子规则合起来之后便是传统的一条ACL规则,也即是,一条第一子规则和一条第二子规则是对传统的ACL规则进行拆分后得到。而且,中间节点中存储的第一子规则和第二隧道端点中存储的第二子规则可以为管理员手动配置的。当然,也可以为控制器对传统的ACL规则进行拆分后下发给中间节点和第二隧道端点的,本申请实施例对此不做限定。
在本申请实施例中,由于中间节点中存储的第一规则和第二隧道端点中存储的第二子规则是对传统的ACL规则进行拆分后得到的,且第一业务报文是对第二业务报文进行隧道封装之后得到的,因此,在中间节点接收到第一隧道端点发送的第一业务报文之后,可以确定第一业务报文中封装的第二业务报文的报文头信息在中间节点中所匹配的子规则,即第一目标子规则。当确定第一目标子规则之后,可以在第一业务报文的隧道封装头中设置分组标识。这样,当第二隧道端点接收到设置有分组标识的第一业务报文之后,可以直接确定分组标识所匹配的子规则,即第二目标子规则,进而按照第二目标子规则对第二业务报文进行处理。这样,在第二隧道端点中不仅可以对第一计算机设备发出的业务报文进行控制,还可以对发送给第二计算机设备的业务报文进行控制。而且,业务报文的控制逻辑分布在中间节点和第二隧道端点上,而不是仅仅分布在第二隧道端点上,并且第二隧道端点只需要按照分组标识对应的动作类型对第二业务报文进行处理,无需按照报文头信息进行匹配,从而可以减少第二隧道端点上的资源消耗,还可以提高中间节点的资源利用率。
请参考图8,图8是根据本申请实施例示出的一种访问控制装置的结构示意图,该访问控制装置可以由软件、硬件或者两者的结合实现成为中间节点的部分或者全部,该中间节点可以为图1所示的中间节点。该装置包括:接收模块801、设置模块802和发送模块803。
接收模块801,用于执行上述步骤601;
设置模块802,用于执行上述步骤602;
发送模块803,用于执行上述步骤603。
可选地,分组标识包括分布式ACL指示和分组字段,设置模块802包括:
第一设置子模块,用于将隧道封装头中的分布式ACL指示设置为第一数值;
第二设置子模块,用于根据第一目标子规则,设置分组字段。
可选地,第二设置子模块包括:
第一设置单元,用于根据第一目标子规则中的第一动作类型,将分组字段中的动作类型字段中的第一目标比特位设置为第二数值,第一目标比特位与第一动作类型对应。
可选地,第一目标子规则还包括第一动作参数,第一动作参数与第一动作类型对应,第二设置子模块还包括:
第二设置单元,用于将分组字段中的动作参数字段中的第二目标比特位设置为第三数值,第二目标比特位与第一动作参数对应。
可选地,第一目标子规则还包括第一动作参数,第一动作参数与第一动作类型对应,第二设置子模块还包括:
第三设置单元,用于按照第四数值设置分组字段中的动作参数字段中的每个比特位,以使动作参数字段中的比特位对应的十进制数与第四数值相等,第四数值与第一动作参数对应。
可选地,第一目标子规则还包括第二动作类型,第二设置子模块还包括:
第四设置单元,用于将动作类型字段中的第三目标比特位设置为第五数值,第三目标比特位与第二动作类型对应。
在本申请实施例中,由于中间节点接收到第一业务报文之后,并不是进行透传,而是将第一业务报文中封装的第二业务报文的报文头信息与自身存储的第一子规则进行匹配,将第二业务报文的报文头信息匹配第一目标子规则时,第一业务报文的隧道封装头中设置分组标识,然后将设置有分组标识的第一业务报文发送给第二隧道端点。这样,在第二隧道端点接收到设置有分组标识的第一业务报文之后,可以按照该分组标识对第二业务报文进行处理。也即是,本申请通过中间节点进行报文头信息与子规则的匹配,第二隧道端点无需进行报文头信息与子规则的匹配,这样,就可以减少第二隧道端点上的资源消耗,还可以提高中间节点的资源利用率。
请参考图9,图9是根据本申请实施例示出的一种访问控制装置的结构示意图,该访问控制装置可以由软件、硬件或者两者的结合实现成为第二隧道端点的部分或者全部,第二隧道端点可以为图1所示的第二隧道端点。该装置包括:接收模块901、解封装模块902、确定模块903和报文处理模块904。
接收模块901,用于执行上述步骤604中接收中间节点发送的第一业务报文的过程;
解封装模块902,用于执行上述步骤605中对第一业务报文进行解封装,得到第二业务报文的过程;
确定模块903,用于执行上述步骤605中确定第二隧道端点中与分组标识匹配的第二目标子规则的过程;
报文处理模块904,用于执行上述步骤606。
可选地,分组标识包括分布式ACL指示和分组字段,分组字段包括动作类型字段;
确定模块903主要用于:
若所述分布式ACL指示为第一数值,则按照第二隧道端点中的子规则的优先级顺序,将首个与分组字段中的动作类型字段内的比特位匹配的子规则确定为第二目标子规则。
可选地,分组字段还包括动作参数字段;
确定模块903还用于:
按照第二隧道端点中的子规则的优先级顺序,将首个与分组字段中的动作类型字段内的比特位以及分组字段中的动作参数字段内的比特位匹配的子规则确定为第二目标子规则。
在本申请实施例中,由于中间节点在第一业务报文中设置有分组标识,因此,在第二隧道端点接收到设置有分组标识的第一业务报文之后,可以直接确定分组标识所匹配的子规则,即第二目标子规则,进而按照第二目标子规则对第二业务报文进行处理。这样,在第二隧道端点中不仅可以对第一计算机设备发出的业务报文进行控制,还可以对发送给第二计算机设备的业务报文进行控制。而且,第二隧道端点无需进行报文头信息与子规则的匹配,这样,就可以减少第二隧道端点上的资源消耗。
需要说明的是:上述实施例提供的访问控制装置在访问控制时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的访问控制装置与访问控制方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质,或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(Digital Versatile Disc,DVD))或半导体介质(例如:固态硬盘(Solid State Disk,SSD))等。
以上所述为本申请提供的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (19)
1.一种访问控制方法,其特征在于,所述方法包括:
中间节点接收第一隧道端点发送的第一业务报文,所述第一业务报文是所述第一隧道端点对第二业务报文进行隧道封装后得到的;
当所述第二业务报文的报文头信息匹配所述中间节点的第一目标子规则时,所述中间节点根据所述第一目标子规则,在所述第一业务报文的隧道封装头中设置分组标识;
所述中间节点将设置有分组标识的第一业务报文发送给第二隧道端点,以指示所述第二隧道端点根据所述分组标识对所述第二业务报文进行处理。
2.如权利要求1所述的方法,其特征在于,所述分组标识包括分布式访问控制列表ACL指示和分组字段,所述根据所述第一目标子规则,在所述第一业务报文的隧道封装头中设置分组标识,包括:
将所述隧道封装头中的所述分布式ACL指示设置为第一数值;
根据所述第一目标子规则,设置所述分组字段。
3.如权利要求2所述的方法,其特征在于,所述根据所述第一目标子规则,设置所述分组字段,包括:
根据所述第一目标子规则中的第一动作类型,将所述分组字段中的动作类型字段中的第一目标比特位设置为第二数值,所述第一目标比特位与所述第一动作类型对应。
4.如权利要求3所述的方法,其特征在于,所述第一目标子规则还包括第一动作参数,所述第一动作参数与所述第一动作类型对应,所述根据所述第一目标子规则,设置所述分组字段,还包括:
将所述分组字段中的动作参数字段中的第二目标比特位设置为第三数值,所述第二目标比特位与所述第一动作参数对应。
5.如权利要求3所述的方法,其特征在于,所述第一目标子规则还包括第一动作参数,所述第一动作参数与所述第一动作类型对应,所述根据所述第一目标子规则,设置所述分组字段,还包括:
按照第四数值设置所述分组字段中的动作参数字段中的每个比特位,以使所述动作参数字段中的比特位对应的十进制数与所述第四数值相等,所述第四数值与所述第一动作参数对应。
6.如权利要求3所述的方法,其特征在于,所述第一目标子规则还包括第二动作类型,所述根据所述第一目标子规则,设置所述分组字段,还包括:
将所述动作类型字段中的第三目标比特位设置为第五数值,所述第三目标比特位与所述第二动作类型对应。
7.一种访问控制方法,其特征在于,所述方法包括:
第二隧道端点接收中间节点发送的第一业务报文,所述第一业务报文包括隧道封装头,所述隧道封装头中包括第一隧道端点的标识和所述第二隧道端点的标识,所述隧道封装头中还包括分组标识;
所述第二隧道端点对所述第一业务报文进行解封装,得到第二业务报文;
所述第二隧道端点确定所述第二隧道端点中与所述分组标识匹配的第二目标子规则;
所述第二隧道端点根据所述第二目标子规则对所述第二业务报文进行处理。
8.如权利要求7所述的方法,其特征在于,所述分组标识包括分布式访问控制列表ACL指示和分组字段,所述分组字段包括动作类型字段;
所述确定所述第二隧道端点中与所述分组标识匹配的第二目标子规则,包括:
若所述分布式ACL指示为第一数值,则按照所述第二隧道端点中的子规则的优先级顺序,将首个与所述动作类型字段内的比特位匹配的子规则确定为所述第二目标子规则。
9.如权利要求8所述的方法,其特征在于,所述分组字段还包括动作参数字段;
所述按照所述第二隧道端点中的子规则的优先级顺序,将首个与所述动作类型字段内的比特位匹配的子规则确定为所述第二目标子规则,包括:
按照所述第二隧道端点中的子规则的优先级顺序,将首个与所述动作类型字段内的比特位以及所述动作参数字段内的比特位匹配的子规则确定为所述第二目标子规则。
10.一种访问控制装置,应用于中间节点,其特征在于,所述装置包括:
接收模块,用于接收第一隧道端点发送的第一业务报文,所述第一业务报文是所述第一隧道端点对第二业务报文进行隧道封装后得到的;
设置模块,用于当所述第二业务报文的报文头信息匹配所述中间节点的第一目标子规则时,根据所述第一目标子规则,在所述第一业务报文的隧道封装头中设置分组标识;
发送模块,用于将设置有分组标识的第一业务报文发送给第二隧道端点,以指示所述第二隧道端点根据所述分组标识对所述第二业务报文进行处理。
11.如权利要求10所述的装置,其特征在于,所述分组标识包括分布式访问控制列表ACL指示和分组字段,所述设置模块包括:
第一设置子模块,用于将所述隧道封装头中的所述分布式ACL指示设置为第一数值;
第二设置子模块,用于根据所述第一目标子规则,设置所述分组字段。
12.如权利要求11所述的装置,其特征在于,所述第二设置子模块包括:
第一设置单元,用于根据所述第一目标子规则中的第一动作类型,将所述分组字段中的动作类型字段中的第一目标比特位设置为第二数值,所述第一目标比特位与所述第一动作类型对应。
13.如权利要求12所述的装置,其特征在于,所述第一目标子规则还包括第一动作参数,所述第一动作参数与所述第一动作类型对应,所述第二设置子模块还包括:
第二设置单元,用于将所述分组字段中的动作参数字段中的第二目标比特位设置为第三数值,所述第二目标比特位与所述第一动作参数对应。
14.如权利要求12所述的装置,其特征在于,所述第一目标子规则还包括第一动作参数,所述第一动作参数与所述第一动作类型对应,所述第二设置子模块还包括:
第三设置单元,用于按照第四数值设置所述分组字段中的动作参数字段中的每个比特位,以使所述动作参数字段中的比特位对应的十进制数与所述第四数值相等,所述第四数值与所述第一动作参数对应。
15.如权利要求12所述的装置,其特征在于,所述第一目标子规则还包括第二动作类型,所述第二设置子模块还包括:
第四设置单元,用于将所述动作类型字段中的第三目标比特位设置为第五数值,所述第三目标比特位与所述第二动作类型对应。
16.一种访问控制装置,应用于第二隧道端点,其特征在于,所述装置包括:
接收模块,用于接收中间节点发送的第一业务报文,所述第一业务报文包括隧道封装头,所述隧道封装头中包括第一隧道端点的标识和所述第二隧道端点的标识,所述隧道封装头中还包括分组标识;
解封装模块,用于对所述第一业务报文进行解封装,得到第二业务报文;
确定模块,用于确定所述第二隧道端点中与所述分组标识匹配的第二目标子规则;
报文处理模块,用于根据所述第二目标子规则对所述第二业务报文进行处理。
17.如权利要求16所述的装置,其特征在于,所述分组标识包括分布式访问控制列表ACL指示和分组字段,所述分组字段包括动作类型字段;
所述确定模块主要用于:
若所述分布式ACL指示为第一数值,则按照所述第二隧道端点中的子规则的优先级顺序,将首个与所述动作类型字段内的比特位匹配的子规则确定为所述第二目标子规则。
18.如权利要求17所述的装置,其特征在于,所述分组字段还包括动作参数字段;
所述确定模块还用于:
按照所述第二隧道端点中的子规则的优先级顺序,将首个与所述动作类型字段内的比特位以及所述动作参数字段内的比特位匹配的子规则确定为所述第二目标子规则。
19.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如权利要求1-6任意一项所述的方法,或者执行如权利要求7-9任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910473326.9A CN112019492B (zh) | 2019-05-31 | 2019-05-31 | 访问控制方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910473326.9A CN112019492B (zh) | 2019-05-31 | 2019-05-31 | 访问控制方法、装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112019492A CN112019492A (zh) | 2020-12-01 |
CN112019492B true CN112019492B (zh) | 2021-06-22 |
Family
ID=73506401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910473326.9A Active CN112019492B (zh) | 2019-05-31 | 2019-05-31 | 访问控制方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112019492B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113452594B (zh) * | 2021-06-28 | 2022-07-22 | 新华三信息安全技术有限公司 | 一种隧道报文的内层报文匹配方法及装置 |
CN114125081B (zh) * | 2021-10-27 | 2023-09-22 | 桂林长海发展有限责任公司 | 一种接收数据的处理方法、装置及存储介质 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631078B (zh) * | 2009-08-24 | 2012-04-18 | 杭州华三通信技术有限公司 | 一种端点准入防御中的报文控制方法及接入设备 |
WO2014030905A1 (ko) * | 2012-08-20 | 2014-02-27 | 엘지전자 주식회사 | 무선 통신 시스템에서 서버를 활성화 또는 비활성화하기 위한 방법 및 장치 |
CN104486299B (zh) * | 2014-11-28 | 2018-07-24 | 新华三技术有限公司 | 一种acl下发的方法和设备 |
US10243916B2 (en) * | 2016-04-07 | 2019-03-26 | Cisco Technology, Inc. | Control plane based technique for handling multi-destination traffic in overlay networks |
CN106059923B (zh) * | 2016-05-30 | 2019-07-05 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN108512782A (zh) * | 2017-02-24 | 2018-09-07 | 华为数字技术(苏州)有限公司 | 访问控制列表分组调整方法、网络设备和系统 |
US10623316B2 (en) * | 2017-04-27 | 2020-04-14 | Mellanox Technologies Tlv Ltd. | Scaling of switching tables with high bandwidth |
CN109743340B (zh) * | 2019-04-04 | 2019-07-30 | 华为技术有限公司 | 报文处理的方法和网络装置 |
-
2019
- 2019-05-31 CN CN201910473326.9A patent/CN112019492B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112019492A (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111490923B (zh) | 基于bras系统的报文封装方法、装置及系统 | |
CN112311674B (zh) | 报文发送方法、装置及存储介质 | |
CN112039796B (zh) | 数据包传输方法和装置、存储介质和电子设备 | |
CN114285781B (zh) | Srv6业务流量统计方法、装置、电子设备及介质 | |
CN112788060A (zh) | 数据包传输方法和装置、存储介质和电子设备 | |
CN112019492B (zh) | 访问控制方法、装置及存储介质 | |
WO2023072065A1 (zh) | 数据处理方法、装置、电子设备和存储介质 | |
US20200244579A1 (en) | Flexible Ethernet Frame Forwarding Method and Apparatus | |
CN112968965B (zh) | Nfv网络节点的元数据服务方法、服务器及存储介质 | |
US20120294307A1 (en) | Apparatus and Method for Identifier Management | |
CN111464443B (zh) | 基于服务功能链的报文转发方法、装置、设备及存储介质 | |
EP3503484A1 (en) | Message transmission method, device and network system | |
EP4319310A1 (en) | Message forwarding method, apparatus and system, and computer-readable storage medium | |
CN109698845B (zh) | 数据传输的方法、服务器、卸载卡及存储介质 | |
US20240056393A1 (en) | Packet forwarding method and device, and computer readable storage medium | |
CN113904871A (zh) | 网络切片的接入方法、pcf实体、终端和通信系统 | |
CN114765589A (zh) | 网络测试方法、装置及存储介质 | |
CN112887201A (zh) | 基于vrrp的接口更新方法、装置及存储介质 | |
US20240048644A1 (en) | Message transmission method and system, and network device and storage medium | |
WO2023016110A1 (zh) | 传输网络层可达信息的方法、装置、设备、系统及介质 | |
EP4224804A1 (en) | Communication method, apparatus, device, system, and computer readable storage medium | |
EP3993366A2 (en) | Network load balancer, request message distribution method, program product and system | |
JP2023177208A (ja) | 効率的に伝送するイーサネット装置 | |
CN114679370A (zh) | 一种服务器托管方法、装置、系统及存储介质 | |
CN117527693A (zh) | 报文转发方法、设备、系统及存储介质 |
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 |