一种虚拟交换机队列的网络配置装置
技术领域
本发明涉及电力通信领域,具体涉及一种虚拟交换机队列的网络配置装置。
背景技术
软件定义的网络(Software Defined Network,SDN)是一种新型的网络体系结构,通过将网络控制与网络转发解耦合构建开放可编程的网络体系结构。SDN与传统数据网络的最大差别在于网络控制模式,将底层网络分成控制层与转发层。控制层采用集中式控制器来控管不同的网络设备,网络更易于被控制与管理。控制器通过安全通道与OpenFlow交换机进行通信,下发流表与控制原则来决定流量的流向,以此达到路由机制、封包分析、网络虚拟化等功能的实现。
目前传统数据网络交换机无法与SDN控制器相结合,不能用于SDN网络,而当前国内外设备厂家所提供的SDN交换机均为48端口以上的硬件交换机,在电力系统中应用会造成较大的资源浪费及成本投入,而且该设备对运维人员技术要求较高,这也增加了网络运维的难度和成本。
目前,国内外设备制造企业都在逐步研发并发布了自己的SDN虚拟交换机,但国际上并未形成统一的互联互通标准,同时厂家均使自己的虚拟交换平台与自己的SDN控制器有着紧耦合的特点,不能灵活调度物理端口数据流,适用范围较窄。
发明内容
因此,本发明提供一种虚拟交换机队列的网络配置方法及装置,解决了SDN虚拟交换机的控制器不能灵活调度物理端口数据流的问题,同时实现网络干扰器模拟丢包的功能。
本发明实施例提供的一种改进型虚拟交换机队列的配置装置,包括:控制器、计数器、多个虚拟交换机及多个物理端口,其中,各所述虚拟交换机中分别配置有至少两个虚拟端口;各所述物理端口分别绑定一个或多个所述虚拟端口,建立所述虚拟端口与物理端口之间的绑定关系;各所述虚拟交换机通过将各自的其中一虚拟端口之间建立虚拟连接进行通信,建立所述虚拟交换机之间的通信关系;计数器,用于记录数据缓存队列中排队的报文个数;至少一所述虚拟交换机用于根据所述数据缓存队列中排队的报文个数,设置数据队列转发操作方式,建立数据传输过程中模拟受干扰时的丢包状态;所述控制器根据所述虚拟端口与所述物理端口之间的绑定关系以及所述虚拟交换机之间的通信关系,下发预设流表给所述多个虚拟交换机控制数据的转发路径,建立数据传输的正常传输状态或模拟干扰丢包状态。
优选地,所述虚拟交换机建立数据传输过程中的丢包状态的过程,具体包括:获取用以表征数据缓存队列中排队报文个数的状态标识,当数据缓存队列中有0个报文队长时,状态标识为第一状态,当数据缓存队列中有1个报文队长时,状态标识为第二状态;判断所述状态标识的状态,当状态标识为第二状态时,将所述数据缓存队列中的报文从所述虚拟端口中发出;当所述状态标识为非第一状态和非第二状态时,清空所述数据缓存队列中的报文,并将所述状态标识切换至第一状态,并将当前状态确定为所述模拟干扰丢包状态。
进一步地,当所述数据转发的路径经过用于建立数据传输过程中模拟受干扰时的丢包状态的虚拟交换机时,所述配置装置处于所述模拟干扰丢包状态,当所述数据转发的路径不经过用于建立数据传输过程中模拟受干扰时的丢包状态的虚拟交换机时,所述配置装置处于所述正常传输状态。
进一步地,所述控制器根据所述虚拟端口与所述物理端口之间的绑定关系以及所述虚拟交换机之间的通信关系,下发预设流表给所述多个虚拟交换机并设置所述流表的有效时间,所述虚拟交换机执行在预设时间内有效的流表来控制数据的转发路径,建立数据传输的正常传输状态或模拟干扰丢包状态。
本发明技术方案,具有如下优点:
本发明提供的改进型虚拟交换机队列的配置装置,包括:控制器、多个虚拟交换机及多个物理端口,其中,各虚拟交换机中分别配置有至少两个虚拟端口;各物理端口分别绑定一个或多个虚拟端口,建立虚拟端口与物理端口之间的绑定关系;各虚拟交换机通过将各自的其中一虚拟端口之间建立虚拟连接进行通信,建立虚拟交换机之间的通信关系;至少一虚拟交换机用于建立数据传输过程中模拟受干扰时的丢包状态;控制器根据虚拟端口与物理端口之间的绑定关系以及虚拟交换机之间的通信关系,下发预设流表给多个虚拟交换机控制数据的转发路径,建立数据传输的正常传输状态或模拟干扰丢包状态。
本发明提供的装置可灵活绑定虚拟端口和物理端口,以及建立虚拟端口之间的通信关系,以下发流表的方式来设置数据流的转发路径,既实现正常的传输状态也可以实现网络干扰器模拟丢包状态。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中装置的一个具体示例的原理组成框图;
图2为本发明实施例中装置的一个具体示例的原理组成图;
图3为本发明实施例中装置另一个具体示例的原理组成图;
图4为本发明实施例中装置第三个具体示例的原理组成图。
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的描述中,需要说明的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
此外,下面所描述的本发明不同实施方式中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。
实施例1
本发明实施例提供一种改进型虚拟交换机队列的配置装置,如图1所示,包括:控制器1、多个虚拟交换机2、多个物理端口3、计数器4、其中,
各虚拟交换机2中分别配置有至少两个虚拟端口;各物理端口3分别绑定一个或多个虚拟端口,建立虚拟端口与物理端口3之间的绑定关系;各虚拟交换机通过将各自的其中一虚拟端口之间建立虚拟连接进行通信,建立虚拟交换机之间的通信关系;计数器4,用于记录数据缓存队列中排队的报文个数;至少一虚拟交换机2用于根据所述数据缓存队列中排队的报文个数,设置数据队列转发操作方式,建立数据传输过程中模拟受干扰时的丢包状态;控制器1根据虚拟端口2与物理端口3之间的绑定关系以及虚拟交换机2之间的通信关系,下发预设流表给多个虚拟交换机2控制数据的转发路径,建立数据传输的正常传输状态或模拟干扰丢包状态。本发明实施例中,虚拟交换机2既可以单独进行数据传输,也可以与其他虚拟交换2建立虚拟连接进行通信,可根据实际应用需要进行设置。
在一较佳实施例中,如图2所示,本发明实施例的改进型虚拟交换机队列的配置装置,由X86服务器硬件组成,采用DPDK(Data Plane Development Kit)网卡来快速处理数据包,安装Linux操作系统,设置两台虚拟交换机OVS(open vswitch),分别为OVS1和OVS2,设置有两个物理端口R1、R2,物理端口由DPDK网卡提供的物理网口实现,R1口负责接入、R2口负责上联,整个配置装置将串联在网络中。
上述配置装置将在Linux操作系统上启动三个进程,其中两个进程运行两台虚拟交换机OVS(open vswitch),分别为虚拟交换机OVS1和虚拟交换机OVS2,第三个进程将启动控制器1下发预设流表控制数据流在虚拟交换机OVS1和OVS2中的转发路径。
本发明实施例中,虚拟交换机OVS1所配置的3个虚拟端口分别为V11、V12、V13,虚拟交换机OVS2所配置的2个虚拟端口分别为V21、V22。将虚拟交换机OVS1的虚拟端口V11绑定物理端口R1,将虚拟交换机OVS2的虚拟端口V12绑定物理端口R2,V22绑定物理端口R2,并且将虚拟端口V13与虚拟端口V21划分在一个VLAN(建立虚拟连接)中,从而使虚拟交换机OVS1和虚拟交换机OVS2之间建立通信连接。
需要说明的是,上述虚拟交换机的数量及虚拟端口的数量仅为举例说明,而非用以限制本发明,具体的设置虚拟交换机的数量、以及虚拟交换机中设置的虚拟端口的数量,可根据需要进行调整。
可选地,在本发明的一些实施例中,上述的改进型虚拟交换机队列的配置装置还包括:计数器,用于记录数据缓存队列中排队的报文个数;虚拟交换机建立数据传输过程中的丢包状态的过程,具体包括:
获取用以表征数据缓存队列中排队报文个数的状态标识,当数据缓存队列中有0个报文队长时,状态标识为第一状态,当数据缓存队列中有1个报文队长时,状态标识为第二状态;判断所述状态标识的状态,当状态标识为第二状态时,将所述数据缓存队列中的报文从所述虚拟端口中发出;当所述状态标识为非第一状态和非第二状态时,清空所述数据缓存队列中的报文,并将状态标识切换至第一状态,并将当前状态确定为模拟干扰丢包状态。
本发明实施例中,将虚拟交换机OVS2的虚拟交换机队列操作策略进行改进,用于建立数据传输过程中模拟受干扰时的丢包状态。在改进后的虚拟交换机OVS2队列操作状态中,状态标识为队列中排队报文个数。当一个报文到来时,首先判断数据缓存队列的报文队长。若当前队列中处于0个报文队长时,执行入队操作并启动计数器,同时切换至状态1;当队列处于状态1时,则取出该报文并从虚拟端口V22转发出去;当队列处于非0和非1的状态时,计数器则执行清空操作,清空队列并切换至状态0,即,将排队队长大于1的数据清空来模拟干扰丢包状态。
本发明实施例中,控制器1将通过OpenFlow接口,以流表的形式控制数据流虚拟交换机OVS1和OVS2的转发路径。在一实施例中,控制器1可配置3条流表F1、F2、F3给虚拟交换机OVS1和OVS2。其中:
流表F1的配置策略为:所有进入虚拟端口V11的数据流从虚拟端口V12转发出去;
流表F2的配置策略为:所有进入虚拟端口V11的数据流从虚拟端口V13转发出去;
流表F3的配置策略为:所有进入虚拟端口V21的数据流从虚拟端口V22转发出去。
如图2所示,控制器1将流表F1下发给虚拟交换机OVS1,此时所有进入物理端口R1的数据流将进入虚拟交换机OVS1的虚拟端口V11,通过虚拟端口V12的转发后,从虚拟端口V12绑定的物理端口R2转发出去,此时配置装置处于正常的传输状态,等同于透明传输通道。
如图3所示,当需要模拟干扰状态时,控制器1将流表F2下发给虚拟交换机OVS1,将流表F3下发给虚拟交换机OVS2,此时所有进入物理端口R1的数据流将先进入虚拟交换机OVS1虚拟端口V11,并从虚拟端口V13中转发出去,由于虚拟交换机OVS1和虚拟交换机OVS2之间建立的通信关系,因此数据流从虚拟端口V13转出到虚拟交换机OVS2,最终从与虚拟端口V22绑定的物理端口R2中转发出去。因为数据流转发的路径经过了对虚拟交换机队列操作策略进行改进的虚拟交换机OVS2,因此此时装置可以模拟网络干扰器的丢包状态。
本发明提供的装置可灵活绑定虚拟端口和物理端口,以及建立虚拟端口之间的通信关系,来设置数据流的转发路径,既实现正常的传输状态也可以实现网络干扰器模拟丢包状态,与现有技术中的价格高昂且部署复杂专用的网络干扰器相比节约了成本,对可编程网络链路丢包率监控的测试和网络健壮性评估拥有很好的应用价值。
实施例2
本发明实施例提供一种改进型虚拟交换机队列的配置装置,包括:控制器1、多个虚拟交换机2及多个物理端口3,各虚拟交换机2中分别配置有至少两个虚拟端口;各物理端口3分别绑定一个或多个虚拟端口,建立虚拟端口与物理端口之间的绑定关系;各虚拟交换机通过将各自的其中一虚拟端口之间建立虚拟连接进行通信,建立虚拟交换机之间的通信关系;至少一虚拟交换机用于建立数据传输过程中模拟受干扰时的丢包状态;控制器1根据虚拟端口与物理端口之间的绑定关系以及虚拟交换机之间的通信关系,下发预设流表给多个虚拟交换机2并设置流表的有效时间,虚拟交换机执行在预设时间内有效的流表来控制数据的转发路径,建立数据传输的正常传输状态或模拟干扰丢包状态。
在一较佳实施例中,如图4所示,本发明实施例的改进型虚拟交换机队列的配置装置,由X86服务器硬件组成,采用DPDK网卡(用于快速数据包处理),安装Linux操作系统,设置三台虚拟交换机OVS(open vswitch),分别为OVS1、OVS2和OVS3,设置有两个物理端口R1、R2,物理端口由DPDK网卡提供的物理网口实现,R1口负责接入、R2口负责上联,整个配置装置将串联在网络中。
上述配置装置将在Linux操作系统上启动四个进程,其中三个进程运行三台虚拟交换机OVS(open vswitch),分别为虚拟交换机OVS1、虚拟交换机OVS2和虚拟交换机OVS3,第四个进程将启动控制器1下发预设流表,控制数据流在虚拟交换机OVS1、OVS2和OVS3中的转发路径。
本发明实施例中,如图4所示,上述配置装置包括:控制器1和三台虚拟交换机OVS1、OVS2、OVS3。控制器1将通过OpenFlow接口,以流表的形式控制虚拟交换机OVS1、OVS2和OVS3的转发路径。虚拟交换机OVS1所配置的3个虚拟端口分别为V11、V12、V13,虚拟交换机OVS2所配置的2个虚拟端口分别为V21、V22,虚拟交换机OVS3所配置的2个虚拟端口分别为V31、V32,并且将虚拟端口V13与V21划分在一个VLAN(建立虚拟连接)中,将虚拟端口V12与V31划分在一个VLAN中(建立虚拟连接),从而使虚拟交换机OVS1和虚拟交换机OVS2之间,以及虚拟交换机OVS1和虚拟交换机OVS3之间建立通信连接。虚拟端口V11绑定物理端口R1,虚拟端口V22绑定物理端口R2,虚拟端口V32绑定物理端口R2。
需要说明的是,上述虚拟交换机的数量及虚拟端口的数量仅为举例说明,而非用以限制本发明,具体的设置虚拟交换机的数量、以及虚拟交换机中设置的虚拟端口的数量,可根据需要进行调整。
可选地,在本发明的一些实施例中,控制器1给虚拟交换机OVS1下发两条流表F1-1、F1-2,给虚拟交换机OVS2下流表F2,给虚拟交换机OVS3下发流表F3,其中:
F1-1的配置策略为:所有虚拟端口V11的数据流从虚拟端口V12转发出去,同时设置流表F1-1的有效时间为t,即在预设时间t内流表F1-1有效;
F1-2的配置策略为:当F1-1流表到达有效时间到达,即在预设时间后,所有进入虚拟端口V11的数据流从虚拟端口V13转发出去;
F2的配置策略为:所有进入虚拟端口V21的数据流从虚拟端口V22转发出去;
F3的配置策略为:所有进入虚拟端口V31的数据流从虚拟端口V32转发出去。
本发明实施例中,将虚拟交换机OVS3的虚拟交换机队列操作策略进行改进,用于建立数据传输过程中模拟受干扰时的丢包状态。在改进后的虚拟交换机OVS3队列操作状态中,状态标识为队列中排队报文个数。当一个报文到来时,首先判断数据缓存队列的报文队长。若当前队列中处于0个报文队长时,执行入队操作并启动计数器,同时切换至状态1;当队列处于状态1时,则取出该报文并从虚拟端口V32中转发出去;当队列处于非0和非1的状态时,计数器则执行清空操作,清空队列并切换至状态0,即,将排队队长大于1的数据清空来模拟干扰丢包状态。
本发明实施例中,在上述装置开启的0~t时间段内,控制器1下发的流表F1-1有效,因此通过物理端口R1进入到虚拟端口V11的数据从V12转发出去,由于虚拟交换机OVS1和虚拟交换机OVS3之间建立的通信关系,因此数据流从虚拟端口V12转出到虚拟交换机OVS3,最终从与虚拟端口V32绑定的物理端口R2中转发出去,因为数据转发的路径经过了对虚拟交换机队列操作策略进行改进的虚拟交换机OVS3,因此在0~t时间段内模拟干扰丢包状态;在t时间之后,控制器1下发的流表F1-2有效,所有进入虚拟端口V11的数据流从虚拟端口V13转发出去,由于虚拟交换机OVS1和虚拟交换机OVS2之间建立的通信关系,最终从与虚拟端口V22绑定的物理端口R2中转发出去,虚拟交换机OVS1和OVS2的虚拟交换机队列操作没有被改进,为正常的传输状态,因此在t时间之后,恢复为透传通道即正常的传输状态。
本发明提供的装置可灵活绑定虚拟端口和物理端口,以及建立虚拟端口之间的通信关系,通过下发设置有效时间流的流表来控制数据流的转发路径,既实现正常的传输状态,也可以实现网络干扰器模拟丢包状态,与现有技术中的价格高昂且部署复杂专用的网络干扰器相比节约了成本,对可编程网络链路丢包率监控的测试和网络健壮性评估拥有很好的应用价值。
显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。