公网IP带宽限制系统及在驱动层和控制层实现方法与流程

文档序号:11878481阅读:379来源:国知局
本发明涉及移动通讯领域,特别涉及一种基于LinuxTC的公网IP带宽限制系统。
背景技术
::在现有技术中,QoS(QualityofService,服务质量)指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。当网络发生拥塞的时候,所有的数据流都有可能被丢弃;为满足用户对不同应用不同服务质量的要求,就需要网络能根据用户的要求分配和调度资源,对不同的数据流提供不同的服务质量:对实时性强且重要的数据报文优先处理;对于实时性不强的普通数据报文,提供较低的处理优先级,网络拥塞时甚至丢弃。Openstack云平台QoS存在的问题:目前很多云计算厂商基于openstack开发IAAS云计算平台,但openstack在Liberty版本中实现的网络QoS功能是基于开源的软件交换机软件OpenvSwitch,只能针对某一个port进行限速,不能针对floating-ip(公网IP)进行带宽限制。而且OpenvSwitch的限速实现只限制上行带宽,无法限制下行带宽(即用户云主机的下载带宽)。IAAS的云计算厂商需要针对公网IP的带宽进行限制,制定相应的计费标准,但是带宽限制不应限制用户的云主机的内网带宽,只限制公网IP的带宽即可,因为用户只为公网IP的带宽付费。技术实现要素:针对上述现有技术中的缺点和不足,本发明的目的在于提供一种基于LinuxTC的公网IP带宽限制系统,能够同时限制openstack平台上云主机的公网IP的上行带宽和下行带宽。本发明的目的是通过以下技术方案实现的:一种基于LinuxTC的公网IP带宽限制系统,包括计算节点和网络节点,还包括:Linux网桥,用于网络节点与公网连通;Vxlan隧道,用于网络节点与计算节点之间连通;DHCP,openstack平台中实现的负责dhcp功能的网络命名空间,与网络节点通过网桥通信;路由器,openstack平台中实现的负责网络三层路由功能的网络命名空间,分别与公网和网络节点通过网桥通信;流量控制器,在路由器的命名空间里使用LinuxTC实现公网IP的上行,下行带宽限制。一种基于LinuxTC的公网IP带宽限制系统在控制层的实现方法,包括:QoS创建,创建QoS,在创建floating-ip时指定带宽上限值和下限值;QoS删除,删除floating-ip时,同时删除绑定在floating-ip上的QoS规则;QoS更新,对任一floating-ip的QoS规则进行更新,对没有绑定port的floating-ip的更新不生效;QoS列表,显示已经存在的floating-ip的QoS信息。一种基于LinuxTC的公网IP带宽限制系统在驱动层的实现方法,包括:S1,在路由器所在的命名空间中的qg接口建立HTB队列,并设置为默认根分类;S2,在默认根分类下建立限制路由总带宽的分类;S3,建立路由分类的过滤器;S4,在默认根分类下建立限制每个floating-ip的分类;S5,建立每个floating-ip的过滤器。与现有技术相比,本发明实施例至少具有以下优点:本发明基于LinuxTC的公网IP带宽限制系统解决了openstack平台上云主机的floating-ip的上行及下行带宽限制问题,且解除了openstack中的带宽限制依赖于某一个具体的网络二层plugin的限制。附图说明图1为本发明基于LinuxTC的公网IP带宽限制系统的结构示意图。标注注释:ComputeNode:openstack中的计算结点NetworkNode:openstack中的网络结点br-ex:网络结点上与公网连通的Linux网桥br-tun:网络结点与计算结点之间的Vxlan隧道DHCP:openstack中实现的负责dhcp功能的网络命名空间Router:openstack中实现的负责网络三层路由功能的网络命名空间。br-int:网络结点上连接br-tun和DHCP和Router命名空间的网桥(由OpenvSwitch创建)TC:在Router的命名空间里使用Linux的TC实现公网IP的上行,下行带宽限制。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。下面结合附图和实施例对本发明作进一步详述。如图1所示,图1为本发明基于LinuxTC的公网IP带宽限制系统的结构示意图。一种基于LinuxTC的公网IP带宽限制系统,包括计算节点和网络节点,还包括:Linux网桥,用于网络节点与公网连通;Vxlan隧道,用于网络节点与计算节点之间连通;DHCP,openstack平台中实现的负责dhcp功能的网络命名空间,与网络节点通过网桥通信;路由器,openstack平台中实现的负责网络三层路由功能的网络命名空间,分别与公网和网络节点通过网桥通信;流量控制器,在路由器的命名空间里使用LinuxTC实现公网IP的上行,下行带宽限制。一种基于LinuxTC的公网IP带宽限制系统在控制层的实现方法,包括:QoS创建,创建QoS,在创建floating-ip时指定带宽上限值和下限值;QoS删除,删除floating-ip时,同时删除绑定在floating-ip上的QoS规则;QoS更新,对任一floating-ip的QoS规则进行更新,对没有绑定port的floating-ip的更新不生效;QoS列表,显示已经存在的floating-ip的QoS信息。以上控制层的功能(包括QoS规则的创建,QoS规则的删除,更新和列表显示)主要是增加相应的RestAPI接口,在openstackneutron的客户端增加相应的命令行。同时在openstack的neutronserver项目中增加对应的数据库table,用于记录用户设置的带宽参数,以及每个公网IP(floatingip)与带宽参数的关联关系。RestAPI的实现:QoS规则的创建,删除,列表显示和更新都会保存在数据库中,同时将相应的带宽参数通过RabbitMQ这个消息中间件发往openstack中的L3-agent模块,由L3-agent这个模块实现驱动层面的功能。一种基于LinuxTC的公网IP带宽限制系统在驱动层的实现方法,包括:S1,在路由器所在的命名空间中的qg接口建立HTB队列,并设置为默认根分类;S2,在默认根分类下建立限制路由总带宽的分类;S3,建立路由分类的过滤器;S4,在默认根分类下建立限制每个floating-ip的分类;S5,建立每个floating-ip的过滤器。驱动层的具体实现分为2部分:上行带宽的限制和下行带宽的限制Linux系统中的TC做带宽限制默认只能限制上行带宽,不能限制下行带宽,但是可以创建一个虚拟的ifb类型的接口,将流量重定向到该虚拟接口上,而从该虚拟接口发出的流量,相对于用户的云主机而言,就是下行的流量。具体流程如下:(1)在虚拟路由器的网络命令空间中的qg-xxxxx()接口建立HTB类型的队列,作为root分类的qdisc(2)在默认root分类下建立限制带宽的各个class,实际上是用户每选择一种带宽就有一个class。(此处由于计费的需要,将带宽设置为几种固定的值由用户选择,而非任意值,这样TC的针对带宽的class分类也只有有限的几种,不会有太多class流量分类影响带宽限制的性能。(3)针对每一个floating-ip(公网IP)设置对应的filter规则,用于过滤IP地址,这样可实现针对公网IP的限速和流量整形,而不影响私网的流量。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1