网络监控的方法和设备与流程

文档序号:17048904发布日期:2019-03-05 19:50阅读:215来源:国知局
网络监控的方法和设备与流程

本申请涉及通信领域,并且更具体地,涉及一种网络监控的方法和设备。



背景技术:

在公有云的场景下,虚拟网络的网络质量是整个公有云其他业务的基础。虚拟网络中的数据包的丢失、网络延时(抖动)不可避免,但是可以通过对网络延时、数据包的丢失率进行实时监控,预先发现虚拟网络的网络故障,可以让维修人员提前针对虚拟网络进行维护,提高虚拟网络的网络质量。传统的虚拟网络监控技术通过将监控软件或者装置植入虚拟机对虚拟网络进行监控,植入虚拟机的监控软件或装置在监控网络状态时,同时可能监控用户数据,造成个人隐私的泄露,并且用户可以随时卸载监控软件,使得虚拟网络监控不可靠。

因此如何进行虚拟网络的监控,避免用户隐私的泄露,避免用户随时卸载监控软件,提高虚拟网络监控的可靠性是一项亟待解决的问题。



技术实现要素:

本申请提供了一种网络监控的方法和设备,能够对虚拟网络进行监控,避免了用户隐私的泄露,提高虚拟网络监控的可靠性。

第一方面,提供了一种网络监控的方法,该方法应用于虚拟网络中对网络进行监控,其特征在于,该虚拟网络包括物理机,该物理机包括代理设备、第一虚拟机和第一虚拟网桥探测器,该第一虚拟机由该第一虚拟网桥探测器监控,该第一虚拟机独立于该第一虚拟网桥探测器,该方法包括:

该代理设备接收网络监控命令;

该代理设备根据网络监控命令从该第一虚拟网桥探测器获取第一探测信息,该第一探测信息用于指示丢包信息和/或时延信息。

因此,在该虚拟网络中每个物理机包括代理设备、第一虚拟机和第一虚拟网桥探测器,该第一虚拟机由该第一虚拟网桥探测器监控,该第一虚拟机独立于该第一虚拟网桥探测器,在该代理设备接收到网络监控命令时,该代理设备从该第一虚拟网桥探测器获取第一探测信息,该第一探测信息用于指示丢包信息和/或时延信息,从而实现了对虚拟网络进行监控,该第一虚拟机独立于该第一虚拟网桥探测器,用户不能卸载该第一虚拟网桥探测器,避免了用户随时卸载监控软件,使得虚拟网络监控不可靠的情况,提高虚拟网络监控的可靠性,并且避免了对用户数据的监控,避免了用户隐私的泄露。

可选地,在第一方面的一种实现方式中,该网络监控命令为监控网络丢包时,该第一探测信息是该第一虚拟网桥探测器发送的业务数据包的个数,该第一虚拟网桥探测器用于统计该第一虚拟机发送的业务数据包的个数并且标记该业务数据包。

可选地,在第一方面的一种实现方式中,该网络监控命令为监控网络时延时,该第一探测信息是该第一虚拟网桥探测器统计的第一流表的持续时间,该第一虚拟网桥探测器用于统计该第一虚拟网桥接收到测试数据包时生成的第一流表的持续时间。

可选地,在第一方面的一种实现方式中,该代理设备向服务器发送该第一探测信息。

可选地,在第一方面的一种实现方式中,在该代理设备根据网络监控命令从该第一虚拟网桥探测器获取探测信息之前,该方法还包括:

该代理设备还用于向该第一虚拟网桥探测器发送开关流表,该开关流表用于触发该第一虚拟网桥探测器统计该第一虚拟机发送的业务数据包的个数。

可选地,在第一方面的一种实现方式中,该物理机包括第二虚拟机和第二虚拟网桥探测器,该第二虚拟机对应于该第二虚拟网桥探测器,该第二虚拟机独立于该第二虚拟网桥探测器,该第一虚拟机与该第二虚拟机之间具有业务往来,该方法还包括:

该代理设备从该第二虚拟网桥探测器获取第二探测信息,该第二探测信息是该第二虚拟网桥探测器接收的标记的业务数据包的个数,该第二虚拟网桥探测器用于统计该第二虚拟机接收的标记的业务数据包的个数,并且取消该业务数据包的标记将取消标记的业务数据包传送给该第二虚拟机;

该代理设备根据该第一探测信息和该第二探测信息,确定该第一虚拟机与该第二虚拟机之间的网络丢包率。

此时,代理设备通过控制网桥探测器的流表来监控网络丢包,不会侵入虚拟机,对用户数据不进行监控,避免了泄露用户隐私,提高了监控网络丢包的可靠性。

可选地,在第一方面的一种实现方式中,该方法还包括:

该代理设备向服务器发送第一信息,该第一信息用于指示该第一虚拟机与该第二虚拟机之间的网络丢包率。

可选地,在第一方面的一种实现方式中,在该代理设备根据网络监控命令从该第一虚拟网桥探测器获取探测信息之前,该方法还包括:

该代理设备还用于向该第一虚拟网桥探测器发送该测试数据包,该测试数据包用于触发该第一虚拟网桥探测器生成该第一探测信息。

可选地,在第一方面的一种实现方式中,该虚拟网络包括第三虚拟机和第三虚拟网桥探测器,该第三虚拟机对应于该第三虚拟网桥探测器,该第三虚拟机独立于该第三虚拟网桥探测器,该第一虚拟机向该第三虚拟机发送该测试数据包,该方法还包括:

该代理设备根据该第一探测信息,和第一时刻,以及第二时刻,确定该第一虚拟机与该第三虚拟机之间的网络时延,

其中,该第一时刻为该代理设备向该第一虚拟网桥探测器发送该测试数据包的时刻,该第二时刻为该代理设备在该第一虚拟网桥探测器获取该第一探测信息的时刻。

此时,代理设备通过控制网桥探测器,对网桥探测器下发流表来监控网络时延,操作简单,实时性强,并且不会侵入虚拟机,对用户数据不进行监控,避免了泄露用户隐私,提高了监控网络丢包的可靠性。

可选地,在第一方面的一种实现方式中,该代理设备根据该第一探测信息,和第一时刻,以及第二时刻,确定该第一虚拟机与该第三虚拟机之间的网络时延,包括:

根据式(1)确定该第一虚拟机与该第三虚拟机之间的网络时延:

t=t1-t2-t3(1)

其中,t表示该第一虚拟机与该第三虚拟机之间的网络时延,t1表示该代理设备在该第一虚拟网桥探测器获取该第一探测信息的时刻,t2表示该第一虚拟网桥探测器统计的第一流表的持续时间,t3表示该代理设备向该第一虚拟网桥探测器发送该测试数据包的时刻。

可选地,在第一方面的一种实现方式中,该方法还包括:

该代理设备向服务器发送第二信息,该第二信息用于指示该第一虚拟机与该第三虚拟机之间的网络时延。

可选地,在第一方面的一种实现方式中,在该代理设备接收网络监控命令之前,该方法还包括:

该代理设备获取该物理机上部署的虚拟机的网络拓扑结构;

保存该网络拓扑结构。

可选地,在第一方面的一种实现方式中,该代理设备获取该物理机上部署的虚拟机的网络拓扑结构,包括:

该代理设备从该第一虚拟网桥探测器获取该第一虚拟机的下行业务数据包的源互联网协议ip地址和源媒体介质访问mac地址,

其中,该第一虚拟网桥探测器用于确定该下行业务数据包的源ip地址和源mac地址;

根据该下行业务数据包的源ip地址和源mac地址,以及该第一虚拟机的ip地址和mac地址,确定该第一虚拟机与该第一虚拟机具有业务往来虚拟机之间的网络拓扑结构。

此时,通过在虚拟网桥探测器下发流表来获取虚拟机的网络拓扑架构,不需要进程持续监控操作,实时性更优,且对虚拟机无侵入,安全性较好。

可选地,在第一方面的一种实现方式中,在该代理设备获取该物理机上部署的虚拟机的网络拓扑结构之后,该方法还包括:

根据该网络拓扑结构,向该物理机上的虚拟机对应的虚拟网桥探测器下发第一流表和/或第二流表,

其中,该第一流表用于统计该虚拟机发送的业务数据包的个数并且标记该业务数据包,该第二流表用于在该虚拟网桥接收到测试数据包时生成的第三流表并且丢弃该测试数据包,该第三流表用于记录第三流表的持续时间。

可选地,在第一方面的一种实现方式中,该方法还包括:

当该物理机上部署该第四虚拟机时,该代理设备创建该第一虚拟网桥探测器。

可选地,在第一方面的一种实现方式中,该方法还包括:该代理设备向该服务器发送该第一探测信息。

第二方面,提供了一种代理设备,包括接收模块和处理模块,可以执行第一方面或第一方面的任一可选的实现方式中的方法。

第三方面,提供了一种物理机,该物理机包括代理模块、第一虚拟机和第一虚拟网桥探测器,该第一虚拟机对应于该第一虚拟网桥探测器,该第一虚拟机独立于该第一虚拟网桥探测器,该物理机中的代理模块可以执行第一方面或第一方面的任一可选的实现方式中的方法。

第四方面,提供了一种物理机,包括存储器、收发器和处理器,所述存储器上存储有可以用于指示执行上述第一或第一方面的任意可选的实现方式的程序代码,收发器用于在处理器的驱动下执行具体的信号收发,当所述代码被执行时,所述处理器可以实现方法中备用用户属性存储设备执行各个操作。

第五方面,提供了一种计算机存储介质,包括计算机程序,当该计算机程序在计算机上运行时,使得该计算机执行如第一方面或第一方面的任一可选的实现方式中的方法。

附图说明

图1是根据本申请的一种网络监控的方法和设备的系统示意性框图。

图2是根据本申请的一种网络监控的方法的示意性流程图。

图3是根据本申请的监控网络丢包的示意性流程图。

图4是根据本申请的监控网络丢包的示意性流程图。

图5是根据本申请的监控网络时延的示意性流程图。

图6是根据本申请的监控网络时延的示意性流程图。

图7是根据本申请的获取网络拓扑结构的示意性流程图。

图8是根据本申请的一种代理设备的示意性框图

图9是根据本申请的一种代理设备的示意性框图。

图10是根据本申请的代理设备的示意性框图。

图11是根据本申请的一种网络监控的系统的示意性框图。

图12是根据本申请的一种网络监控的系统的示意性框图。

具体实施方式

下面将结合附图,对本申请中的技术方案进行描述。

为了方便理解本发明实施例,首先在此介绍本发明实施例之前引入以下的几个要素。

在开放流(openflow)网络中,openflow交换机是整个openflow网络的核心部件,主要管理数据的转发。openflow交换机接收到数据包后,首先在本地的流表上对数据包进行匹配,与流表匹配成功的数据包,执行相应流表对应的动作;如果在本地的流表上没有匹配成功该数据包,则openflow交换机把数据包转发给控制器,有控制层决定该数据包的处理。

流表由很多流表项组成,每个流表项就是一个转发规则。openflow流表的每个流表项都由3部分组成:用于数据包匹配的包头域(headerfields),用于统计匹配数据包个数的计数器(counters),用于展示匹配的数据包如何处理的动作(actions)。

包头域:openflow流表的包头域(也称作匹配域),用于对交换机接收到的数据包的包头内容进行匹配。流表的包头域中包括了12个元组(tuple),分别为入端口、源媒体访问控制地址、目的媒体访问控制地址、以太网类型、虚拟局域网隧道(virtuallan,vlan)优先级、vlanid、源互联网协议地址、目的互联网协议地址、ip协议、iptos位、tcp/udp源端口、tcp/udp目的端口。

计数器:openflow流表的计数器可以针对交换机中的每张流表、每个数据流、每个设备端口、每个转发队列进行维护,用于统计数据流量的相关信息。例如:针对每张流表,统计当前活动的表项数、数据包查询次数、数据包匹配次数等;针对每个数据流,统计接收到的数据包数、字节数、数据流持续时间等;针对每个设备端口,除统计接收到的数据包数、发送数据包数、接收字节数、发送字节数等指标之外,还可以对各种错误发生的次数进行统计;针对每个队列,统计发送的数据包数和字节数,还有发送时的溢出错误次数等。

动作:openflow流表的动作用于指示交换机在收到匹配的数据包后应该如何对其进行处理。与传统交换机转发表只需要指明数据包的转发出端口不同,openflow交换机因为缺少控制平面的能力,所以对匹配数据包的处理不仅仅是简单的转发操作,而需要用动作来详细说明交换机将要对数据包所做的处理。流表最常用的动作转发(forward),转发给下一条流表或出口等,丢弃(drop)。

openflow交换机的每个流表项可以对应有零至多个动作,如果没有定义转发动作,那么与流表项包头域匹配的数据包将被默认丢弃。统一流表项中的多个动作的执行可以具有优先级,但是在数据包的发送上并不保证其顺序。另外,如果流表项中出现有openflow交换机不支持的参数值,交换机将向控制器返回相应的出错信息。

openflow交换机的流表按顺序编号,即从0号流表开始编号。流表匹配一般按照流水线处理,该流水线处理总是从第一个流表开始,即数据包首先与0号流表匹配,其它流表根据第一个表的匹配结果来调用。

openflow交换机在接收一个数据包时,交换机开始执行从0号流表对该数据包进行匹配,并基于流水线处理。数据匹配字段从数据包中提取。用于表查找的数据包匹配字段依赖与数据包类型,这些类型通常包括各种数据包的报头字段,如以太网源地址或ipv4目的地址。除了通过数据包报头中进行匹配,也可以通过入口端口和元数据字段进行匹配。元数据可以用来在一个交换机的不同表里面传递信息。

数据包被一个流表处理时,数据包与流表中的流表项进行匹配,如果匹配了该流表项,则执行在该流表项里的指令,这些指令可能明确指导数据包传递到另一个流表,在那里同样的处理被重复执行。

网络丢包率:网络丢包率就是在我们数据包的数据传输过程中,因为中途的传输而导致部分数据包被丢失。

网络延时指一个数据包从用户的计算机发送到网站服务器,然后再立即从网站服务器返回用户计算机的来回时间。延时1~30ms时,几乎察觉不出有延迟;延时31~50ms:没有明显的延迟情况;延时51~100ms时:网络稍有停顿;延时100ms时:网络丢包并掉线现象。

图1是根据本申请的一种网络监控的方法和设备的系统100示意性框图。如图1所示,该系统100包括:宿主机110、宿主机120和可扩展虚拟局域网隧道130,在该宿主机110上包括代理模块111、虚拟机112、虚拟机113、虚拟网桥探测器114、虚拟网桥探测器115、虚拟网桥116、虚拟分布式路由117,在该宿主机120上包括代理模块121、虚拟机122、虚拟机123、虚拟网桥探测器124、虚拟网桥探测器125、虚拟网桥126、虚拟分布式路由127。在宿主机100上,该代理模块111用于为虚拟机112创建虚拟网桥探测器114和为虚拟机113创建虚拟网桥探测器115,并且该代理模块111控制该虚拟网桥探测器114和该虚拟网桥探测器115。

以虚拟机112为例描述该系统下数据包的发送过程。该虚拟机112发送的数据包先进入虚拟网桥探测器114;该虚拟网桥探测器接收该数据包,并将该数据包转发到虚拟网桥116,该虚拟网桥116接收该数据包并将该数据包转发到分布式路由117,该分布式路由117接收该数据包,将该数据包转发到可扩展虚拟局域网隧道130,经可扩展虚拟局域网隧道130向目的地址发送。如果该虚拟机112与该虚拟机113进行交互,则该虚拟机112发送的数据包在转发到虚拟网桥116时,该虚拟网桥116将该数据包转发到虚拟探测器115,通过该虚拟探测器115到达该虚拟机113。

为了便于理解本申请实施例,下面对该系统涉及的虚拟机、虚拟路由器、虚拟网桥等进行简单描述。

虚拟机(virtualmachine,vm),虚拟的计算机(personalcomputer,pc),软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。

宿主机(host),相对于虚拟机而言,虚拟机是安装在宿主机上的,宿主机往往是物理服务器。

虚拟网桥(virtualswitch,vswitch),虚机通过虚拟网桥进行通信,openvswitch是一款开源的软件虚拟交换机软件,它被设计用来使大规模网络通过编程扩展自动化,支持标准管理接口和协议。公有云底层网络实现大多采用openvswitch。openvswitch网桥是采用openvswitch创建的虚机网桥。

虚机分布式路由(virtualrouter,vrouter),虚机通过虚拟分布式路由跨子网通信。

可扩展虚拟局域网隧道(virtualextensiblelan,vxlan),在云场景下虚机规模都是百万级别的,传统采用vlan是无法满足的,vlan只有4096个,vxlan是一种overlay的网络技术,可跨越物理三层网络,可以满足百万虚机的规模,不同物理机虚机之间的通信采用vxlan隧道。

图2是根据本申请的一种网络监控的方法200的示意性流程图。该方法应用于虚拟网络中对网络进行监控,其中,该虚拟网络物理机,该物理机包括代理设备、第一虚拟机和第一虚拟网桥探测器,该第一虚拟机由该第一虚拟网桥探测器监控,该第一虚拟机独立于该第一虚拟网桥探测器。如图2所示,该方法200包括以下内容。

在210中,代理设备接收网络监控命令。

可选地,该代理设备接收服务器发送的网络监控命令。

应理解,该代理设备还可以周期性的或定期性的启动该网络监控命令。

在220中,该代理设备根据网络监控命令从该第一虚拟网桥探测器获取第一探测信息,该第一探测信息用于指示丢包信息和/或时延信息。

可选地,该网络监控命令为用于监控网络丢包时,该第一探测信息是该第一虚拟网桥探测器发送的业务数据包的个数,该第一虚拟网桥探测器用于统计该第一虚拟机发送的业务数据包的个数并且标记该业务数据包。

具体而言,当该代理设备接收的该网络监控命令为监控网络丢包时,该第一虚拟网桥探测器包括统计流表,该统计流表用于统计该第一虚拟机发送的业务数据包的个数并且标记该业务数据包,该代理设备从该第一虚拟网桥探测器的该统计流表获取该第一虚拟机发送的业务数据包的个数。

例如,该第一虚拟网桥探测器包括28号统计流表,该28号统计流表记录该第一虚拟机发送的业务数据包的个数,并标记该第一虚拟机发送的业务数据包,将该标记后的业务数据包从ovs网桥探测器发出。

可选地,该第一虚拟网桥探测器的28号标记该第一虚拟机发送的业务数据包,包括:对该业务数据包的报文nw_ecn置1。

可选地,在该代理设备根据网络监控命令从该第一虚拟网桥探测器获取探测信息之前,该方法还包括:

该代理设备还用于向该第一虚拟网桥探测器发送开关流表,该开关流表用于触发该第一虚拟网桥探测器统计所述第一虚拟机发送的业务数据包的个数。

具体而言,在该代理设备接收到监控网络丢包的监控命令时,该代理设备向该第一虚拟网桥探测器下发开关流表,该开关流表用于触发该第一虚拟网桥探测器生成该第一探测信息。

例如,在该代理设备接收到监控网络丢包的监控命令时,该代理设备向该第一虚拟网桥探测器下发1号开关流表,该1号开关流表与业务数据包匹配成功后,将该业务数据包转发到28号统计流表。该28号统计流表记录该第一虚拟机发送的业务数据包的个数,并标记该第一虚拟机发送的业务数据包,将该标记后的业务数据包从ovs网桥探测器发出。

可选地,在到达预设的第一周期t1后,该代理设备删除该第一虚拟网桥探测器中的开关流表。

具体而言,在经过了第一周期t1的监控时间后,该代理设备删除该该第一虚拟网桥探测器中的开关流表,即停止网络丢包的监控。

可选地,该物理机包括第二虚拟机和第二虚拟网桥探测器,该第二虚拟机对应于该第二虚拟网桥探测器,该第二虚拟机独立于该第二虚拟网桥探测器,该第一虚拟机与该第二虚拟机之间具有业务往来,该方法还包括:

该代理设备从该第二虚拟网桥探测器获取第二探测信息,该第二探测信息是该第二虚拟网桥探测器接收的标记的业务数据包的个数,该第二虚拟网桥探测器用于统计该第二虚拟机接收的标记的业务数据包的个数,并且取消该业务数据包的标记将取消标记的业务数据包传送给该第二虚拟机;

该代理设备根据该第一探测信息和该第二探测信息,确定该第一虚拟机与该第二虚拟机之间的网络丢包率。

具体而言,该物理机包括第二虚拟机和第二虚拟网桥探测器,且该第一虚拟机与该第二虚拟机之间具有业务往来,该代理设备在该第二虚拟网桥探测器的统计流表获取第二探测信息,该第二探测信息是该第二虚拟网桥探测器接收的标记的业务数据包的个数,该代理设备在获取到该第一探测信息和该第二探测信息,确定该第一虚拟机与该第二虚拟机之间的网络丢包率。

例如,如图3所示,虚拟机1和虚拟机2之间具有业务往来,虚拟机1对应于虚拟网桥探测器1,虚拟机2对应于虚拟网桥探测器2,代理设备管理虚拟网桥探测器1和虚拟网桥探测器2,如果代理设备接收到了监控网络丢包的命令,当虚拟机1为发送端,虚拟机2为接收端时,代理设备在虚拟网桥探测器1下发1号开关流表,虚拟机1向虚拟机2发送的业务数据包,在与1号开关流表(1号开关流表的优先级高于1号标准流表)匹配成功后,转发到28号统计流表,28号统计流表统计该业务数据包的个数,并且将该业务数据包标识,再通过端口进入虚拟交换机1向虚拟机2发送。

该业务数据包在进入虚拟机2之前,先进入虚拟网桥探测器2,该标识的业务数据包与2号染色匹配流表(高优先级)进行匹配后,由2号染色匹配流表转发到29号统计流表(高优先级),该29号流表统计接收的标记的业务数据包的个数,并且将该业务数据包的标识取消后,将取消标记的业务数据包传入虚拟机2。

代理设备从虚拟网桥探测器1的28号统计流表获取虚拟机1向虚拟机2发送的数据包的个数,代理设备从虚拟网桥探测器2的29号统计流表获取虚拟机2接收的虚拟机1发送的数据包的个数,代理设备根据虚拟机1向虚拟机2发送的数据包的个数和虚拟机2接收的虚拟机1发送的数据包的个数,确定虚拟网络的丢包率。

如果当虚拟机2为发送端,虚拟机1为接收端时,代理设备接收到了监控网络丢包的命令,代理设备在虚拟网桥探测器2下发1号开关流表,虚拟机2向虚拟机1发送的业务数据包,在与1号开关流表匹配成功后,转发到28号统计流表,28号统计流表统计该业务数据包的个数,并且将该业务数据包标识,再通过端口进入虚拟交换机1向虚拟机1发送。

该业务数据包在进入虚拟机1之前,先进入虚拟网桥探测器1,该标识的业务数据包与2号染色匹配流表(高优先级)进行匹配后,由2号染色匹配流表转发到29号统计流表(高优先级),该29号流表统计接收的标记的业务数据包的个数,并且将该业务数据包的标识取消后,将取消标记的业务数据包传入虚拟机1。

代理设备从虚拟网桥探测器2的28号统计流表获取虚拟机2向虚拟机1发送的数据包的个数,代理设备从虚拟网桥探测器1的29号统计流表获取虚拟机1接收的虚拟机2发送的数据包的个数,代理设备根据虚拟机2向虚拟机1发送的数据包的个数和虚拟机1接收的虚拟机2发送的数据包的个数,确定虚拟网络的丢包率。

如果当该虚拟机1与该虚拟机2在不同的物理机上时,该虚拟机1与虚拟机2之间的网络数据包的丢失监控如图4所示。在图4中,虚拟机1对应于虚拟网桥探测器1,虚拟机2对应于虚拟网桥探测器2,虚拟网桥探测器1和虚拟网桥探测器2由其所在的物理机上的代理设备管理,假定虚拟网桥探测器1由代理设备1管理,虚拟网桥探测器2由代理设备2管理,如果代理设1接收到了监控网络丢包的命令,当虚拟机1为发送端,虚拟机2为接收端时,代理设备1在虚拟网桥探测器1下发1号开关流表,虚拟机1向虚拟机2发送的业务数据包,在与1号开关流表(1号开关流表的优先级高于1号标准流表)匹配成功后,转发到28号统计流表,28号统计流表统计该业务数据包的个数,并且将该业务数据包标识,再通过端口进入虚拟交换机1向虚拟机2发送。

该业务数据包在进入虚拟机2之前,先进入虚拟网桥探测器2,该标识的业务数据包与2号染色匹配流表(高优先级)进行匹配后,由2号染色匹配流表转发到29号统计流表(高优先级),该29号流表统计接收的标记的业务数据包的个数,并且将该业务数据包的标识取消后,将取消标记的业务数据包传入虚拟机2。

代理设备1从虚拟网桥探测器1的28号统计流表获取虚拟机1向虚拟机2发送的数据包的个数,代理设备2从虚拟网桥探测器2的29号统计流表获取虚拟机2接收的虚拟机1发送的数据包的个数,代理设备1向服务器发送该虚拟机1向虚拟机2发送的数据包的个数,代理设备2向服务器发送虚拟机2接收的虚拟机1发送的数据包的个数,由服务器确定虚拟机1与虚拟机2之间的虚拟网络的丢包率。

如果当虚拟机2为发送端,虚拟机1为接收端时,代理设备2接收到了监控网络丢包的命令,代理设备2在虚拟网桥探测器2下发1号开关流表,虚拟机2向虚拟机1发送的业务数据包,在与1号开关流表匹配成功后,转发到28号统计流表,28号统计流表统计该业务数据包的个数,并且将该业务数据包标识,再通过端口进入虚拟交换机2向虚拟机1发送。

该业务数据包在进入虚拟机1之前,先进入虚拟网桥探测器1,该标识的业务数据包与2号染色匹配流表(高优先级)进行匹配后,由2号染色匹配流表转发到29号统计流表(高优先级),该29号流表统计接收的标记的业务数据包的个数,并且将该业务数据包的标识取消后,将取消标记的业务数据包传入虚拟机1。

代理设备1从虚拟网桥探测器1的28号统计流表获取虚拟机1向虚拟机2发送的数据包的个数,代理设备2从虚拟网桥探测器2的29号统计流表获取虚拟机2接收的虚拟机1发送的数据包的个数,代理设备1向服务器发送该虚拟机1向虚拟机2发送的数据包的个数,代理设备2向服务器发送虚拟机2接收的虚拟机1发送的数据包的个数,由服务器确定虚拟机1与虚拟机2之间的虚拟网络的丢包率。

应理解,对业务数据包进行标识也可以表述为对数据包进行染色。

在本申请的实施例中,代理设备通过控制网桥探测器的流表来监控网络丢包,不会侵入虚拟机,对用户数据不进行监控,避免了泄露用户隐私,提高了监控网络丢包的可靠性。

可选地,该方法还包括:

该代理设备向服务器发送第一信息,该第一信息用于指示该第一虚拟机与该第二虚拟机之间的网络丢包率。

具体而言,该代理设备向该服务器发送该第一虚拟机与该第二虚拟机之间的网络丢包率。

应理解,该代理设备还可以向服务器发送该第一虚拟机向第二虚拟机发送的数据包的个数,和/或该第二虚拟机接收的该第一虚拟机的数据包的个数,由服务器根据该代理设备发送的信息,确定该第一虚拟机与该第二虚拟机之间的网络丢包率。

可选地,该方法还包括:在该代理设备获取该第一虚拟机向第二虚拟机发送的数据包的个数之后,或者该监控网络丢包的预设时长到达后,该代理设备删除该开关流表。

可选地,该网络监控命令为用于监控网络时延时,该第一探测信息是该第一虚拟网桥探测器统计的第一流表的持续时间,该第一虚拟网桥探测器用于统计该第一虚拟网桥接收到由第二虚拟机返回的测试数据包时生成的第一流表的持续时间。

具体而言,当该代理设备接收的该网络监控命令为监控网络时延时,该第一虚拟网桥探测器包括第一流表,该第一流表为延时统计流表,该延时统计流表用于统计该第一虚拟网桥接收到由第二虚拟机返回的测试数据包时生成的第一流表的持续时间。

可选地,在该代理设备根据网络监控命令从该第一虚拟网桥探测器获取探测信息之前,该方法还包括:

该代理设备还用于向该第一虚拟网桥探测器发送该测试数据包,该测试数据包用于触发该第一虚拟网桥探测器生成该第一探测信息。

具体而言,在该代理设备接收到监控网络时延的网络监控命令时,该代理设备构造一个测试数据包,应理解,该测试数据包不属于业务数据包,该测试数据包的包头具有标记位,用于区别业务数据包。该代理设备构造该测试数据包,并将该数据包下发到第一虚拟网桥探测器。

可选地,该虚拟网络包括第三虚拟机和第三虚拟网桥探测器,该第三虚拟机对应于该第三虚拟网桥探测器,该第三虚拟机独立于该第三虚拟网桥探测器,该第一虚拟机向该第三虚拟机发送该测试数据包,该方法还包括:

该代理设备根据该第一探测信息,和第一时刻,以及第二时刻,确定该第一虚拟机与该第三虚拟机之间的网络时延,

其中,该第一时刻为该代理设备向该第一虚拟网桥探测器发送该测试数据包的时刻,该第二时刻为该代理设备在该第一虚拟网桥探测器获取该第一探测信息的时刻。

具体而言,该代理设备记录向该第一虚拟网桥探测器发送该测试数据包的时刻为第一时刻,该第一虚拟网桥探测器接收到该测试数据包经过下行标准流表将该测试数据包转入虚拟交换机在向第三虚拟机发送该测试数据包,在该测试数据包进入第三虚拟网桥探测器时,该测试数据包与该第三虚拟网桥探测器的原路返回流表匹配成功,该测试数据包原路返回进入第一虚拟网桥探测器,该测试数据包和第一虚拟网桥探测器的染色匹配流表匹配成功后,由该染色匹配流表将该测试数据包准发到学习流表,该学习流表生成延时统计流表,同时该学习流表将该测试数据包转发到丢弃流表,该丢弃流表直接将该测试数据包丢弃。

该代理设备在该第二时刻从该延时统计流表获取该流表的持续时间,该代理设备根据该流表的持续时间,和第一时刻,以及第二时刻,确定该第一虚拟机与该第三虚拟机之间的网络时延。

例如,如图5所示,该虚拟机1和虚拟机3之间具有业务往来。在该代理设备接收到监控网络时延的网络监控命令时,该代理设备构造一个测试数据包,并向该第一虚拟网桥探测器发送该测试数据包,该代理设备记录向该第一虚拟网桥探测器发送该测试数据包的时刻为第一时刻,该第一虚拟网桥探测器通过1号标准流表将该测试数据包经过虚拟交换机1向虚拟机3发出。

该测试数据包到达虚拟网桥探测器3时,该虚拟网桥探测器3中的30号原路返回流表与该测试数据包匹配成功,将该测试数据包原路返回。在该测试数据包进入该虚拟网桥探测器1时,该虚拟网桥探测器1的0号染色匹配流表与该测试数据包匹配成功,将该测试数据包转发到31号学习流表,该31号学习流表生成32号延时统计流表,该32号延时统计流表用于统计该32号延时统计流表的持续时间,同时该31号学习流表将该测试数据包转发到32号丢弃流表,(其中,32号延时统计流表的优先级高于32号丢弃流表)。该32号丢弃流表将该测试数据包丢弃,该测试数据包不会影响正常的业务往来。

该代理设备记录从该32号延时统计流表获取流表持续时间的第二时刻,根据该流表的持续时间,和第一时刻,以及第二时刻,确定该第一虚拟机与该第三虚拟机之间的网络时延。

应理解,该第一虚拟机与该第三虚拟机可以在同一个物理机上,也可以在不同的物理机上。

如果当该虚拟机1与该虚拟机3在不同的物理机上时,该虚拟机1与虚拟机3之间的网络数据包的丢失监控如图6所示。在图6中,虚拟机1对应于虚拟网桥探测器1,虚拟机3对应于虚拟网桥探测器3,虚拟网桥探测器1和虚拟网桥探测器3由其所在的物理机上的代理设备管理,假定虚拟网桥探测器1由代理设备1管理,虚拟网桥探测器3由代理设备3管理,如果代理设1接收到监控网络时延的网络监控命令时,该代理设备1构造一个测试数据包,并向该第一虚拟网桥探测器发送该测试数据包,该代理设备1记录向该第一虚拟网桥探测器发送该测试数据包的时刻为第一时刻,该第一虚拟网桥探测器通过1号标准流表将该测试数据包经过虚拟交换机1向虚拟机3发出。

该测试数据包到达虚拟网桥探测器3时,该虚拟网桥探测器3中的30号原路返回流表与该测试数据包匹配成功,将该测试数据包原路返回。在该测试数据包进入该虚拟网桥探测器1时,该虚拟网桥探测器1的0号染色匹配流表与该测试数据包匹配成功,将该测试数据包转发到31号学习流表,该31号学习流表生成32号延时统计流表,该32号延时统计流表用于统计该32号延时统计流表的持续时间,同时该31号学习流表将该测试数据包转发到32号丢弃流表,(其中,32号延时统计流表的优先级高于32号丢弃流表)。该32号丢弃流表将该测试数据包丢弃,该测试数据包不会影响正常的业务往来。

该代理设备1记录从该32号延时统计流表获取流表持续时间的第二时刻,根据该流表的持续时间,和第一时刻,以及第二时刻,确定该第一虚拟机与该第三虚拟机之间的网络时延。

应理解,本申请实施例为了描述简洁,仅示出了第一虚拟网桥探测器包括标准下行流表、染色匹配流表、学习流表、丢弃流表等,该第三虚拟网桥探测器原路返回流表,而该第一虚拟网桥探测器还包括原路返回流表,该第三虚拟网桥探测器还包括标准下行流表、染色匹配流表、学习流表、丢弃流表等。

应理解,该代理设备还可以将该测试数据包发送给该第三虚拟网桥探测器,并记录向该第三虚拟网桥探测器发送该测试数据包的时刻为第一时刻,由该第三虚拟网桥探测器向该第一虚拟机发送,该第一虚拟网桥探测器将该测试数据包原路返回,该第三虚拟网桥探测器统计生成延时统计流表的持续时间。该代理设备记录从该第三虚拟网桥探测器的延时统计流表获取流表持续时间的第二时刻,根据该流表的持续时间,和第一时刻,以及第二时刻,确定该第一虚拟机与该第三虚拟机之间的网络时延。

在本申请实施例中,代理设备通过控制网桥探测器,对网桥探测器下发流表来监控网络时延,操作简单,实时性强,并且不会侵入虚拟机,对用户数据不进行监控,避免了泄露用户隐私,提高了监控网络丢包的可靠性。

可选地,该代理设备根据该第一探测信息,和第一时刻,以及第二时刻,确定该第一虚拟机与该第三虚拟机之间的网络时延,包括:

根据式(1)确定该第一虚拟机与该第三虚拟机之间的网络时延:

t=t1-t2-t3(1)

其中,t表示该第一虚拟机与该第三虚拟机之间的网络时延,t1表示该代理设备在该第一虚拟网桥探测器获取该第一探测信息的时刻,t2表示该第一虚拟网桥探测器统计的第一流表的持续时间,t3表示该代理设备向该第一虚拟网桥探测器发送该测试数据包的时刻。

可选地,该方法还包括:该代理设备向服务器发送第二信息,该第二信息用于指示该第一虚拟机与该第三虚拟机之间的网络时延。

可选地,在该代理设备接收网络监控命令之前,该方法还包括:

该代理设备获取该物理机上部署的虚拟机的网络拓扑结构;

保存该网络拓扑结构。

可选地,该代理设备获取该物理机上部署的虚拟机的网络拓扑结构,包括:

该代理设备从该第一虚拟网桥探测器获取该第一虚拟机的下行业务数据包的源互联网协议地址(internetprotocoladdress,ip)和源媒体访问控制地址(mediaaccesscontrol,mac)。

其中,该第一虚拟网桥探测器用于确定该下行业务数据包的源ip地址和源mac地址;

根据该下行业务数据包的源ip地址和源mac地址,以及该第一虚拟机的ip地址和mac地址,确定该第一虚拟机与该第一虚拟机具有业务往来虚拟机之间的网络拓扑结构。

具体而言,该代理设备向该物理机下的所有虚拟网桥探测器下发拓扑学习流表,当下行数据包进入该虚拟网桥探测器时,与该拓扑学习流表匹配后,该拓扑学习流表进行实时学习,生成网络拓扑流表,该网络拓扑流表中保存了下行业务数据包的源ip地址和源mac地址等信息,该代理设备定时从该网络拓扑流表中获取拓扑流表的数据,确定虚拟机之间的网络拓扑结构。

例如,如图7所示,在图7中,代理设备向虚拟网桥探测器下发26号拓扑学习流表,下行数据包进入该虚拟网桥探测器时,该下行数据包与该26号拓扑学习流表匹配后,该拓扑学习流表进行实时学习,生成27号网络拓扑流表,该27号网络拓扑流表中保存了下行业务数据包的源ip地址和源mac地址等信息,该代理设备定时从该27号网络拓扑流表中获取该27号网络拓扑流表的数据,确定与该虚拟机交互的虚拟机。

可选地,该代理设备定时获取该网络拓扑流表的数据,包括:在该代理设备的学习时间到达预设的学习时间后,该代理设备定时从该网络拓扑流表中获取网络拓扑流表的数据,确定与该虚拟机交互的虚拟机。

通过在虚拟网桥探测器下发流表来获取虚拟机的网络拓扑架构,不需要进程持续监控操作,实时性更优,且对虚拟机无侵入,安全性较好。并且,避免了在收到监控命令时,获取网络拓扑结构,可以提高网络监控的效率。

可选地,在该代理设备获取该物理机上部署的虚拟机的网络拓扑结构之后,该方法还包括:

根据该网络拓扑结构,向该物理机上的虚拟机对应的虚拟网桥探测器下发第一流表和/或第二流表,

其中,该第一流表用于统计该虚拟机发送的业务数据包的个数并且标记该业务数据包,该第二流表用于在该虚拟网桥接收到测试数据包时生成的第三流表并且丢弃该测试数据包,该第三流表用于记录第三流表的持续时间。

具体而言,该代理设备接收到网络监控命令时,先获取网络拓扑结构,在确定了虚拟机的网络拓扑结构后,向虚拟机对应的虚拟网桥探测器下发第一流表和/或第二流表,该第一流表用于统计该第一虚拟机发送的业务数据包的个数并且标记该业务数据包,该第二流表用于统计该第一虚拟网桥接收到测试数据包时生成的第一流表的持续时间。

可选地,当该物理机上部署该第一虚拟机时,该代理设备创建该第一虚拟网桥探测器。

具体而言,当该物理机上部署该第一虚拟机时,该代理设备创建监控该第一虚拟机的该第一虚拟网桥探测器。在建立该第一虚拟网桥探测器后,首先对该虚拟网桥探测器进行初始化,该代理设备向该虚拟网桥探测器下发上行标准流表和下行标准流表,保证该虚拟网桥探测器可以正常转发与接收虚拟机的所有报文。

应理解,在该物理机上部署了新增的虚拟机时,该代理设备为该新增的虚拟机创建虚拟网桥探测器。

应理解,在该代理设备对该虚拟网桥探测器进行初始化时,可以同时下发用于执行监控网络丢包和/或监控网络时延的流表,也可以在该代理设备初次接收到网络监控命令时,下发用于执行网络监控命令的流表。

可选地,当该物理机上删除第一虚拟机时,该代理设备删除该第一虚拟网桥探测器。

应理解,在本申请实施例中,多个流表的编号仅用于举例,本申请并不对此进行限定,该多个流表的编号可以根据实际情况与流表的规则进行编号。

因此,在该代理设备接收到网络监控命令时,该代理设备从该第一虚拟网桥探测器获取第一探测信息,该第一探测信息用于指示丢包信息和/或时延信息,从而实现了对虚拟网络进行监控,该第一虚拟机独立于该第一虚拟网桥探测器,用户不能卸载该第一虚拟网桥探测器,避免了用户随时卸载监控软件,使得虚拟网络监控不可靠的情况,提高虚拟网络监控的可靠性,并且避免了对用户数据的监控,避免了用户隐私的泄露。

图8是根据本申请的一种代理设备300的示意性框图,所述代理设备包括:

接收模块310,用于接收网络监控命令;

处理模块320,用于根据网络监控命令从所述第一虚拟网桥探测器获取第一探测信息,所述第一探测信息用于指示丢包信息和/或时延信息。

可选地,所述接收模块310和处理模块320用于执行本申请的一种网络监控的方法200的各个操作,为了简洁,在此不再赘述。

可选地,该代理设备还可以包括监听模块、网络拓扑学习模块、网络丢包监控模块和网络延时监控模块、网络拓扑注册模块和通信模块。如图9所示,图9是根据本申请的一种代理设备400的示意性框图。

监听模块410用于监听代理设备所在的物理机上的所有虚机,当该物理机上部署虚拟机时,该代理模块创建与该虚拟机对应的虚拟网桥探测器,当该物理机上删除虚拟机时,该代理模块删除与该虚拟机对应的虚拟网桥探测器,以及自动删除该删除的虚拟机相关联的网络拓扑。

网络拓扑注册模块420,用于注册学习到的网络拓扑,该网络拓扑便于后续网络丢包的监控和网络延时监控。

网络拓扑学习模块430,用于向虚拟网桥探测器下发流表来获取网络拓扑结构。

网络丢包监控模块440,用于向虚拟网桥探测器下发流表来监控网络丢包,并从虚拟网桥探测器获取网络丢包的信息。

网络时延监控模块450,用于向虚拟网桥探测器下发流表来监控网络时延,并从虚拟网桥探测器获取网络时延的信息。

通信模块460(命令接收、数据上报):与服务器通信,接收服务器下发命令以及将监控到的数据上报给服务器。

下述操作为代理设备400启动后的自发流程:

代理模块启动后,监听模块410监听物理机上的所有以创建的虚机和监听是否有新虚机创建,则创建相应的ovs网桥探测器。

该代理模块使得vm相关联的ovs网桥探测器初始化(下发初始化流表,保证其能正常转发与接收租户虚拟机的所有业务报文)。

监听模块410监听到虚机被删除,则删除相应的ovs网桥探测器。

监听模块410监听到虚机被删除,则删除虚机相关联的的网络拓扑。

下述操作为代理设备400启动后的触发流程:

通信模块460接收到网络拓扑学习命令,向网络拓扑学习模块430发送相应命令。

网络拓扑学习模块430接收到命令后,向所有ovs网桥探测器下发网络拓扑学习流表。

所有ovs网桥探测器经过学习时间t后,网络拓扑学习模块从网桥探测器相应的流表中获取网络拓扑信息。

网络拓扑学习模块430,将网络拓扑信息注册到网络拓扑注册中心。

网络拓扑学习模块430将网络拓扑信息发送给通信模块460中的数据上报模块,上报给服务器。

通信模块460接收到网络丢包监控命令,向网络丢包监控模块440发送相应命令。

网络丢包监控模块440接收到命令后,从网络拓扑注册模块420遍历所有的网络拓扑。

根据网络拓扑向虚机对应的ovs网桥探测器下发包统计流表和包染色流表。

经过统计时间t后,向ovs网桥探测器下发删除包染色流表,终止包染色,即停止第一个周期的流量监控。并从包统计流表中获取发送和接收包数和byte数信息。

网络丢包监控模块440将网络监控信息连同网路拓扑通过数据上报模块上报给服务器。

通信模块460接收到网络延时连通监控命令,向网络延时监控模450块发送相应命令。

网络延时监控模块450接收到命令后,从网络拓扑注册模块420遍历所有的网络拓扑。

网络延时监控模块450根据网络拓扑向虚机对应的ovs网桥探测器下发流表,在发送端下发连通延时学习流表和构造包文drop流表,接收端下发连通染色数据包响应流表。

网络延时监控模块450在发送端注入染色后的探测数据包,学习流表学习生成延时统计流表,在生成延时统计流表中获取延时统计流表的持续时间,计算出该探测数据包的延时信息。

网络延时监控模块450将延时信息连同网络拓扑信息通过通信模块460模块上报给服务器。

可选地,所述监听模块410、网络拓扑注册模块420、网络拓扑学习模块430、网络丢包监控模块440、网络时延监控模块450、通信模块460用于执行本申请的一种网络监控的方法200的各个操作,为了简洁,在此不再赘述。

图10是根据本申请的代理设备500的示意性框图,所述代理设备500包括:

存储器510,用于存储程序,所述程序包括代码;

收发器520,用于和其他设备进行通信;

处理器530,用于执行存储器510中的程序代码。

可选地,当所述代码被执行时,所述处理器530可以实现方法200的各个操作,为了简洁,在此不再赘述。收发器520用于在处理器530的驱动下执行具体的信号收发。

图11是根据本申请的一种网络监控的系统600的示意性框图。该系统600包括服务器610,物理服务器620和物理服务器630,该物理服务器620上部署了4个虚拟机,该物理服务器620上部署的虚拟机由代理模块621管理,该物理服务器630上部署了4个虚拟机,该物理服务器630上部署的虚拟机由代理模块631管理。

该服务器610用于接收用户的网络监控命令并将该监控命令发送给代理模块621或代理模块631。应理解,该服务器610可以与物理服务器620或物理服务器630部署在同一个物理服务器上,该服务器610也可以与物理服务器620或物理服务器630部署在不同的物理服务器上。

该物理服务器上的虚拟机的数量根据实际情况确定,本申请并不对此进行任何限定。

可选地,该系统600下的代理模块用于执行本申请的一种网络监控的方法200的各个操作,为了简洁,在此不再赘述。

图12是根据本申请的一种网络监控的系统700的示意性框图。该系统700包括服务器710和代理装置720。该服务器710包括应用程序接口api请求模块711、检测命令下发模块712、数据分析模块713和数据中心模块714、该代理模块720包括拓扑发现模块721、丢包监控模块722、时延监控模块723、数据上报模块724。

用户向服务器710发起网络监控请求命令;服务器710的api请求接收模块711接收到请求后,向检测命令下发模块712发送检测监控命令;检测命令下发模块712通过消息队列向所有部署在物理服务器的agent广播监控命令;agent接收到命令后,进行相应的检测监控命令。agent将相应的检测数据发送给数据上报模块724。数据上报模块724通过消息队列将消息发送给服务器的数据分析模块713。服务器710端对数据进行分析,并存储到数据中心模块714中。用户从数据中心模块714获取所需的结果。

本申请提供了一种物理机,该物理机包括代理模块、第一虚拟机和第一虚拟网桥探测器,该第一虚拟机对应于该第一虚拟网桥探测器,该第一虚拟机独立于该第一虚拟网桥探测器,该物理机中的代理模块可以执行本申请的一种网络监控的方法200的各个操作,为了简洁,在此不再赘述。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1