CN111726305B - 一种面向虚拟机的多级流表管控方法及*** - Google Patents

一种面向虚拟机的多级流表管控方法及*** Download PDF

Info

Publication number
CN111726305B
CN111726305B CN202010558442.3A CN202010558442A CN111726305B CN 111726305 B CN111726305 B CN 111726305B CN 202010558442 A CN202010558442 A CN 202010558442A CN 111726305 B CN111726305 B CN 111726305B
Authority
CN
China
Prior art keywords
flow table
virtual machine
message
rule
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
Application number
CN202010558442.3A
Other languages
English (en)
Other versions
CN111726305A (zh
Inventor
刘忻
林冬艺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Bingo Software Co Ltd
Original Assignee
Guangzhou Bingo Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangzhou Bingo Software Co Ltd filed Critical Guangzhou Bingo Software Co Ltd
Priority to CN202010558442.3A priority Critical patent/CN111726305B/zh
Publication of CN111726305A publication Critical patent/CN111726305A/zh
Application granted granted Critical
Publication of CN111726305B publication Critical patent/CN111726305B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种面向虚拟机的多级流表管控方法及***。面向虚拟机的多级流表管控方法,包括:生成port‑mac绑定流表规则,并下发至流表0;注册空闲的流表N,并将所述port‑mac绑定流表规则下发至所述流表N;生成多级流表分发规则,并下发至流表1;当报文进入Openflow交换机时,根据流表0的port‑mac绑定流表规则确定该报文为虚拟机发出时,然后根据流表1的多级流表分发规则将所述报文的流表转发至对应的流表N。本发明的管控方法及***将Openflow交换机的流表通过虚拟机Mac地址与虚拟机接入网卡Mac地址作为虚拟机网络资源的唯一标识,实现SDN控制器快速的索引与资源分配,通过以虚拟机Mac地址作为多级流表分发的关键匹配项,从而可以起到防止虚拟机恶意修改Mac地址的作用。

Description

一种面向虚拟机的多级流表管控方法及***
技术领域
本发明属于网络通信设备领域,尤其是一种面向虚拟机的多级流表管控方法及***。
背景技术
遵循OpenFlow标准的OpenFlow交换机,内置了多级流表处理逻辑,而每一级流表包含有多个流表规则。F多级流表是按照数字顺序排列的,起始索引号从0开始,任何进入到OpenFlow交换机的报文都会从Table 0开始处理,根据Openflow标准协议Openflow交换机Flow Table ID可用范围是0-253,共254个Flow Table。
当报文进入流表处理时,报文会被逐次地依据Priority(优先级)与该流表里的所有流表规则进行匹配,当发现匹配成功的流表规则时,该流表规则相关联的InstructionsSet将会被执行,Instructions可以通过Goto Table指令将该报文转发到后续的其他流表处理,或者通过Drop指令将报文转发,或者通过Set field指令修改报文内容,或通过output port指令将报文转发至指定网口,或者封装成packet-in消息发送给SDN控制器。
假若报文在一个流表里没有发现能够匹配成功的流表规则,那么这叫作一次Table Miss,至于发生Table Miss后的动作取决于这个流表的配置:1)直接丢弃,2)继续转发给后续的流表,3)封装成packet-in消息发送给SDN控制器。
如图1所示,根据Openflow标准的多级流表逻辑特性,结合云计算虚拟网络的业务特性,通过对多级流表的管理,可有效提升Openflow执行效率以及管理逻辑的清晰度,目前业界对多级流表的管理普遍采用以下几种方法:
1)只采用一级Flow Table
将所有流表规则都放在同一级流表中,通过prority控制流表的执行次序。这样方式,如果某个虚拟机的流表规则过多,会直接影响其他统一计算节点虚拟机的网络转发性能。
2)根据网络协议分配Flow Table
通过Flow Table0的流表规则完成按网络协议,如TCP协议、UDP协议、ICMP协议、ARP协议通过Goto Table指令转发到不同的Flow Table,这样的方案可以避免某单一协议流表过多,导致其他报文协议的性能受损,有效隔离不同网络协议之间的性能损耗,但是避免某个虚拟机的流表规则,而导致其他虚拟机的网络转发性能受损。
3)根据云网络业务功能分配Flow Table
云网络的业务功能,如安全组、ACL、Subnet、NAT、Vpc、Route等,通过流水线的方式,将云网络的业务功能,分配到不同的Flow Table中,这样的方案可提升云网络的管理性,但是依然无法解决某个虚拟机的流表规则,而导致其他虚拟机的网络转发性能受损问题。
发明内容
本发明的目的在于提供一种面向虚拟机的多级流表管控方法及***,以防止虚拟机恶意修改Mac地址。
为此,本发明提供了一种面向虚拟机的多级流表管控方法,包括:
SDN控制器的静态流表管理引擎根据虚拟机的Mac地址信息和端口号,生成port-mac绑定流表规则,并下发至流表0;
SDN控制器的静态流表管理引擎根据虚拟机的Mac地址信息、端口号和IP地址,生成多级流表分发规则,并下发至流表1;
根据虚拟机的Mac地址信息查询数据库中虚拟机的IP地址信息和表资源池,注册空闲的流表N,并将所述port-mac绑定流表规则下发至所述流表N,其中,N为自然数并且N为2-252;
当报文进入Openflow交换机时,根据所述流表0的port-mac绑定流表规则确定该报文为虚拟机发出时,根据所述流表0的port-mac绑定流表规则获取虚拟机的网络入口端口号、源虚拟机的MAC地址、目标虚拟机的MAC地址、源虚拟机的IP地址和目标虚拟机的IP地址;然后根据流表1的多级流表分发规则将所述报文的流表转发至对应的流表N;
如果所述流表N的处理流表规则匹配所述报文,则将所述报文根据流表N的处理流表规则完成响应处理。
优选地,在将所述报文的流表转发至对应的流表N之后,还包括:
如果所述流表N的处理流表规则未匹配所述报文,则Openflow交换机将报文通过Openflow协议的OFPT_PACKET_IN消息发送至SDN控制器;
SDN控制器解析OFPT_PACKET_IN消息的报文内容以提取源目标Mac地址以及查询FlowTable资源池,从而获取该报文所需经过流表号;
SDN控制器分析OFPT_PACKET_IN消息的报文内容,根据云网络的组网逻辑,生成对应的处理流表规则,并下发所述处理流表规则至所述流表号对应的流表N;
将所述报文根据下发的处理流表规则完成响应处理。
优选地,SDN控制器的静态流表管理引擎生成port-mac绑定流表规则之前,还包括:
云平台创建虚拟机,通过预设的转换规则,将虚拟机Mac地址与虚拟网卡Mac地址进行初始化设置,并将将虚拟网卡接入Openflow交换机;
Openflow交换机将网卡接入的变更事件,通过Openflow协议的OFP_PORT_STATUS消息发送至SDN控制器;
SDN控制器的静态流表管理引擎接收到该OFP_PORT_STATUS消息,提取虚拟网卡名称,根据虚拟机接入网卡定义规则,利用该虚拟网卡名称判断是否为虚拟机网卡;
如果虚拟网卡名称不是虚拟机网卡,则下发流表规则,将匹配该网络入口的报文转发至所述流表1;如果虚拟网卡是虚拟机接入网卡,则提取虚拟网卡的Mac地址信息,通过预设转换规则,将虚拟网卡的Mac地址转换为虚拟机的Mac地址。
优选地,所述OFP_PORT_STATUS消息包含了虚拟网卡的名称、Mac地址、端口号。
优选地,所述port-mac绑定流表规则包括:
匹配报文的网络入口端口号为虚拟机接入网卡的端口号、源Mac地址为虚拟机的Mac地址,执行动作为转发至发至流表1;
如果匹配命中,则转发至发至流表1;
如果匹配不命中,则执行下一跳流表规则,匹配报文的网络入口端口号为虚拟机接入网卡的端口号,执行动作为丢弃。
优选地,在下发多级流表分发规则至流表N时,配置Table Miss的执行动作为封装成OFPT_PACKET_IN消息发送给SDN控制器。
优选地,所述多级流表分发的流表规则逻辑包括:
a)如果匹配报文的网络入口为虚拟机的网络接入端口号,则转发该匹配报文至所述虚拟机分配的流表N;
b)如果匹配报文的网络入口为交换机上行口,并且目标Mac地址为虚拟机Mac,则转发该匹配报文至虚拟机分配的流表N;
c)如果匹配报文的网络入口为交换机上行口,并且目标IP地址为虚拟机IP以及网络协议为Ipv4协议,则转发该匹配报文至虚拟机分配的流表N;
d)如果匹配报文的网络入口为交换机上行口,并且目标IP地址为虚拟机IP以及网络协议为Ipv6协议,则转发该匹配报文至虚拟机分配的流表N;
e)如果匹配报文的网络入口为交换机上行口,并且目标IP地址为虚拟机IP以及网络协议为arp协议,则转发该匹配报文至虚拟机分配的流表N。
一种面向虚拟机的多级流表管控***,用于管控OpenFlow交换机的多级流表处理,包括控制器和存储器,所述存储器中存储有计算机程序代码,所述控制器运行所述存储器中存储的计算机程序代码以执行以下步骤:
SDN控制器的静态流表管理引擎根据虚拟机的Mac地址信息和端口号,生成port-mac绑定流表规则,并下发至流表0;
SDN控制器的静态流表管理引擎根据虚拟机的Mac地址信息、端口号和IP地址,生成多级流表分发规则,并下发至流表1;
根据虚拟机的Mac地址信息查询数据库中虚拟机的IP地址信息和表资源池,注册空闲的流表N,并将所述port-mac绑定流表规则下发至所述流表N,其中,N为自然数并且N为2-252;
当报文进入Openflow交换机时,根据所述流表0的port-mac绑定流表规则确定该报文为虚拟机发出时,根据所述流表0的port-mac绑定流表规则获取虚拟机的网络入口端口号、源虚拟机的MAC地址、目标虚拟机的MAC地址、源虚拟机的IP地址和目标虚拟机的IP地址;然后根据流表1的多级流表分发规则将所述报文的流表转发至对应的流表N;
如果所述流表N的处理流表规则匹配所述报文,则将所述报文根据流表N的处理流表规则完成响应处理。
优选地,在将所述报文的流表转发至对应的流表N之后,还包括:
如果所述流表N的处理流表规则未匹配所述报文,则Openflow交换机将报文通过Openflow协议的OFPT_PACKET_IN消息发送至SDN控制器;
SDN控制器解析OFPT_PACKET_IN消息的报文内容以提取源目标Mac地址以及查询FlowTable资源池,从而获取该报文所需经过流表号;
SDN控制器分析OFPT_PACKET_IN消息的报文内容,根据云网络的组网逻辑,生成对应的处理流表规则,并下发所述处理流表规则至所述流表号对应的流表N;
将所述报文根据下发的处理流表规则完成响应处理。
优选地,SDN控制器的静态流表管理引擎生成port-mac绑定流表规则之前,还包括:
云平台创建虚拟机,通过预设的转换规则,将虚拟机Mac地址与虚拟网卡Mac地址进行初始化设置,并将将虚拟网卡接入Openflow交换机;
Openflow交换机将网卡接入的变更事件,通过Openflow协议的OFP_PORT_STATUS消息发送至SDN控制器;
SDN控制器的静态流表管理引擎接收到该OFP_PORT_STATUS消息,提取虚拟网卡名称,根据虚拟机接入网卡定义规则,利用该虚拟网卡名称判断是否为虚拟机网卡;
如果虚拟网卡名称不是虚拟机网卡,则下发流表规则,将匹配该网络入口的报文转发至所述流表1;如果虚拟网卡是虚拟机接入网卡,则提取虚拟网卡的Mac地址信息,通过预设转换规则,将虚拟网卡的Mac地址转换为虚拟机的Mac地址。
与现有技术相比,本发明提供的面向虚拟机的多级流表管控方法及***具有以下有益效果:
1)将Openflow交换机的流表(Flow Table)作为一种虚拟机的网络资源,通过虚拟机Mac地址与虚拟机接入网卡Mac地址作为虚拟机网络资源的唯一标识,实现SDN控制器快速的索引与资源分配,通过以虚拟机Mac地址作为多级流表分发的关键匹配项,从而可以起到防止虚拟机恶意修改Mac地址的作用。
2)按虚拟机的Flow Table多级流表分配方法,将多虚拟机产生的流表规则严格隔离,保障在同一节点上,某些虚拟机的流表规则过多,不会影响其他虚拟机的网络性能,合理的Flow Table分配方式,提升云网络的Openflow交换机的处理性能与合理性。
3)通过MAC地址、IP地址、以太协议来报文所属的虚拟机,通过流表规则实现引导流表至相应的Flow Table,保障网络按虚拟机的多级流表的流表引导的准确性与高效性。
附图说明
图1是OpenFlow交换机内置的多级流表处理逻辑示意图。
图2是面向虚拟机的多级流表管控***的结构示意图。
图3是面向虚拟机的多级流表管控方法的流程图。
具体实施方式
下面结合附图,对本发明做进一步说明。
图2是面向虚拟机的多级流表管控***的结构示意图,如图2所示,面向虚拟机的多级流表管控***用于管控OpenFlow交换机的多级流表处理。该面向虚拟机的多级流表管控***包括控制器和存储器,所述存储器中存储有计算机程序代码,所述控制器运行所述存储器中存储的计算机程序代码以执行面向虚拟机的多级流表管控方法。
该面向虚拟机的多级流表管控***规划了流表(Flow Table)0作为虚拟机Port-mac关系绑定功能。通过以虚拟机Mac地址作为多级流表分发的关键匹配项,从而可以起到防止虚拟机恶意修改Mac地址的作用。
其次,将Flow Table 1作为为多级流表分发功能,用于根据虚拟机的IP地址、Mac地址、port Number进行匹配以及多级流表分发。而Flow Table N(N为自然是且N为2-252)作为每个虚拟机分配使用的独立Flow Table资源。Flow Table 253作为非分配报文的处理流表,如未知ARP广播、未知单播报文等。
当创建虚拟机网卡接入到Openflow交换机时,Openflow交换机会将网络接口的变更信息,通过Openflow协议的OPFT_PORT_STATUS消息发送至SDN控制器。SDN控制器根据OPFT_PORT_STATUS消息获取网络接口的Mac地址、网卡名称、Port Number等信息,通过交换机网络接口的Mac地址与虚拟机网卡Mac地址的转换规则,转换获取虚拟机的Mac地址。根据虚拟的Mac地址,通过本地数据记录获取虚拟机的IP地址,并通过Flow Table资源池,获取空间的Flow Table ID,并记录Flow Table ID已被虚拟机Mac地址占用。
通过SDN控制器的静态流表管理引擎,根据虚拟机的Mac地址、接入网卡的PortNumber生成Port-mac绑定的流表规则,并下发至Openflow交换机的Flow Table 0,根据虚拟机的Mac地址、IP地址生成该虚拟机的多级流表分发规则,并下发至Openflow交换机的Flow Table 1,根据虚拟机的分配的Flow Table N,下发Table Miss上报的SDN控制器的流表规则至Openflow交换机的Flow Table N。当发生Table Miss时,SDN控制器获取Openflow交换机的上报的OFPT_PACKET_IN消息,根据OFPT_PACKET_IN消息的Mac地址信息,查询FlowTable资源,获取分配的Flow Table ID,根据云网络业务运算出流表规则并下发至Openflow交换机的对应Flow Table ID中,实现将按虚拟机分配的多级流表管理的方法。
图3是面向虚拟机的多级流表管控方法的流程图,如图3所示,面向虚拟机的多级流表管控方法包括步骤S301~S311。
步骤S301:云平台创建虚拟机,通过自定义的转换规则,将虚拟机Mac地址与虚拟网卡Mac地址进行初始化设置,如虚拟机网卡的Mac地址为d0:0d:44:00:00:01,则构建虚拟网卡的Mac地址为fe:0d:44:00:00:01,并将虚拟网卡接入Openflow交换机。
步骤S302:Openflow交换机将网卡接入的变更事件,通过Openflow协议的OFP_PORT_STATUS消息发送至SDN控制器。OFP_PORT_STATUS消息包含了虚拟网卡的名称、Mac地址、端口号等信息。
步骤S303:SDN控制器的静态流表管理引擎接收到OFP_PORT_STATUS消息,提取虚拟网卡名称,根据虚拟机接入网卡定义规则(一般情况下,虚拟机的接入网卡名称以vnet开头),判断虚拟网卡名称是否为虚拟机网卡;
步骤S304:如果虚拟网卡名称不是虚拟机网卡,则下发流表规则,将匹配该网络入口的报文转发至Flow Table 1(多级流表分配Flow Table);如果虚拟网卡是虚拟机接入网卡,则提取虚拟网卡的Mac地址信息,通过自定义的转换规则,将虚拟网卡的Mac地址转换为虚拟机的Mac地址。
步骤S305:SDN控制器的静态流表管理引擎根据虚拟机的Mac地址信息、端口号,生成Port-mac绑定流表规则,并下发至Flow Table 0(Port-mac绑定处理Flow Table),Port-mac绑定流表规则逻辑如下:
a)匹配报文的网络入口端口号为虚拟机接入网卡的端口号、源Mac地址为虚拟机的Mac地址,执行动作为转发至发至Flow Table 1(多级流表分配Flow Table)。
b)如果匹配命中,则转发至发至Flow Table 1(多级流表分配Flow Table)。
c)如果匹配不命中,则执行下一跳流表规则,匹配报文的网络入口端口号为虚拟机接入网卡的端口号,执行动作为丢弃。
通过Port-mac绑定流表规则,可有效防止虚拟机恶意修改Mac地址,避免引起SDN控制器的数据索引错乱。
步骤S306:根据虚拟机的Mac地址信息查询数据库中虚拟机的IP地址信息。
步骤S307:SDN控制器的静态流表管理引擎根据虚拟机的Mac地址信息、端口号和IP地址,生成多级流表分发的流表规则,并下发至Flow Table 1(多级流表分配FlowTable),多级流表分发的流表规则逻辑如下:
a)匹配报文的网络入口为虚拟机的网络接入端口号,则转发至虚拟机分配的FlowTable N。
b)匹配报文的网络入口为交换机上行口,目标Mac地址为虚拟机Mac,则转发至虚拟机分配的Flow Table N。
c)匹配报文的网络入口为交换机上行口,目标IP地址为虚拟机IP,网络协议为Ipv4协议,则转发至虚拟机分配的Flow Table N。
d)匹配报文的网络入口为交换机上行口,目标IP地址为虚拟机IP,网络协议为Ipv6协议,则转发至虚拟机分配的Flow Table N。
e)匹配报文的网络入口为交换机上行口,目标IP地址为虚拟机IP,网络协议为arp协议,则转发至虚拟机分配的Flow Table N。
通过多级流表分发的流表规则,确保虚拟机发送的报文以及外部网络进入的报文,均可分配到虚拟机分配的Flow Table N中。
步骤S308:根据虚拟机的Mac地址信息查询数据库中Table资源池,注册空闲的Flow Table ID(N),并下发流表规则至Flow Table N,配置Table Miss的执行动作为封装成OFPT_PACKET_IN消息发送给SDN控制器。
步骤S309:当报文进入Openflow交换机时,根据所述流表0的port-mac绑定流表规则确定该报文为虚拟机发出时,根据所述流表0的port-mac绑定流表规则获取虚拟机的网络入口端口号、源虚拟机的MAC地址、目标虚拟机的MAC地址、源虚拟机的IP地址和目标虚拟机的IP地址;然后根据流表1的多级流表分发规则将所述报文的流表转发至对应的流表N。
如果所述流表N的处理流表规则匹配所述报文,则将所述报文根据流表N的处理流表规则完成响应处理。
如果Flow Table N的流表规则未匹配命中报文,则Openflow交换机将报文通过Openflow协议的OFPT_PACKET_IN消息发送至SDN控制器。
步骤S310:SDN控制器解析OFPT_PACKET_IN消息的报文内容,提取源目标Mac地址,查询Flow Table资源池,获取该报文所需经过Flow Table ID(N)。
步骤S311:SDN控制器分析OFPT_PACKET_IN消息的报文内容,根据云网络的组网逻辑,生成对应的处理流表规则,并下发该处理流表规则至Flow Table ID N。报文根据下发的处理流表规则完成响应处理。
上述的面向虚拟机的多级流表管控方法及***将Openflow交换机的Flow Table作为一种虚拟机的网络资源,通过虚拟机Mac地址与虚拟机接入网卡Mac地址作为虚拟机网络资源的唯一标识,实现SDN控制器快速的索引与资源分配。
而且,按虚拟机的Flow Table多级流表分配方法,将多虚拟机产生的流表规则严格隔离,保障在同一节点上,某些虚拟机的流表规则过多,不会影响其他虚拟机的网络性能,合理的Flow Table分配方式,提升云网络的Openflow交换机的处理性能与合理性。
进一步,上述的面向虚拟机的多级流表管控方法及***通过MAC地址、IP地址、以太协议来报文所属的虚拟机,通过流表规则实现引导流表至相应的Flow Table,保障网络按虚拟机的多级流表的流表引导的准确性与高效性。
应该理解,本发明并不局限于上述实施方式,凡是对本发明的各种改动或变型不脱离本发明的精神和范围,倘若这些改动和变型属于本发明的权利要求和等同技术范围之内,则本发明也意味着包含这些改动和变型。

Claims (9)

1.一种面向虚拟机的多级流表管控方法,其特征在于,包括:
SDN控制器的静态流表管理引擎根据虚拟机的Mac地址信息和端口号,生成port-mac绑定流表规则,并下发至流表0;
SDN控制器的静态流表管理引擎根据虚拟机的Mac地址信息、端口号和IP地址,生成多级流表分发规则,并下发至流表1;
根据虚拟机的Mac地址信息查询数据库中虚拟机的IP地址信息和表资源池,注册空闲的流表N,并将所述port-mac绑定流表规则下发至所述流表N,其中,N为自然数并且N为2-252;
当报文进入Openflow交换机时,根据所述流表0的port-mac绑定流表规则确定该报文为虚拟机发出时,根据所述流表0的port-mac绑定流表规则获取虚拟机的网络入口端口号、源虚拟机的MAC地址、目标虚拟机的MAC地址、源虚拟机的IP地址和目标虚拟机的IP地址;然后根据流表1的多级流表分发规则将所述报文的流表转发至对应的流表N;具体如下:
SDN控制器的静态流表管理引擎根据虚拟机的Mac地址信息、端口号和IP地址,生成多级流表分发的流表规则,并下发至Flow Table 1,多级流表分配Flow Table,多级流表分发的流表规则逻辑如下:
a)匹配报文的网络入口为虚拟机的网络接入端口号,则转发至虚拟机分配的FlowTable N;
b)匹配报文的网络入口为交换机上行口,目标Mac地址为虚拟机Mac,则转发至虚拟机分配的Flow Table N;
c)匹配报文的网络入口为交换机上行口,目标IP地址为虚拟机IP,网络协议为Ipv4协议,则转发至虚拟机分配的Flow Table N;
d)匹配报文的网络入口为交换机上行口,目标IP地址为虚拟机IP,网络协议为Ipv6协议,则转发至虚拟机分配的Flow Table N;
e)匹配报文的网络入口为交换机上行口,目标IP地址为虚拟机IP,网络协议为arp协议,则转发至虚拟机分配的Flow Table N;
通过多级流表分发的流表规则,确保虚拟机发送的报文以及外部网络进入的报文,均可分配到虚拟机分配的Flow Table N中;
如果所述流表N的处理流表规则匹配所述报文,则将所述报文根据流表N的处理流表规则完成响应处理。
2.如权利要求1所述的面向虚拟机的多级流表管控方法,其特征在于,在将所述报文的流表转发至对应的流表N之后,还包括:
如果所述流表N的处理流表规则未匹配所述报文,则Openflow交换机将报文通过Openflow协议的OFPT_PACKET_IN消息发送至SDN控制器;
SDN控制器解析OFPT_PACKET_IN消息的报文内容以提取源目标Mac地址以及查询FlowTable资源池,从而获取该报文所需经过流表号;
SDN控制器分析OFPT_PACKET_IN消息的报文内容,根据云网络的组网逻辑,生成对应的处理流表规则,并下发所述处理流表规则至所述流表号对应的流表N;
将所述报文根据下发的处理流表规则完成响应处理。
3.如权利要求2所述的面向虚拟机的多级流表管控方法,其特征在于,SDN控制器的静态流表管理引擎生成port-mac绑定流表规则之前,还包括:
云平台创建虚拟机,通过预设的转换规则,将虚拟机Mac地址与虚拟网卡Mac地址进行初始化设置,并将将虚拟网卡接入Openflow交换机;
Openflow交换机将网卡接入的变更事件,通过Openflow协议的OFP_PORT_STATUS消息发送至SDN控制器;
SDN控制器的静态流表管理引擎接收到该OFP_PORT_STATUS消息,提取虚拟网卡名称,根据虚拟机接入网卡定义规则,利用该虚拟网卡名称判断是否为虚拟机网卡;
如果虚拟网卡名称不是虚拟机网卡,则下发流表规则,将匹配该网络入口的报文转发至所述流表1;如果虚拟网卡是虚拟机接入网卡,则提取虚拟网卡的Mac地址信息,通过预设转换规则,将虚拟网卡的Mac地址转换为虚拟机的Mac地址。
4.如权利要求3所述的面向虚拟机的多级流表管控方法,其特征在于,所述OFP_PORT_STATUS消息包含了虚拟网卡的名称、Mac地址、端口号。
5.如权利要求4所述的面向虚拟机的多级流表管控方法,其特征在于,所述port-mac绑定流表规则包括:
匹配报文的网络入口端口号为虚拟机接入网卡的端口号、源Mac地址为虚拟机的Mac地址,执行动作为转发至发至流表1;
如果匹配命中,则转发至发至流表1;
如果匹配不命中,则执行下一跳流表规则,匹配报文的网络入口端口号为虚拟机接入网卡的端口号,执行动作为丢弃。
6.如权利要求5所述的面向虚拟机的多级流表管控方法,其特征在于,在下发多级流表分发规则至流表N时,配置Table Miss的执行动作为封装成OFPT_PACKET_IN消息发送给SDN控制器。
7.一种面向虚拟机的多级流表管控***,用于管控OpenFlow交换机的多级流表处理,其特征在于,包括控制器和存储器,所述存储器中存储有计算机程序代码,所述控制器运行所述存储器中存储的计算机程序代码以执行以下步骤:
SDN控制器的静态流表管理引擎根据虚拟机的Mac地址信息和端口号,生成port-mac绑定流表规则,并下发至流表0;
SDN控制器的静态流表管理引擎根据虚拟机的Mac地址信息、端口号和IP地址,生成多级流表分发规则,并下发至流表1;
根据虚拟机的Mac地址信息查询数据库中虚拟机的IP地址信息和表资源池,注册空闲的流表N,并将所述port-mac绑定流表规则下发至所述流表N,其中,N为自然数并且N为2-252;
当报文进入Openflow交换机时,根据所述流表0的port-mac绑定流表规则确定该报文为虚拟机发出时,根据所述流表0的port-mac绑定流表规则获取虚拟机的网络入口端口号、源虚拟机的MAC地址、目标虚拟机的MAC地址、源虚拟机的IP地址和目标虚拟机的IP地址;然后根据流表1的多级流表分发规则将所述报文的流表转发至对应的流表N;具体如下:SDN控制器的静态流表管理引擎根据虚拟机的Mac地址信息、端口号和IP地址,生成多级流表分发的流表规则,并下发至Flow Table 1,多级流表分配Flow Table,多级流表分发的流表规则逻辑如下:
a)匹配报文的网络入口为虚拟机的网络接入端口号,则转发至虚拟机分配的FlowTable N;
b)匹配报文的网络入口为交换机上行口,目标Mac地址为虚拟机Mac,则转发至虚拟机分配的Flow Table N;
c)匹配报文的网络入口为交换机上行口,目标IP地址为虚拟机IP,网络协议为Ipv4协议,则转发至虚拟机分配的Flow Table N;
d)匹配报文的网络入口为交换机上行口,目标IP地址为虚拟机IP,网络协议为Ipv6协议,则转发至虚拟机分配的Flow Table N;
e)匹配报文的网络入口为交换机上行口,目标IP地址为虚拟机IP,网络协议为arp协议,则转发至虚拟机分配的Flow Table N;
通过多级流表分发的流表规则,确保虚拟机发送的报文以及外部网络进入的报文,均可分配到虚拟机分配的Flow Table N中;
如果所述流表N的处理流表规则匹配所述报文,则将所述报文根据流表N的处理流表规则完成响应处理。
8.如权利要求7所述的面向虚拟机的多级流表管控***,其特征在于,在将所述报文的流表转发至对应的流表N之后,还包括:
如果所述流表N的处理流表规则未匹配所述报文,则Openflow交换机将报文通过Openflow协议的OFPT_PACKET_IN消息发送至SDN控制器;
SDN控制器解析OFPT_PACKET_IN消息的报文内容以提取源目标Mac地址以及查询FlowTable资源池,从而获取该报文所需经过流表号;
SDN控制器分析OFPT_PACKET_IN消息的报文内容,根据云网络的组网逻辑,生成对应的处理流表规则,并下发所述处理流表规则至所述流表号对应的流表N;
将所述报文根据下发的处理流表规则完成响应处理。
9.如权利要求8所述的面向虚拟机的多级流表管控***,其特征在于,SDN控制器的静态流表管理引擎生成port-mac绑定流表规则之前,还包括:
云平台创建虚拟机,通过预设的转换规则,将虚拟机Mac地址与虚拟网卡Mac地址进行初始化设置,并将将虚拟网卡接入Openflow交换机;
Openflow交换机将网卡接入的变更事件,通过Openflow协议的OFP_PORT_STATUS消息发送至SDN控制器;
SDN控制器的静态流表管理引擎接收到该OFP_PORT_STATUS消息,提取虚拟网卡名称,根据虚拟机接入网卡定义规则,利用该虚拟网卡名称判断是否为虚拟机网卡;
如果虚拟网卡名称不是虚拟机网卡,则下发流表规则,将匹配该网络入口的报文转发至所述流表1;如果虚拟网卡是虚拟机接入网卡,则提取虚拟网卡的Mac地址信息,通过预设转换规则,将虚拟网卡的Mac地址转换为虚拟机的Mac地址。
CN202010558442.3A 2020-06-18 2020-06-18 一种面向虚拟机的多级流表管控方法及*** Active CN111726305B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010558442.3A CN111726305B (zh) 2020-06-18 2020-06-18 一种面向虚拟机的多级流表管控方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010558442.3A CN111726305B (zh) 2020-06-18 2020-06-18 一种面向虚拟机的多级流表管控方法及***

Publications (2)

Publication Number Publication Date
CN111726305A CN111726305A (zh) 2020-09-29
CN111726305B true CN111726305B (zh) 2021-03-16

Family

ID=72567348

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010558442.3A Active CN111726305B (zh) 2020-06-18 2020-06-18 一种面向虚拟机的多级流表管控方法及***

Country Status (1)

Country Link
CN (1) CN111726305B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112910776B (zh) * 2021-01-18 2022-10-18 北京火山引擎科技有限公司 一种数据转发方法、装置、设备及介质
CN113259387B (zh) * 2021-06-21 2021-09-24 江苏天翼安全技术有限公司 一种基于虚拟交换的防止蜜罐被控成为跳板机的方法
CN113839933B (zh) * 2021-09-13 2023-09-26 紫光云(南京)数字技术有限公司 一种利用安全组解决多网卡流量的方法
CN115567397B (zh) * 2022-09-21 2024-02-20 雅砻江流域水电开发有限公司 一种水电集控中心一体化平台***的云部署方法
CN117714398B (zh) * 2024-02-05 2024-05-10 浪潮电子信息产业股份有限公司 一种数据传输***、方法、电子设备及存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103281246A (zh) * 2013-05-20 2013-09-04 华为技术有限公司 报文处理方法及网络设备
CN103477593A (zh) * 2011-04-04 2013-12-25 日本电气株式会社 网络***、交换机和连接终端检测方法
CN105471756A (zh) * 2015-11-17 2016-04-06 浪潮(北京)电子信息产业有限公司 一种数据包处理方法及装置
CN106572032A (zh) * 2016-09-28 2017-04-19 浪潮电子信息产业股份有限公司 一种虚拟化网络优先级实现方法
CN106936777A (zh) * 2015-12-29 2017-07-07 中移(苏州)软件技术有限公司 基于OpenFlow的云计算分布式网络实现方法、***
CN107147533A (zh) * 2017-05-31 2017-09-08 郑州云海信息技术有限公司 一种基于sdn框架的流表配置下发方法及***
CN108183862A (zh) * 2018-01-24 2018-06-19 上海宽带技术及应用工程研究中心 软件定义交换网的通信方法/***、可读存储介质及设备
CN108512763A (zh) * 2018-04-16 2018-09-07 广州市品高软件股份有限公司 一种流表规则生成过程的跟踪方法
CN109660443A (zh) * 2018-12-26 2019-04-19 江苏省未来网络创新研究院 基于sdn的物理设备与虚拟网络通信方法和***

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105847157B (zh) * 2016-03-21 2018-12-18 中国人民解放军国防科学技术大学 基于sdn的标识网络间端到端的通信方法
US10097472B2 (en) * 2016-09-14 2018-10-09 At&T Intellectual Property I, L.P. Method and system for dynamically distributing and controlling a virtual gateway
TW201933837A (zh) * 2018-01-19 2019-08-16 思銳科技股份有限公司 虛擬網路隧道內流量資料擷取方法與系統

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103477593A (zh) * 2011-04-04 2013-12-25 日本电气株式会社 网络***、交换机和连接终端检测方法
CN103281246A (zh) * 2013-05-20 2013-09-04 华为技术有限公司 报文处理方法及网络设备
CN105471756A (zh) * 2015-11-17 2016-04-06 浪潮(北京)电子信息产业有限公司 一种数据包处理方法及装置
CN106936777A (zh) * 2015-12-29 2017-07-07 中移(苏州)软件技术有限公司 基于OpenFlow的云计算分布式网络实现方法、***
CN106572032A (zh) * 2016-09-28 2017-04-19 浪潮电子信息产业股份有限公司 一种虚拟化网络优先级实现方法
CN107147533A (zh) * 2017-05-31 2017-09-08 郑州云海信息技术有限公司 一种基于sdn框架的流表配置下发方法及***
CN108183862A (zh) * 2018-01-24 2018-06-19 上海宽带技术及应用工程研究中心 软件定义交换网的通信方法/***、可读存储介质及设备
CN108512763A (zh) * 2018-04-16 2018-09-07 广州市品高软件股份有限公司 一种流表规则生成过程的跟踪方法
CN109660443A (zh) * 2018-12-26 2019-04-19 江苏省未来网络创新研究院 基于sdn的物理设备与虚拟网络通信方法和***

Also Published As

Publication number Publication date
CN111726305A (zh) 2020-09-29

Similar Documents

Publication Publication Date Title
CN111726305B (zh) 一种面向虚拟机的多级流表管控方法及***
CN104010049B (zh) 基于sdn的以太网ip报文封装方法及网络隔离和dhcp实现方法
US7330918B2 (en) Buffer memory management method and system
CN108377671B (zh) 处理报文的方法和计算机设备
EP2773079B1 (en) Device and method for access control list conversion
CN103797774A (zh) 一种网络地址转换设备及方法
CN114024880B (zh) 基于代理ip与流表的网络靶场探针采集方法与***
CN112965824A (zh) 报文的转发方法及装置、存储介质、电子设备
CN1946061B (zh) 一种快速处理报文的方法及装置
CN108347392B (zh) 业务报文跨板处理方法、装置及***
CN104683428B (zh) 网络业务处理方法与装置
CN113472917B (zh) 一种数据报文的网络地址转换方法、设备及介质
CN111416865A (zh) 一种基于拟态防御的协议代理处理方法及***
CN106533943A (zh) 基于网络交换芯片的微码和流表的实现方法
CN108471390B (zh) 业务报文跨板处理***及业务报文的重定向方法
CN112235436A (zh) 网络地址转换规则匹配方法及设备
CN111030971A (zh) 一种分布式访问控制方法、装置及存储设备
CN111740910A (zh) 一种报文处理方法、装置、网络传输设备及报文处理***
CN114827292A (zh) 工业异构协议高速转换优化处理方法及***
Yan et al. Open vSwitch Vxlan performance acceleration in cloud computing data center
CN111294316B (zh) 基于用户态协议栈虚拟路由器的网络隔离方法和装置
CN115514579B (zh) 基于IPv6地址映射流标签实现业务标识的方法及***
CN105357332B (zh) 一种网络地址转换方法及装置
CN115499392A (zh) 租户隔离服务方法、装置,以及,电子设备
KR20210016802A (ko) 소프트웨어 정의 네트워킹 환경에서 서버-클라이언트 기반의 네트워크 서비스를 위한 플로우 테이블을 최적화하는 방법 및 이를 위한 sdn 스위치

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