CN108494657B - 基于Open vSwitch的OpenStack云平台虚拟探针镜像方法 - Google Patents

基于Open vSwitch的OpenStack云平台虚拟探针镜像方法 Download PDF

Info

Publication number
CN108494657B
CN108494657B CN201810305367.2A CN201810305367A CN108494657B CN 108494657 B CN108494657 B CN 108494657B CN 201810305367 A CN201810305367 A CN 201810305367A CN 108494657 B CN108494657 B CN 108494657B
Authority
CN
China
Prior art keywords
flow
int
virtual
sampling
probe
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
CN201810305367.2A
Other languages
English (en)
Other versions
CN108494657A (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.)
Suzhou Yunshan Century Networks Technology Co ltd
Original Assignee
Suzhou Yunshan Century Networks Technology 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 Suzhou Yunshan Century Networks Technology Co ltd filed Critical Suzhou Yunshan Century Networks Technology Co ltd
Priority to CN201810305367.2A priority Critical patent/CN108494657B/zh
Publication of CN108494657A publication Critical patent/CN108494657A/zh
Application granted granted Critical
Publication of CN108494657B publication Critical patent/CN108494657B/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing

Abstract

本发明实施例公开一种基于Open vSwitch的OpenStack云平台虚拟探针镜像方法,包括:在第一宿主机上设置一个采集器虚拟机和至少一个VM1,在第二宿主机上设置至少一个VM2;配置采样限流功能参数,提供预先设置的br‑int和br‑vTAP两种网桥组织方式以供用户选择;接收用户的指令,以确定网桥组织方式;根据所确定的网桥组织方式,利于预设的虚拟探针方式,分别将VM1的特定流量和VM2的特定流量镜像至采集器虚拟机,并根据采样限流功能参数对虚拟探针出口进行流控。本发明实施例能基于Open vSwitch以及OpenStack网络虚拟化技术,对不同网络类型的云平台东西向流量进行镜像,实现镜像源目的地负载均衡。

Description

基于Open vSwitch的OpenStack云平台虚拟探针镜像方法
技术领域
本发明实施例涉及计算机技术领域,具体涉及一种基于Open vSwitch的OpenStack云平台虚拟探针镜像方法。
背景技术
随着大数据和云计算的飞速发展,数据中心在近几年得到空前的发展速度。而数据中心网络部分,无论是面临的客户场景,还是具体的实现技术,都体现出前所未有的复杂性。对数据中心的网包进行镜像、存储、查询和分析是运维必不可少的环节。
数据中心云平台的流量,从早期的80%南北向流量,即外部用户与内部服务器之间交互的流量,转变为70%的东西向流量,即数据中心内部服务器之间交互的流量。数据中心的南北向流量采集一般通过分光或端口镜像进行。东西向流量则较为复杂,可简要分为同宿主机虚拟机之间流量和不同宿主机虚拟机之间流量。同宿主机虚拟机之间流量,不会发送至宿主机物理网卡接口,因而也无法在物理交换机上进行采集。不同宿主机虚拟机之间的流量,根据网络类型在物理交换机上有不同的呈现。如VLAN(虚拟局域网)网络会在网包上加上特殊的tag(标签)加以区分,如GRE(通用路由封装)或VxLAN(虚似扩展局域网)网络,在物理交换机上采集到的是封装后的网包。
对于OpenStack云平台Open vSwitch虚拟网络驱动方式,无论虚拟机之间流量是否跨宿主机,在宿主机内的虚拟机并不直接和物理交换机相连,而是连接在Open vSwitch实现的虚拟交换机上。因此,在虚拟交换机上部署虚拟探针,能对OpenStack云平台东西向流量进行精准的采集。
Tap-as-a-Service(简称TaaS)是OpenStack网络服务的扩展插件,其目的是为租户提供租户网络内虚拟机流量的镜像,用于复杂网络环境下的排错以及提升网络能见度。
TaaS面向OpenStack云平台下Open vSwitch虚拟网络驱动方式,支持GRE和VxLAN两种网络类型。
在控制面,TaaS提供以下应用程序接口(API):
Create TapService创建虚拟探针服务,用于接收被镜像流量;
List TapService列举虚拟探针服务;
Delete TapService删除虚拟探针服务;
Create TapFlow创建探针流,用于复制被监控流量;
List TapFlow列举探针流;
Delete TapFlow删除探针流。
在数据面,TaaS调用宿主机上运行的Open vSwitch进程,创建/删除虚拟网桥,以及添加/删除OpenFlow流表,实现控制面提供的功能。
br-int为OpenStack云平台Open vSwitch原生创建的虚拟网桥,用于连接虚拟机网口。TaaS在br-int上增加的核心流表规则如下:
网包到达br-int,如非发自br-tap,做Normal操作,并复制转发到br-tap;
网包到达br-int,如发自br-tap,转发至TapService网口(如有)。
br-tun为OpenStack云平台Open vSwitch原生创建的虚拟网桥,用于跨宿主机GRE/VxLan隧道网包传输。TaaS在br-tun上添加的核心流表规则如下:
从br-tap发来的网包,广播至所有非patch端口;
从远程隧道收到单播TaaS网包,转发至br-tap;
从远程隧道收到广播TaaS网包,转发至br-tap,同时向原隧道发送确认;
从远程隧道收到广播确认,创建单播流表规则,停止广播。
br-tap为TaaS在宿主机中创建的虚拟网桥,用于实现镜像网包的暂存和转发。TaaS在br-tap上添加的核心流表规则如下:
如宿主机上没有TapService,从br-int发来的网包,转发至br-tun;
如宿主机上有TapService,从br-int发来的网包,返回到br-int;
从br-tun发来的网包,转发至br-int。
然而,TaaS受当前技术限制,无法完全满足数据中心东西向流量采集的需求,具体存在如下功能缺陷:1、仅支持GRE和VxLAN网络类型,不支持应用广泛的VLAN;2、粒度粗糙,只支持整个VM流量的镜像,不支持更细粒度的镜像规则;3、远程镜像复用了生产网络资源,影响生产网络性能;4、远程TapService和TapFlow采用了广播-回应-绑定的规则,体现了位置无关性,但无法指定镜像目的端口,可能造成TapService负载不均;5、镜像流量非常大的时候,需要消耗宿主机上大量资源用于转发镜像流量,影响生产环境,缺乏对转发流量的控制手段。
发明内容
由于现有方法存在上述问题,本发明实施例提出一种基于Open vSwitch的OpenStack云平台虚拟探针镜像方法。
第一方面,本发明实施例提出一种基于Open vSwitch的OpenStack云平台虚拟探针镜像方法,包括:
在第一宿主机上设置一个采集器虚拟机和至少一个生产环境虚拟机VM1,在第二宿主机上设置至少一个生产环境虚拟机VM2;
配置采样限流功能参数,提供预先设置的br-int和br-vTAP两种网桥组织方式以供用户选择;
接收用户的指令,以确定网桥组织方式;
根据所确定的网桥组织方式,利用预设的虚拟探针方式,将VM1的特定流量镜像至所述采集器虚拟机,以及利用预设的虚拟探针方式,将VM2的特定流量镜像至所述采集器虚拟机,并根据所述采样限流功能参数,对虚拟探针出口进行流控。
可选地,在配置采样限流功能参数,提供预先设置的br-int和br-vTAP两种网桥组织方式以供用户选择时,所述方法还包括:
在Open vSwitch流表中设置特定cookie值用于区分原生流表并用于增删查询管理,设置寄存器reg0至reg7用于实现流量的镜像与正常转发。
可选地,若所确定的网桥组织方式为预先设置的br-int网桥组织方式,则所述利用预设的虚拟探针方式,将VM1的特定流量镜像至所述采集器虚拟机,包括:
在第一宿主机上调用Create TapService API,以创建虚拟探针服务并在云平台原生br-int上增加虚拟探针的第一流表,通过所述第一流表将VxLAN隧道端口转发过来的流量转发至所述采集器虚拟机的网卡;
在第一宿主机上调用Create TapFlow API,以创建探针流并在云平台原生br-int上增加虚拟探针的第二流表,通过所述第二流表将VM1的特定流量复制转发至所述采集器虚拟机。
可选地,若所确定的网桥组织方式为预先设置的br-int网桥组织方式,则所述利用预设的虚拟探针方式,将VM2的特定流量镜像至所述采集器虚拟机,包括:
在第二宿主机上调用Create TapFlow API,以创建探针流并在云平台原生br-int上增加虚拟探针的第三流表,通过所述第三流表将VM2的特定流量复制转发至VxLAN隧道端口,以通过VxLAN隧道端口将VM2的特定流量镜像至所述采集器虚拟机,其中,所述第二宿主机上的br-int端口与第一宿主机1上br-int端口为VxLAN隧道对,发送至所述VxLAN隧道对中任意一个端口的网包将会被所述VxLAN隧道对中的另一个端口接收。
可选地,若所确定的网桥组织方式为预先设置的br-vTAP网桥组织方式,则对于第一宿主机和第二宿主机,均在预先设置的br-int网桥组织方式的基础上新增一个br-vTAP虚拟网桥,并在所述br-vTAP虚拟网桥创建VxLAN端口用于远程镜像;
相应地,所述利用预设的虚拟探针方式,将VM1的TCP协议流量镜像至所述采集器虚拟机,包括:
在第一宿主机上调用Create TapService API,以创建虚拟探针服务并在云平台原生br-int上增加虚拟探针的第四流表,通过所述第四流表将VM1的特定流量转发至br-vTAP,在br-vTAP上添加第五流表,通过所述第五流表按照预设细粒度规则对流量进行细粒度过滤,将细粒度过滤后的流量返回给br-int,在br-int上增加虚拟探针的第一流表,通过所述第一流表将VxLAN隧道端口转发过来的流量转发至所述采集器虚拟机的网卡;
在第一宿主机上调用Create TapFlow API,以创建探针流并在云平台原生br-int上增加虚拟探针的第二流表,通过所述第二流表将VM1的特定流量复制转发至所述采集器虚拟机;
相应地,所述利用预设的虚拟探针方式,将VM2的特定流量镜像至所述采集器虚拟机,包括:
在第二宿主机上调用Create TapFlow API,以创建探针流并在云平台原生br-int上增加虚拟探针的第三流表,通过所述第三流表将VM2的特定流量复制转发至VxLAN隧道端口,以及在云平台原生br-int上增加虚拟探针的第六流表,通过所述第六流表将VxLAN隧道端口接收到的流量转发至br-vTAP,在br-vTAP上添加第五流表,通过所述第五流表按照预设细粒度规则对流量进行细粒度过滤,将细粒度过滤后的流量返回给br-int,以通过br-int将细粒度过滤后的流量镜像至所述采集器虚拟机,其中,所述第二宿主机上的br-int端口与第一宿主机1上br-int端口为VxLAN隧道对,发送至所述VxLAN隧道对中任意一个端口的网包将会被所述VxLAN隧道对中的另一个端口接收。
可选地,所述通过所述第二流表将VM1的特定流量复制转发至所述采集器虚拟机,包括:
当匹配到目的MAC地址或源MAC地址为VM1的网包时,将网包做VLAN Tag的修改后转发至所述采集器虚拟机的网卡端口;
在将做VLAN Tag修改后的网包转发至所述采集器虚拟机的网卡端口后,对网包的寄存器reg0字段做一个特殊赋值,通过resubmit(,0)操作重新触发流表匹配,以被OpenvSwitch环境内原有的流表处理,实现正常转发。
可选地,所述采样限流功能参数,包括:采样率SAMPLE_RATE、开始采样阈值RATE_TO_START_SAMPLING、关闭采样阈值RATE_TO_STOP_SAMPLING、统计镜像流量速率的周期POLLING_INTERVAL和采样控制的周期CONTROL_INTERVAL;
相应地,所述根据所述采样限流功能参数,对虚拟探针出口进行流控,包括:
根据所述采样限流功能参数,进行镜像流量速率的实时统计;
根据所述采样限流功能参数,进行目的地网卡采样限流。
可选地,所述根据所述采样限流功能参数,进行目的地网卡采样限流,包括:
若同时满足POLLING_INTERVAL和CONTROL_INTERVAL,则获取POLLING_INTERVAL内的镜像流量速率,将获取的镜像流量速率分别与开始采样阈值及关闭采样阈值进行比较;
若获取的镜像流量速率高于开始采样阈值,则通过对目的地虚拟机网络接口执行tc命令,开始采样;
若获取的镜像流量速率低于关闭采样阈值,则对目的地虚拟机网络接口执行tc命令,关闭采样;
若不同时满足POLLING_INTERVAL和CONTROL_INTERVAL,则休眠预设时间段。
可选地,所述若所确定的网桥组织方式为预先设置的br-int网桥组织方式,则所述根据所述采样限流功能参数,进行镜像流量速率的实时统计,包括:
第一宿主机上调用流表查询命令,获取所有转发目的地为本地的流表;
对于每条流表,通过正则表达式匹配,获取所有流表中实时累计镜像流量值n_bytes,并对所述n_bytes进行累加;
将本次统计所获取的n_bytes与上一次统计所获取的n_bytes相减后,除以POLLING_INTERVAL,获得实时镜像流量速率。
可选地,所述若所确定的网桥组织方式为预先设置的br-vTAP网桥组织方式,则所述根据所述采样限流功能参数,进行镜像流量速率的实时统计,包括:
获取所有从br-vTAP转发至br-int的流表;
对于每条流表,通过正则表达式匹配,获取所有流表中实时累计镜像流量值n_bytes,并对所述n_bytes进行累加;
将本次统计所获取的n_bytes与上一次统计所获取的n_bytes相减后,除以POLLING_INTERVAL,获得实时镜像流量速率。
由上述技术方案可知,本发明实施例通过在第一宿主机上设置一个采集器虚拟机和至少一个VM1,在第二宿主机上设置至少一个VM2;配置采样限流功能参数,提供预先设置的br-int和br-vTAP两种网桥组织方式以供用户选择;接收用户的指令,以确定网桥组织方式;根据所确定的网桥组织方式,利用预设的虚拟探针方式,分别将VM1的特定流量和VM2的特定流量镜像至采集器虚拟机,并根据采样限流功能参数对虚拟探针出口进行流控,由此,能够能够基于Open vSwitch以及OpenStack网络虚拟化技术,对不同网络类型的云平台东西向流量进行镜像,实现镜像源目的地负载均衡。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
图1为本发明一实施例提供的一种基于Open vSwitch的OpenStack云平台虚拟探针镜像方法的流程示意图;
图2为利用本发明实施例提供的虚拟探针架构示意图;
图3为利用本发明实施例提供的br-int网桥组织方式的虚拟探针架构示意图;
图4为利用本发明实施例提供的br-vTAP网桥组织方式的虚拟探针架构示意图;
图5为本发明实施例提供的一种VM1的特定流量和采集器虚拟机接收流量的时间序列图。
具体实施方式
下面结合附图,对本发明的具体实施方式作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
图1示出了本发明一实施例提供的一种基于Open vSwitch的OpenStack云平台虚拟探针镜像方法的流程示意图,如图1所示,本实施例的基于Open vSwitch的OpenStack云平台虚拟探针镜像方法,包括:
S1、在第一宿主机上设置一个采集器虚拟机和至少一个生产环境虚拟机VM1,在第二宿主机上设置至少一个生产环境虚拟机VM2。
S2、配置采样限流功能参数,提供预先设置的br-int和br-vTAP两种网桥组织方式以供用户选择。
在具体应用中,在配置采样限流功能参数,提供预先设置的br-int和br-vTAP两种网桥组织方式以供用户选择时,所述方法还包括:
在Open vSwitch流表中设置特定cookie值用于区分原生流表并用于增删查询管理,设置寄存器reg0至reg7用于实现流量的镜像与正常转发。
可以理解的是,本实施例中的Open vSwitch流表cookie名称由三部分组成,COOKIE=”0xf6%08x%06x”<tunnel_ip><flow_id>,其中:f6用于标识,可修改为其它值,
四个字节<tunnel_ip>用于存放数据目的地IP,本地为0,如数据目的地IP为192.168.0.1则tunnel_ip为0xC0A8001,
三个字节<flow_id>用于存放规则id,Cookie的定义用于批量流表查询与删除。
可以理解的是,所述预先设置的br-int网桥组织方式可参考图3,此方式在云平台原生br-int上增删所有虚拟探针相关流表,并创建VxLAN端口用于远程镜像,其核心流表规则如下
ovs-ofctl add-flow br-int cookie=<cookie>,priority=65533,reg0=0,dl_src=<mac>,$rule actions="mod_vlan_vid:<segment_id>,output:<exporter_ofport>,strip_vlan,load:0xf1f2f3f4->NXM_NX_REG0[],resubmit(,0)"
ovs-ofctl add-flow br-int cookie=<cookie>,priority=65533,reg0=0,dl_dst=<mac>,vlan_tci=0x1000/0x1000,$rule actions="output:<exporter_ofport>,load:0xf1f2f3f4->NXM_NX_REG0[],resubmit(,0)"
ovs-ofctl add-flow br-int cookie=<cookie>,priority=65534,in_port=<tunnel_ofport>,actions="output:<exporter_ofport>"
可以理解的是,所述预先设置的br-vTAP网桥组织方式可参考图4,此方式新增一个br-vTAP虚拟网桥,并在此网桥创建VxLAN端口用于远程镜像。在br-int上添加的流表用于把整个VM的流量转发至br-vTAP,br-vTAP上添加的流表用于实现细粒度过滤,再返回给br-int。此方式可保证在br-int上添加流表的数量只与VM个数成正比,与细粒度镜像规则数量无关。
(br-int)ovs-ofctl add-flow br-int cookie=<cookie>,priority=65534,in_port=<patch_int_tap_ofport>,actions="output:<exporter_port_ofport>"
(br-int)ovs-ofctl add-flow br-int cookie=<cookie>priority=65533,reg0=0,dl_dst=<mac>,actions=”output:<patch_int_tap_ofport>,load:0xf1f2f3f4->NXM_NX_REG0[],resubmit(,0)”
(br-int)ovs-ofctl add-flow br-int cookie=<cookie>,priority=65533,reg0=0,dl_src=<mac>,actions=”output:<patch_int_tap_ofport>,load:0xf1f2f3f4->NXM_NX_REG0[],resubmit(,0)”
(br-vTAP)ovs-ofctl add-flow br-vTAP cookie=<cookie>priority=65534,dl_src=<mac>,$rule,actions=”output:<patch_tap_int_ofport>”
(br-vTAP)ovs-ofctl add-flow br-vTAP cookie=<cookie>priority=65534,dl_dst=<mac>,$rule,actions=”output:<patch_tap_int_ofport>”
(br-vTAP)ovs-ofctl add-flow br-vTAP cookie=<cookie>priority=65534,in_port=<tunnel_ofport>,actions=”output:<patch_tap_int_ofport>”
S3、接收用户的指令,以确定网桥组织方式。
S4、根据所确定的网桥组织方式,利用预设的虚拟探针方式,将VM1的特定流量镜像至所述采集器虚拟机,以及利用预设的虚拟探针方式,将VM2的特定流量镜像至所述采集器虚拟机,并根据所述采样限流功能参数,对虚拟探针出口进行流控。
本实施例支持IP地址+协议(TCP/UDP/ANY)+端口的过滤规则组合。例如,本实施例所述VM1的特定流量可以为VM1的TCP协议流量,本实施例所述VM2的特定流量可以为VM2的TCP协议80端口的流量。
可以理解的是,本实施例中的虚拟探针架构可以参考图2。
在具体应用中,若所确定的网桥组织方式为预先设置的br-int网桥组织方式,则所述步骤S4中的“利用预设的虚拟探针方式,将VM1的特定流量镜像至所述采集器虚拟机”,可以包括:
在第一宿主机上调用Create TapService API,以创建虚拟探针服务并在云平台原生br-int上增加虚拟探针的第一流表,通过所述第一流表将VxLAN隧道端口转发过来的流量转发至所述采集器虚拟机的网卡;
在第一宿主机上调用Create TapFlow API,以创建探针流并在云平台原生br-int上增加虚拟探针的第二流表,通过所述第二流表将VM1的特定流量复制转发至所述采集器虚拟机。
在具体应用中,若所确定的网桥组织方式为预先设置的br-int网桥组织方式,则所述步骤S4中的“利用预设的虚拟探针方式,将VM2的特定流量镜像至所述采集器虚拟机”,可以包括:
在第二宿主机上调用Create TapFlow API,以创建探针流并在云平台原生br-int上增加虚拟探针的第三流表,通过所述第三流表将VM2的特定流量复制转发至VxLAN隧道端口,以通过VxLAN隧道端口将VM2的特定流量镜像至所述采集器虚拟机,其中,所述第二宿主机上的br-int端口与第一宿主机1上br-int端口为VxLAN隧道对,发送至所述VxLAN隧道对中任意一个端口的网包将会被所述VxLAN隧道对中的另一个端口接收。
在具体应用中,若所确定的网桥组织方式为预先设置的br-vTAP网桥组织方式,则所述方法还包括:
对于第一宿主机和第二宿主机,均在预先设置的br-int网桥组织方式的基础上新增一个br-vTAP虚拟网桥,并在所述br-vTAP虚拟网桥创建VxLAN端口用于远程镜像;
相应地,所述步骤S4中的“利用预设的虚拟探针方式,将VM1的特定流量镜像至所述采集器虚拟机”,可以包括:
在第一宿主机上调用Create TapService API,以创建虚拟探针服务并在云平台原生br-int上增加虚拟探针的第四流表,通过所述第四流表将VM1的特定流量转发至br-vTAP,在br-vTAP上添加第五流表,通过所述第五流表按照预设细粒度规则对流量进行细粒度过滤,将细粒度过滤后的流量返回给br-int,在br-int上增加虚拟探针的第一流表,通过所述第一流表将VxLAN隧道端口转发过来的流量转发至所述采集器虚拟机的网卡;
在第一宿主机上调用Create TapFlow API,以创建探针流并在云平台原生br-int上增加虚拟探针的第二流表,通过所述第二流表将VM1的特定流量复制转发至所述采集器虚拟机;
相应地,所述步骤S4中的“利用预设的虚拟探针方式,将VM2的特定流量镜像至所述采集器虚拟机”,可以包括:
在第二宿主机上调用Create TapFlow API,以创建探针流并在云平台原生br-int上增加虚拟探针的第三流表,通过所述第三流表将VM2的特定流量复制转发至VxLAN隧道端口,以及在云平台原生br-int上增加虚拟探针的第六流表,通过所述第六流表将VxLAN隧道端口接收到的流量转发至br-vTAP,在br-vTAP上添加第五流表,通过所述第五流表按照预设细粒度规则对流量进行细粒度过滤,将细粒度过滤后的流量返回给br-int,以通过br-int将细粒度过滤后的流量镜像至所述采集器虚拟机,其中,所述第二宿主机上的br-int端口与第一宿主机1上br-int端口为VxLAN隧道对,发送至所述VxLAN隧道对中任意一个端口的网包将会被所述VxLAN隧道对中的另一个端口接收。
可以理解的是,本实施例的预设细粒度规则支持配置基于IP地址,Port端口号和TCP/UDP协议的镜像规则。当IP地址,端口号,协议指定后,将根据排列组合生成各种可能的规则,组合成具体流表。
进一步地,上述通过所述第二流表将VM1的特定流量复制转发至所述采集器虚拟机,包括:
当匹配到目的MAC地址或源MAC地址为VM1的网包时,将网包做VLAN Tag的修改后转发至所述采集器虚拟机的网卡端口;
在将做VLAN Tag修改后的网包转发至所述采集器虚拟机的网卡端口后,对网包的寄存器reg0字段做一个特殊赋值,通过resubmit(,0)操作重新触发流表匹配,以被OpenvSwitch环境内原有的流表处理,实现正常转发。
在具体应用中,所述采样限流功能参数,可以包括:采样率SAMPLE_RATE、开始采样阈值RATE_TO_START_SAMPLING、关闭采样阈值RATE_TO_STOP_SAMPLING、统计镜像流量速率的周期POLLING_INTERVAL和采样控制的周期CONTROL_INTERVAL等参数;
相应地,所述步骤S4中的“根据所述采样限流功能参数,对虚拟探针出口进行流控”,可以包括图中未示出的步骤P1和P2:
P1、根据所述采样限流功能参数,进行镜像流量速率的实时统计。
具体地,若所确定的网桥组织方式为预先设置的br-int网桥组织方式,则所述步骤P1,可以包括:
第一宿主机上调用流表查询命令,(可执行ovs-ofctl dump-flows br-intcookie=0xf600000000000000/0xffffffffff000000)获取所有转发目的地为本地的流表;
对于每条流表,通过正则表达式匹配,获取所有流表中实时累计镜像流量值n_bytes,并对所述n_bytes进行累加;
将本次统计所获取的n_bytes与上一次统计所获取的n_bytes相减后,除以POLLING_INTERVAL,获得实时镜像流量速率。
具体地,若所确定的网桥组织方式为预先设置的br-vTAP网桥组织方式,则所述步骤P1,可以包括:
(可执行ovs-ofctl dump-flows br-int in_port=<patch_int_tap_ofport>)获取所有从br-vTAP转发至br-int的流表;
对于每条流表,通过正则表达式匹配,获取所有流表中实时累计镜像流量值n_bytes,并对所述n_bytes进行累加;
将本次统计所获取的n_bytes与上一次统计所获取的n_bytes相减后,除以POLLING_INTERVAL,获得实时镜像流量速率。
P2、根据所述采样限流功能参数,进行目的地网卡采样限流。
具体地,所述步骤P2可以包括:
若同时满足POLLING_INTERVAL和CONTROL_INTERVAL,则获取POLLING_INTERVAL内的镜像流量速率,将获取的镜像流量速率分别与开始采样阈值及关闭采样阈值进行比较;
若获取的镜像流量速率高于开始采样阈值,则通过对目的地虚拟机网络接口执行tc命令,开始采样(开启采样tc qdisc replace dev<port_name>root netem lossrate%);
若获取的镜像流量速率低于关闭采样阈值,则对目的地虚拟机网络接口执行tc命令,关闭采样(关闭采样tc qdisc replace dev<port_name>root pfifo);
若不同时满足POLLING_INTERVAL和CONTROL_INTERVAL,则休眠预设时间段。
在具体应用中,举例来说,所述预设时间段可以设置为1秒,本实施例并不对其进行限制,可以根据实际情况进行具体设置。
可以理解的是,本实施例在br-int或br-vTAP上创建计算节点间两两相连的VxLAN隧道,支持将本地虚拟探针镜像的流量往远程虚拟探针发送。此隧道使用的IP地址分两种情况:
1、独立监控网络IP。独立监控网络IP需要云平台管理者在主机上提供额外的物理网卡用于虚拟探针远程流量发送。
2、计算节点控制面IP。当云平台管理者无法在主机上提供额外的物理网卡时,复用主机上控制面IP,控制面IP与数据面IP相互隔离,因而远程镜像不会对生产网络吞吐量带来冲击。
在具体应用中,本实施例还提供如下控制面API:
Create TapService:创建虚拟探针服务,用于接收镜像流量;
Debug TapService:诊断当前虚拟探针服务,如有错误则重新下发流表;
Delete TapService:删除虚拟探针服务;
Create TapFlow:创建探针流,用于镜像被监控流量;
Debug TapFlow:诊断当前所有探针流,如有错误则重新下发流表;
Delete TapFlow:删除探针流;
Get TapFlow:获取特定探针流的实时统计流量{packet_in,packet_out};
Get vTAP status:获取宿主机虚拟探针的运行状态{enabled,sample_rate,rate_to_start_sampling,rate_to_stop_sampling,polling_interval,control_interval,…};
Put vTAP status修改宿主机虚拟探针的运行状态{enabled,sample_rate,rate_to_start_sampling,rate_to_stop_sampling,polling_interval,control_interval,…}。
本实施例的基于Open vSwitch的OpenStack云平台虚拟探针镜像方法,通过在第一宿主机上设置一个采集器虚拟机和至少一个VM1,在第二宿主机上设置至少一个VM2;配置采样限流功能参数,提供预先设置的br-int和br-vTAP两种网桥组织方式以供用户选择;接收用户的指令,以确定网桥组织方式;根据所确定的网桥组织方式,利用预设的虚拟探针方式,分别将VM1的特定流量和VM2的特定流量镜像至采集器虚拟机,并根据采样限流功能参数对虚拟探针出口进行流控,由此,能够基于Open vSwitch以及OpenStack网络虚拟化技术,对不同网络类型的云平台东西向流量进行镜像,提供细粒度镜像规则,实现镜像源目的地负载均衡,并支持采样可控性。本实施例所述方法实现了高效细粒度可扩展的虚拟探针镜像方法,支持VLAN,VxLAN和GRE网络类型,支持细粒度的策略配置,减少镜像流量,远程镜像的转发不影响生产网络,控制面可指定镜像源和目的地,实现负载均衡,根据镜像流量的大小开启/关闭采样,降低对宿主机性能的冲击。
本实施例所述方法可应用于运营商网络、数据中心网络以及企业网络,为云平台监控提供可靠高效率的镜像服务,优化网络能见度,节约网络运维成本
下面以图3云平台实例,对本发明的实施方式做进一步详细描述。
图3中包括两台云平台宿主机,其中宿主机1上有若干生产环境虚拟机,和一个用于收集镜像流量的云监控平台采集器虚拟机。宿主机2上有若干生产环境虚拟机。虚拟探针的任务为把VM1的TCP协议流量和VM2的TCP协议80端口的流量镜像至采集器。虚拟探针网桥配置以br-int为例,不创建br-vTAP。
其中,VM1的TCP协议流量:VM1和采集器在同一宿主机中,属于本地镜像。虚拟探针先在宿主机1上调用Create TapService API,增加以下流表,用于把VxLAN隧道端口转发过来的流量转发至采集器网卡。即凡是从端口60(本例子中为VxLAN隧道端口)进入的网包,转发至端口20(本例子中为采集器网卡端口).
cookie=0xf600000000000000,priority=65534,in_port=60,actions=output:20[1]
调用Create TapFlow API,增加以下流表,用于把VM1的TCP流量复制转发至采集器。即每当匹配到目的或源MAC地址为VM1的TCP网包,把网包做VLAN Tag的修改,转发至端口20(采集器网卡端口)。转发至采集器端口后,为确保原网包的正常转发,会对网包的reg0字段做一个特殊赋值,通过resubmit(,0)操作重新触发流表匹配,由于此时reg0已经非零,不会匹配到虚拟探针流表,会被Open vSwitch环境内原有的流表处理,实现正常转发。
cookie=0xf6000000000000b3,priority=65533,tcp,reg0=0,dl_src=fa:16:3e:70:50:67actions=mod_vlan_vid:1024,output:20,strip_vlan,load:0xf1f2f3f4->NXM_NX_REG0[],resubmit(,0)
cookie=0xf6000000000000b3,priority=65533,tcp,reg0=0,vlan_tci=0x1000/0x1000,dl_dst=fa:16:3e:70:50:67actions=output:20,load:0xf1f2f3f4->NXM_NX_REG0[],resubmit(,0)
cookie=0xf6000000000000b3,priority=65533,tcp,reg0=0,vlan_tci=0x0000,dl_dst=fa:16:3e:70:50:67actions=mod_vlan_vid:1024,output:20,strip_vlan,load:0xf1f2f3f4->NXM_NX_REG0[],resubmit(,0)
其中,VM2的TCP协议80端口流量:VM2和采集器不在同一宿主机上,属于远程镜像。在宿主机2调用Create TapFlow API,增加以下流表,将VM2的TCP协议80端口流量复制转发至VxLAN隧道端口。宿主机2上br-int端口50与宿主机1上br-int端口60为VxLAN隧道对,发送至其中一个端口的网包将会被另一个端口接收。
cookie=0xf6000000000000bf,priority=65533,tcp,reg0=0,dl_src=fa:16:3e:29:83:6f,tp_src=80actions=mod_vlan_vid:1024,output:50,strip_vlan,load:0xf1f2f3f4->NXM_NX_REG0[],resubmit(,0)
cookie=0xf6000000000000bf,priority=65533,tcp,reg0=0,dl_src=fa:16:3e:29:83:6f,tp_dst=80actions=mod_vlan_vid:1024,output:50,strip_vlan,load:0xf1f2f3f4->NXM_NX_REG0[],resubmit(,0)
cookie=0xf6000000000000bf,priority=65533,tcp,reg0=0,vlan_tci=0x1000/0x1000,dl_dst=fa:16:3e:29:83:6f,tp_src=80actions=output:50,load:0xf1f2f3f4->NXM_NX_REG0[],resubmit(,0)
cookie=0xf6000000000000bf,priority=65533,tcp,reg0=0,vlan_tci=0x1000/0x1000,dl_dst=fa:16:3e:29:83:6f,tp_dst=80actions=output:50,load:0xf1f2f3f4->NXM_NX_REG0[],resubmit(,0)
cookie=0xf6000000000000bf,priority=65533,tcp,reg0=0,vlan_tci=0x0000,dl_dst=fa:16:3e:29:83:6f,tp_src=80actions=mod_vlan_vid:1024,output:50,strip_vlan,load:0xf1f2f3f4->NXM_NX_REG0[],resubmit(,0)
cookie=0xf6000000000000bf,priority=65533,tcp,reg0=0,vlan_tci=0x0000,dl_dst=fa:16:3e:29:83:6f,tp_dst=80actions=mod_vlan_vid:1024,output:50,strip_vlan,load:0xf1f2f3f4->NXM_NX_REG0[],resubmit(,0)
宿主机1的实时镜像流量检测宿主机1承担将镜像流量转发至采集器的任务,需要检测镜像流量的大小,决定是否开启采样控制。宿主机1上调用流表查询命令:
$ovs-ofctl dump-flows br-int cookie=0xf600000000000000/0xffffffffff000000
获得流表为:
cookie=0xf600000000000000,n_bytes=21521,priority=65534,in_port=60,actions=output:20
cookie=0xf6000000000000b3,n_bytes=721521,priority=65533,tcp,reg0=0,dl_src=fa:16:3e:70:50:67actions=mod_vlan_vid:1024,output:20,strip_vlan,load:0xf1f2f3f4->NXM_NX_REG0[],resubmit(,0)
cookie=0xf6000000000000b3,n_bytes=252,priority=65533,tcp,reg0=0,vlan_tci=0x1000/0x1000,dl_dst=fa:16:3e:70:50:67actions=output:20,load:0xf1f2f3f4->NXM_NX_REG0[],resubmit(,0)
cookie=0xf6000000000000b3,n_bytes=521,priority=65533,tcp,reg0=0,vlan_tci=0x0000,dl_dst=fa:16:3e:70:50:67actions=mod_vlan_vid:1024,output:20,strip_vlan,load:0xf1f2f3f4->NXM_NX_REG0[],resubmit(,0)
每条流表匹配正则表达式'n_bytes=(\d*)'并累加,获取实时累计镜像流量值,与上一次的统计值相减除以POLLING_INTERVAL,获得当前的镜像流量速率。
虚拟探针出口采样控制宿主机1上的虚拟探针进程配置如下
SAMPLE_RATE:20
RATE_TO_START_SAMPLING:1000000000
RATE_TO_STOP_SAMPLING:500000000
POLLING_INTERVAL:10
CONTROL_INTERVAL:30
图5为VM1的TCP流量和采集器接收流量的时间序列图。当VM1流量突然增大至1.5Gbps时,由于未满足虚拟探针的POLLING_INTERVAL和CONTROL_INTERVAL,采样未开启,VM1的TCP流量被全部镜像至采集器。当同时满足POLLING_INTERVAL和CONTROL_INTERVAL,且流速均值超过阈值,采样开启。可用tc查询采集器网卡的QoS配置如下:
$tc qdisc show dev<port_name>
qdisc netem 8096:root refcnt 2limit 1000loss 80%
图5中采集器虚拟机接收流量在采样开启后有明显的下降,总流速约为VM1的20%,与tc配置的80%丢包吻合。
本实施例的基于Open vSwitch的OpenStack云平台虚拟探针镜像方法,能够基于Open vSwitch以及OpenStack网络虚拟化技术,对不同网络类型的云平台东西向流量进行镜像,提供细粒度镜像规则,实现镜像源目的地负载均衡,并支持采样可控性。本实施例所述方法实现了高效细粒度可扩展的虚拟探针镜像方法,支持VLAN,VxLAN和GRE网络类型,支持细粒度的策略配置,减少镜像流量,远程镜像的转发不影响生产网络,控制面可指定镜像源和目的地,实现负载均衡,根据镜像流量的大小开启/关闭采样,降低对宿主机性能的冲击。
本领域内的技术人员应明白,本申请的实施例可提供为方法、装置、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置/系统。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
本发明的说明书中,说明了大量具体细节。然而能够理解的是,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。类似地,应当理解,为了精简本发明公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释呈反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。本发明并不局限于任何单一的方面,也不局限于任何单一的实施例,也不局限于这些方面和/或实施例的任意组合和/或置换。而且,可以单独使用本发明的每个方面和/或实施例或者与一个或更多其他方面和/或其实施例结合使用。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围,其均应涵盖在本发明的权利要求和说明书的范围当中。

Claims (10)

1.一种基于Open vSwitch的OpenStack云平台虚拟探针镜像方法,其特征在于,包括:
在第一宿主机上设置一个采集器虚拟机和至少一个生产环境虚拟机VM1,在第二宿主机上设置至少一个生产环境虚拟机VM2;
配置采样限流功能参数,提供预先设置的br-int和br-vTAP两种网桥组织方式以供用户选择;
接收用户的指令,以确定网桥组织方式;
根据所确定的网桥组织方式,利用预设的虚拟探针方式,将VM1的特定流量镜像至所述采集器虚拟机;其中,所述利用预设的虚拟探针方式,包括:在第一宿主机上调用CreateTapService API,以创建虚拟探针服务,在第一宿主机上调用Create TapFlow API,以创建探针流;以及利用预设的虚拟探针方式,将VM2的特定流量镜像至所述采集器虚拟机;其中,所述利用预设的虚拟探针方式,包括:在第二宿主机上调用Create TapFlow API,以创建探针流;并根据所述采样限流功能参数,对虚拟探针出口进行流控。
2.根据权利要求1所述的方法,其特征在于,在配置采样限流功能参数,提供预先设置的br-int和br-vTAP两种网桥组织方式以供用户选择时,所述方法还包括:
在Open vSwitch流表中设置特定cookie值用于区分原生流表并用于增删查询管理,设置寄存器reg0至reg7用于实现流量的镜像与正常转发。
3.根据权利要求2所述的方法,其特征在于,若所确定的网桥组织方式为预先设置的br-int网桥组织方式,则所述利用预设的虚拟探针方式,将VM1的特定流量镜像至所述采集器虚拟机,包括:
在第一宿主机上调用Create TapService API,以创建虚拟探针服务并在云平台原生br-int上增加虚拟探针的第一流表,通过所述第一流表将VxLAN隧道端口转发过来的流量转发至所述采集器虚拟机的网卡;
在第一宿主机上调用Create TapFlow API,以创建探针流并在云平台原生br-int上增加虚拟探针的第二流表,通过所述第二流表将VM1的特定流量复制转发至所述采集器虚拟机。
4.根据权利要求2所述的方法,其特征在于,若所确定的网桥组织方式为预先设置的br-int网桥组织方式,则所述利用预设的虚拟探针方式,将VM2的特定流量镜像至所述采集器虚拟机,包括:
在第二宿主机上调用Create TapFlow API,以创建探针流并在云平台原生br-int上增加虚拟探针的第三流表,通过所述第三流表将VM2的特定流量复制转发至VxLAN隧道端口,以通过VxLAN隧道端口将VM2的特定流量镜像至所述采集器虚拟机,其中,所述第二宿主机上的br-int端口与第一宿主机上br-int端口为VxLAN隧道对,发送至所述VxLAN隧道对中任意一个端口的网包将会被所述VxLAN隧道对中的另一个端口接收。
5.根据权利要求2所述的方法,其特征在于,若所确定的网桥组织方式为预先设置的br-vTAP网桥组织方式,则对于第一宿主机和第二宿主机,均在预先设置的br-int网桥组织方式的基础上新增一个br-vTAP虚拟网桥,并在所述br-vTAP虚拟网桥创建VxLAN端口用于远程镜像;
相应地,所述利用预设的虚拟探针方式,将VM1的特定流量镜像至所述采集器虚拟机,包括:
在第一宿主机上调用Create TapService API,以创建虚拟探针服务并在云平台原生br-int上增加虚拟探针的第四流表,通过所述第四流表将VM1的特定流量转发至br-vTAP,在br-vTAP上添加第五流表,通过所述第五流表按照预设细粒度规则对流量进行细粒度过滤,将细粒度过滤后的流量返回给br-int,在br-int上增加虚拟探针的第一流表,通过所述第一流表将VxLAN隧道端口转发过来的流量转发至所述采集器虚拟机的网卡;
在第一宿主机上调用Create TapFlow API,以创建探针流并在云平台原生br-int上增加虚拟探针的第二流表,通过所述第二流表将VM1的特定流量复制转发至所述采集器虚拟机;
相应地,所述利用预设的虚拟探针方式,将VM2的特定流量镜像至所述采集器虚拟机,包括:
在第二宿主机上调用Create TapFlow API,以创建探针流并在云平台原生br-int上增加虚拟探针的第三流表,通过所述第三流表将VM2的特定流量复制转发至VxLAN隧道端口,以及在云平台原生br-int上增加虚拟探针的第六流表,通过所述第六流表将VxLAN隧道端口接收到的流量转发至br-vTAP,在br-vTAP上添加第五流表,通过所述第五流表按照预设细粒度规则对流量进行细粒度过滤,将细粒度过滤后的流量返回给br-int,以通过br-int将细粒度过滤后的流量镜像至所述采集器虚拟机,其中,所述第二宿主机上的br-int端口与第一宿主机上br-int端口为VxLAN隧道对,发送至所述VxLAN隧道对中任意一个端口的网包将会被所述VxLAN隧道对中的另一个端口接收。
6.根据权利要求3或5所述的方法,其特征在于,所述通过所述第二流表将VM1的特定流量复制转发至所述采集器虚拟机,包括:
当匹配到目的MAC地址或源MAC地址为VM1的网包时,将网包做VLAN Tag的修改后转发至所述采集器虚拟机的网卡端口;
在将做VLAN Tag修改后的网包转发至所述采集器虚拟机的网卡端口后,对网包的寄存器reg0字段做一个特殊赋值,通过resubmit(,0)操作重新触发流表匹配,以被OpenvSwitch环境内原有的流表处理,实现正常转发。
7.根据权利要求1所述的方法,其特征在于,所述采样限流功能参数,包括:采样率SAMPLE_RATE、开始采样阈值RATE_TO_START_SAMPLING、关闭采样阈值RATE_TO_STOP_SAMPLING、统计镜像流量速率的周期POLLING_INTERVAL和采样控制的周期CONTROL_INTERVAL;
相应地,所述根据所述采样限流功能参数,对虚拟探针出口进行流控,包括:
根据所述采样限流功能参数,进行镜像流量速率的实时统计;
根据所述采样限流功能参数,进行目的地网卡采样限流。
8.根据权利要求7所述的方法,其特征在于,所述根据所述采样限流功能参数,进行目的地网卡采样限流,包括:
若同时满足POLLING_INTERVAL和CONTROL_INTERVAL,则获取POLLING_INTERVAL内的镜像流量速率,将获取的镜像流量速率分别与开始采样阈值及关闭采样阈值进行比较;
若获取的镜像流量速率高于开始采样阈值,则通过对目的地虚拟机网络接口执行tc命令,开始采样;
若获取的镜像流量速率低于关闭采样阈值,则对目的地虚拟机网络接口执行tc命令,关闭采样;
若不同时满足POLLING_INTERVAL和CONTROL_INTERVAL,则休眠预设时间段。
9.根据权利要求7所述的方法,其特征在于,若所确定的网桥组织方式为预先设置的br-int网桥组织方式,则所述根据所述采样限流功能参数,进行镜像流量速率的实时统计,包括:
第一宿主机上调用流表查询命令,获取所有转发目的地为本地的流表;
对于每条流表,通过正则表达式匹配,获取所有流表中实时累计镜像流量值n_bytes,并对所述n_bytes进行累加;
将本次统计所获取的n_bytes与上一次统计所获取的n_bytes相减后,除以POLLING_INTERVAL,获得实时镜像流量速率。
10.根据权利要求7所述的方法,其特征在于,若所确定的网桥组织方式为预先设置的br-vTAP网桥组织方式,则所述根据所述采样限流功能参数,进行镜像流量速率的实时统计,包括:
获取所有从br-vTAP转发至br-int的流表;
对于每条流表,通过正则表达式匹配,获取所有流表中实时累计镜像流量值n_bytes,并对所述n_bytes进行累加;
将本次统计所获取的n_bytes与上一次统计所获取的n_bytes相减后,除以POLLING_INTERVAL,获得实时镜像流量速率。
CN201810305367.2A 2018-04-08 2018-04-08 基于Open vSwitch的OpenStack云平台虚拟探针镜像方法 Active CN108494657B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810305367.2A CN108494657B (zh) 2018-04-08 2018-04-08 基于Open vSwitch的OpenStack云平台虚拟探针镜像方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810305367.2A CN108494657B (zh) 2018-04-08 2018-04-08 基于Open vSwitch的OpenStack云平台虚拟探针镜像方法

Publications (2)

Publication Number Publication Date
CN108494657A CN108494657A (zh) 2018-09-04
CN108494657B true CN108494657B (zh) 2020-08-28

Family

ID=63314898

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810305367.2A Active CN108494657B (zh) 2018-04-08 2018-04-08 基于Open vSwitch的OpenStack云平台虚拟探针镜像方法

Country Status (1)

Country Link
CN (1) CN108494657B (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112825506B (zh) * 2019-11-21 2023-05-12 中国移动通信有限公司研究院 一种流量镜像检测方法及装置
CN113098787B (zh) * 2019-12-23 2023-01-13 中国移动通信有限公司研究院 一种流量处理方法及设备
CN113765826A (zh) * 2020-06-01 2021-12-07 中移(苏州)软件技术有限公司 一种网络监控方法、平台、装置和计算机可读存储介质
CN111970199A (zh) * 2020-08-24 2020-11-20 浪潮云信息技术股份公司 一种提升openstack dvr模式下虚机网络性能的实现方法
CN112235158B (zh) * 2020-10-13 2022-05-13 中移(杭州)信息技术有限公司 流量镜像方法、装置、虚拟机平台及存储介质
CN114448901A (zh) * 2020-10-19 2022-05-06 北京金山云网络技术有限公司 流量削峰方法、装置、服务器、介质和电子设备
CN112134794B (zh) * 2020-10-28 2022-04-01 新华三大数据技术有限公司 一种流表备份方法及装置
CN113542092A (zh) * 2021-05-27 2021-10-22 贵州电网有限责任公司 一种基于openstack的自动化引流方法
CN113300917B (zh) * 2021-07-27 2021-10-15 苏州浪潮智能科技有限公司 Open Stack租户网络的流量监控方法、装置
CN114640689A (zh) * 2022-03-31 2022-06-17 西安超越申泰信息科技有限公司 一种基于Proxmox VE的网络镜像实现方法及系统
CN114760254B (zh) * 2022-04-15 2023-04-07 北京志凌海纳科技有限公司 虚拟网络系统及虚拟网络系统实现数据包转发处理方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103139039A (zh) * 2013-02-25 2013-06-05 汉柏科技有限公司 一种实现流量隔离控制的虚拟网络及构建方法
CN103973481A (zh) * 2014-04-21 2014-08-06 蓝盾信息安全技术股份有限公司 一种基于sdn的云计算数据中心的审计系统及方法
CN104869013A (zh) * 2015-04-24 2015-08-26 杭州华三通信技术有限公司 一种基于sdn的网关配置方法及sdn控制器
CN105959217A (zh) * 2016-06-06 2016-09-21 北京邮电大学 一种sdn移动自组网的数据处理方法及装置
CN106209563A (zh) * 2016-08-07 2016-12-07 付宏伟 一种云计算平台网络虚拟化实现方法及相应插件和代理
CN106254176A (zh) * 2016-07-29 2016-12-21 浪潮(北京)电子信息产业有限公司 一种基于openvswitch的流量镜像方法
CN106375160A (zh) * 2016-10-28 2017-02-01 上海优刻得信息科技有限公司 流量监测系统及流量监测方法
CN106685835A (zh) * 2017-03-06 2017-05-17 无锡华云数据技术服务有限公司 一种在数据中心的计算节点间实现高速分布式路由的方法
CN106961400A (zh) * 2017-03-30 2017-07-18 深圳市神云科技有限公司 一种实现云平台虚拟端口镜像的方法和系统
CN107786391A (zh) * 2017-11-03 2018-03-09 郑州云海信息技术有限公司 一种基于Grafana的对OpenStack的网络监控方法
CN107864061A (zh) * 2017-11-15 2018-03-30 北京易讯通信息技术股份有限公司 一种在私有云中虚拟机端口限速和镜像的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160261418A1 (en) * 2015-03-06 2016-09-08 Avaya Inc. Power over ethernet (poe) powered network adapter incorporating open vswitch (ovs) and fabric attach (fa) capabilities

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103139039A (zh) * 2013-02-25 2013-06-05 汉柏科技有限公司 一种实现流量隔离控制的虚拟网络及构建方法
CN103973481A (zh) * 2014-04-21 2014-08-06 蓝盾信息安全技术股份有限公司 一种基于sdn的云计算数据中心的审计系统及方法
CN104869013A (zh) * 2015-04-24 2015-08-26 杭州华三通信技术有限公司 一种基于sdn的网关配置方法及sdn控制器
CN105959217A (zh) * 2016-06-06 2016-09-21 北京邮电大学 一种sdn移动自组网的数据处理方法及装置
CN106254176A (zh) * 2016-07-29 2016-12-21 浪潮(北京)电子信息产业有限公司 一种基于openvswitch的流量镜像方法
CN106209563A (zh) * 2016-08-07 2016-12-07 付宏伟 一种云计算平台网络虚拟化实现方法及相应插件和代理
CN106375160A (zh) * 2016-10-28 2017-02-01 上海优刻得信息科技有限公司 流量监测系统及流量监测方法
CN106685835A (zh) * 2017-03-06 2017-05-17 无锡华云数据技术服务有限公司 一种在数据中心的计算节点间实现高速分布式路由的方法
CN106961400A (zh) * 2017-03-30 2017-07-18 深圳市神云科技有限公司 一种实现云平台虚拟端口镜像的方法和系统
CN107786391A (zh) * 2017-11-03 2018-03-09 郑州云海信息技术有限公司 一种基于Grafana的对OpenStack的网络监控方法
CN107864061A (zh) * 2017-11-15 2018-03-30 北京易讯通信息技术股份有限公司 一种在私有云中虚拟机端口限速和镜像的方法

Also Published As

Publication number Publication date
CN108494657A (zh) 2018-09-04

Similar Documents

Publication Publication Date Title
CN108494657B (zh) 基于Open vSwitch的OpenStack云平台虚拟探针镜像方法
CN114189571B (zh) 用于实施加速网络分组处理的装置和方法
US9088503B2 (en) Multi-tenant information processing system, management server, and configuration management method
US9385923B2 (en) Configuration management method of logical topology in virtual network and management server
US9047143B2 (en) Automation and programmability for software defined networking systems
US8462666B2 (en) Method and apparatus for provisioning a network switch port
CA2975243A1 (en) Virtual network function management apparatus, system, healing method, and program
CN114995945A (zh) 部署到计算节点的容器的隔离的数据接口
US10044558B2 (en) Switch and setting method
US20240031258A1 (en) Tagging packets for monitoring and analysis
US10931552B1 (en) Connectivity check with service insertion
EP4199457A1 (en) Packet drop monitoring in a virtual router
US11650859B2 (en) Cloud environment configuration based on task parallelization
CN110149231A (zh) 更新虚拟交换机的方法、装置、存储介质和设备
US11652717B2 (en) Simulation-based cross-cloud connectivity checks
CN112437072A (zh) 一种云平台中虚拟机流量牵引系统、方法、设备及介质
EP3042474B1 (en) Method and apparatus for improving cloud routing service performance
CN114039764A (zh) 基于软件定义安全的安全服务功能链设计方法及系统
JP6604336B2 (ja) 情報処理装置、情報処理方法、及び、プログラム
CN114172789B (zh) 虚拟设备链路探测方法、装置、设备及存储介质
CN108886476B (zh) 虚拟交换机数据平面和数据平面迁移的多个提供器框架
Nakagawa et al. Automated migration of port profile for multi-level switches
CN112714017B (zh) 一种配置下发方法及装置
US20150295730A1 (en) Switch and setting method
JP2018019312A (ja) ネットワーク装置及びその制御方法

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