CN105915470A - 一种基于Linux流量控制的弹性带宽配置方法 - Google Patents
一种基于Linux流量控制的弹性带宽配置方法 Download PDFInfo
- Publication number
- CN105915470A CN105915470A CN201610247105.6A CN201610247105A CN105915470A CN 105915470 A CN105915470 A CN 105915470A CN 201610247105 A CN201610247105 A CN 201610247105A CN 105915470 A CN105915470 A CN 105915470A
- Authority
- CN
- China
- Prior art keywords
- tenant
- htb
- bandwidth
- lessee
- queue
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/828—Allocation of resources per group of connections, e.g. per group of users
Abstract
本发明提供了一种基于Linux流量控制的弹性带宽配置方法,包括以下步骤:S1、获取租户所要共享的多个floating ip所在的路由器;S2、使用iptables命令将租户虚机发出的数据包打上用于识别租户的租户标记值,并将数据包的源地址替换为floating ip地址;S3、在外网网卡上创建HTB队列、默认分类;S4、在HTB队列中创建租户分类并设置相应带宽值;S5、根据租户标记值创建分类对应的过滤器。在本发明中,同一租户申请多个公网IP地址时实现了带宽弹性共享功能,解决了租户带宽资源的浪费,降低了租户的使用成本。
Description
技术领域
本发明涉及云计算技术领域,尤其涉及一种基于Linux流量控制的弹性带宽配置方法。
背景技术
云计算提供了一种弹性的资源配置,可以按用户的等级、付费等情况,按需使用虚拟网络、虚拟存储以及虚拟计算资源。特别是公有云服务,对网络带宽的控制、监控和计费等有着较高的需求。目前各大知名云计算服务提供商都在售卖公网IP地址及其网络带宽,各种云计算开源产品也提供了带宽控制功能。
目前各大云计算服务提供商均只提供了单个floating ip的带宽限制,这种设计存在以下缺点:首先,用户不能高效地应用所申请的带宽资源,多个floating ip的带宽资源都是独立的,其带宽资源不能相互共享,这样就使得租户必须多次购买带宽资源;其次,当某些floating ip的流量较小,长时间达不到所购带宽的峰值,会造成了租户带宽资源的浪费;再次,Floating ip的带宽值常常是不能更改或者需要人工操作去更改,在floatingip流量激增或空闲时,不能做到带宽资源的弹性调整。
目前,开源的云平台中关于带宽限制的解决方案是限制公共网络和私有网络的带宽,这种方案对于公有云的租户网络带宽的意义不大,因为公有云中公共网络只有运营商才能管理和维护,而且对公共网络带宽的设置会影响云平台的所有用户。私有网络不涉及租户的成本,因为私有网络的带宽资源属于租户本身,公有云中很少有租户对自己私有网络带宽管理的需求。因此,这种方案更适合用于私有云。
发明内容
本发明的目的在于公开基于Linux流量控制的弹性带宽配置方法,用以实现同一用户的多个floating ip带宽资源的共享,减低租户带宽资源的浪费,降低租户的使用成本。
为实现上述目的,本发明提供了一种基于Linux流量控制的弹性带宽配置方法,包括以下步骤:
S1、获取租户所要共享的多个floating ip所在的路由器;
S2、使用iptables命令将租户虚机发出的数据包打上用于识别租户的租
户标记值,并将数据包的源地址替换为floating ip地址;
S3、在外网网卡上创建HTB队列、默认分类;
S4、在HTB队列中创建租户分类并设置相应带宽值;
S5、根据租户标记值创建分类对应的过滤器。
作为本发明的进一步改进,步骤S1中的floating ip位于网络节点中租户路由器的公网出口上。
作为本发明的进一步改进,步骤S2还包括:在租户路由器内将所有发出的数据包打上租户标记值。
作为本发明的进一步改进,步骤S3中的“HTB队列”包括HTB根队列、HTB根类、HTB子类,所述HTB子类为在外网网卡上为租户所分配的带宽级别。
作为本发明的进一步改进,步骤S4还包括将符合过滤器过滤条件的租户访问虚拟机所产生的数据包发送至对应的HTB子类。
与现有技术相比,本发明的有益效果是:本发明在同一租户申请多个公网IP地址时实现了带宽弹性共享功能,解决了租户带宽资源的浪费,降低了租户的使用成本。
附图说明
图1为本发明一种基于Linux流量控制的弹性带宽配置方法运用于openstack架构云平台的网络拓扑图;
图2为弹性带宽配置过程的实例;
图3为弹性带宽配置过程中的数据包传递路径示意图。
具体实施方式
下面结合附图所示的各实施方式对本发明进行详细说明,但应当说明的是,这些实施方式并非对本发明的限制,本领域普通技术人员根据这些实施方式所作的功能、方法、或者结构上的等效变换或替代,均属于本发明的保护范围之内。
在本说明书各实施方式中,云平台与云计算平台具有等同含义。除非特别指出,具体实施方式中的计算资源、存储资源、带宽资源均指虚拟计算资源、虚拟存储资源、虚拟带宽资源。
在详细阐述本发明具体实施方式之前,首先对具体实施方式中的各专业术语作出说明。
OpenStack:一种云计算管理平台系统;Neutron网络服务:OpenStack
的一个服务组件;Linux TC:Linux内核中的流量控制软件;Iptables:
Linux系统用户空间的网络流量过滤软件;floating ip:弹性ip地址,通常指
云平台中可以随意分配的公网地址资源,目前主要为IPV4地址格式,由32
位2进制数组成。
在本实施方式中,可在Openstack云计算平台(一种开源云平台)中实现了同租户所申请的多个floating ip带宽资源共享。其原理是基于Linux TC中的HTB(Hierarchy Token Bucket)分类队列技术。TC是linux中的流量控制模块,它可以在网络接口上建立数据包发送的队列,并定义队列中数据包的发送方式,从而实现对流量的控制。TC在流量控制中使用的队列分为两类:无类分类队列和有类分类队列。无类分类队列的特点是对进入网络设备(例如,内网网桥、外网网卡、交换机、路由器)的数据流不加区分统一对待,而有类分类队列则是根据不同的需求以分类的方式区分对待。因为我们需要对不同租户的流量设置不同的带宽值,在本实施方式中,选用有类分类队列,并具体为HTB队列。
使用HTB队列,创建一个默认分类和多个指定了带宽值的分类,每个申请了公网带宽的租户对应一个分类,默认分类不限制带宽,用于非floating ip流量从此分类出队。为了使每个租户的数据包进入各自的分类出队,还需为每个租户创建相应的过滤器,过滤器会通过数据包在内核空间中的租户标记来区分该数据包属于哪个租户,并放置到相应的队列分类中。
租户对应的标记值可以在Openstack数据库中维护,标记数据包是使用
iptables命令来实现的。当租户发出的数据包经过租户路由器时,使用
iptables将要发出的数据包在内核空间中打上该租户特有的标记,数据包经
过外网桥到达外网网卡后,过滤器根据该标记将数据包发送到指定分类。
本发明适用的场景具体为,网络节点操作linux系统内核3.10版本以上,启用Neutron组件的openstack平台,并且不启用DVR机制,即分布式路由,所有floating ip位于网络节点上。本发明在功能上主要分为两个部分:数据包标记部分和队列管理部分,图3描述了这两部分功能对数据包的处理方式,图3中的“router”即为图2中的租户路由器。
结合图1所示,本发明一种基于Linux流量控制的弹性带宽配置方法,包括以下步骤:
S1、获取租户所要共享的多个floating ip所在的路由器。具体的,该步骤S1中的floating ip位于网络节点中租户路由器的公网出口上。租户虚机向外发送的所有流量都要经过路由器(即图1中的router1、router2),因此要在路由器内标记floating ip的数据包。每个租户可创建多个路由器,此步骤需要获取到满足以下条件的路由器:(1)路由器下存在私有网络;(2)私有网络中存在虚拟机(vm);(3)虚拟机绑定了floating ip地址。
S2、使用iptables命令将租户虚机发出的数据包打上用于识别租户的租
户标记值,并将数据包的源地址替换为floating ip地址。该步骤S2还包括:
在租户路由器内将所有发出的数据包打上租户标记值。标记值用于过滤器对
租户数据包的识别,必须是唯一的,可以维护在数据库中,通过租户信息获
取。
虚机发送到外网的数据包会在路由器中将数据包的源地址由内网地址
替换为floating ip地址。这个操作是在iptables nat表的POSTROUTING链上
实现的。由Linux内核实现决定,该操作要在给数据包打上租户标记值之后。
此时租户发出数据包的源地址仍然为虚拟机的内网地址,因此需要获取绑定
floating ip的虚拟机内网地址。使用iptables命令标记源地址为floating ip的
数据包。使用iptables命令,在mangle表的POSTROUTING链上对源地址
为指定内网地址的数据包打上对应租户的租户标记值。
S3、在外网网卡(eth2)上创建HTB队列、默认分类。其中,默认分类用于过滤器过滤之后的流量通过,即不属于任何租户的分类,不限制带宽。
S4、在HTB队列中创建租户分类并设置相应带宽值。具体的,“HTB队列”包括HTB根队列、HTB根类、HTB子类,所述HTB子类为在外网网卡上为租户所分配的带宽级别。在本实施方式中,该步骤S4还包括将符合过滤器过滤条件的租户访问虚拟机所产生的数据包发送至对应的HTB子类。
S5、根据租户标记值创建分类对应的过滤器。
接下来对本发明一种基于Linux流量控制的弹性带宽配置配方法在openstack云平台进行部署的整个过程详细说明。
第一步:准备服务器。
安装openstack(juno版本)。
第二步:确认配置。
外网网卡(eth2),Ovs外网网桥(br-ex)。
第三步:构建环境
创建私有网络(private-net1、private-net1),
在私有网络中创建虚拟机(private-net1→vm1、private-net2→vm2),
创建路由器(router1、router2),
将私有网络接入路由器(private-net1→router1、private-net2→router2),
创建外网(public-net1),
给路由器设置外网网关,
给虚拟机分配浮动IP(192.168.1.102→vm1、192.168.1.103→vm2),
经过前三步得到如图1所示的本发明一种基于Linux流量控制的弹性带宽配置方法运用于openstack架构云平台的网络拓扑图。
第四步:使用ip netns命令确认router对应的namespace名称(命名空间中的名称)。
router1对应的namespace:qrouter-9e9fa43c-ea75-49d4-969a-0644fd3ee3bc;
router2对应的namespace:qrouter-242c7252-15c7-46ce-918d-02b423885fde;
第五步:在router内标记floating ip相关的流量。
在router1中标记绑定floating ip:192.168.1.102的虚机(10.10.10.7)的
流量:ip netns exec qrouter-9e9fa43c-ea75-49d4-969a-0644fd3ee3bc iptables-t
mangle-A POSTROUTING-s 10.10.10.7-j MARK--set-mark 1。
在router2中标记绑定floating ip:192.168.1.103的虚机(20.20.20.5)的
流量:ip netns exec qrouter-242c7252-15c7-46ce-918d-02b423885fde iptables-t
mangle-A POSTROUTING-s 20.20.20.5-j MARK--set-mark 1。
第五步:在外网网卡上建立HTB队列。
建立根队列:tc qdisc add dev eth2 root handle 1:htb default 255。
建立根类:tc class add dev eth2 parent 1:classid 1:1htb rate 1000mbit ceil1000mbit。
建立为租户分配带宽的子类:tc class add dev eth2 parent 1:1classid 1:10htb rate 2048kbps ceil 2048kbps prio 1。
建立流量过滤器:tc filter add dev eth2 parent 1:protocol ip prio 100 handle1 fw classid 1:10。
经过后两步完成了弹性带宽共享环境的搭建,实现了同一租户多个floating ip带宽弹性共享功能,其结构图如图2所示。
属于同一租户的所有路由器均会将要共享带宽的floating ip打上相同的租户标记值。每个租户在外网网卡上有相应的过滤器(filter)和队列分类,过滤器会把打上本租户标记的包发送给相应的队列分类。租户的队列分类设置了该租户申请的总带宽。
上文所列出的一系列的详细说明仅仅是针对本发明的可行性实施方式的具体说明,它们并非用以限制本发明的保护范围,凡未脱离本发明技艺精神所作的等效实施方式或变更均应包含在本发明的保护范围之内。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (5)
1.一种基于Linux流量控制的弹性带宽配置方法,其特征在于,包括以下步骤:
S1、获取租户所要共享的多个floating ip所在的路由器;
S3、在外网网卡上创建HTB队列、默认分类;
S4、在HTB队列中创建租户分类并设置相应带宽值;
S5、根据租户标记值创建分类对应的过滤器。
2.根据权利要求1所述的弹性带宽配置方法,其特征在于,所述步骤S1中的floating ip位于网络节点中租户路由器的公网出口上。
3.根据权利要求1所述的弹性带宽配置方法,其特征在于,所述步骤S2还包括:在租户路由器内将所有发出的数据包打上租户标记值。
4.根据权利要求1所述的弹性带宽配置方法,其特征在于,所述步骤S3中的“HTB队列”包括HTB根队列、HTB根类、HTB子类,所述HTB子类为在外网网卡上为租户所分配的带宽级别。
5.根据权利要求1所述的弹性带宽配置方法,其特征在于,所述步骤S4还包括将符合过滤器过滤条件的租户访问虚拟机所产生的数据包发送至对应的HTB子类。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610087128 | 2016-01-27 | ||
CN2016100871285 | 2016-01-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105915470A true CN105915470A (zh) | 2016-08-31 |
CN105915470B CN105915470B (zh) | 2019-05-21 |
Family
ID=56746522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610247105.6A Active CN105915470B (zh) | 2016-01-27 | 2016-04-19 | 一种基于Linux流量控制的弹性带宽配置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105915470B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107800645A (zh) * | 2016-09-06 | 2018-03-13 | 北京京东尚科信息技术有限公司 | 云主机数据发送、接收、传输方法和装置 |
CN108471383A (zh) * | 2018-02-08 | 2018-08-31 | 华为技术有限公司 | 报文转发方法、装置和系统 |
CN108810191A (zh) * | 2018-07-18 | 2018-11-13 | 郑州云海信息技术有限公司 | 基于OpenStack的浮动IP检测方法及系统 |
CN109039807A (zh) * | 2018-07-13 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种基于Open Stack的网络系统负载均衡检测方法 |
CN109639488A (zh) * | 2018-12-18 | 2019-04-16 | 无锡华云数据技术服务有限公司 | 一种多外网分流加速方法及系统 |
CN110149282A (zh) * | 2019-01-30 | 2019-08-20 | 华为技术有限公司 | 流量调度方法和装置 |
CN111970149A (zh) * | 2020-08-17 | 2020-11-20 | 浪潮云信息技术股份公司 | 一种基于硬件防火墙qos的共享带宽实现方法 |
CN112087534A (zh) * | 2020-09-12 | 2020-12-15 | 洪世协 | 一种简便可溯源无线路由器实现方法 |
CN112866019A (zh) * | 2021-01-11 | 2021-05-28 | 科大讯飞股份有限公司 | 弹性ip地址的带宽限速方法、相关设备及可读存储介质 |
CN113067719A (zh) * | 2021-02-07 | 2021-07-02 | 杭州又拍云科技有限公司 | 一种基于ip协议可选字段的容器公网带宽限制方法 |
CN114900470A (zh) * | 2022-06-17 | 2022-08-12 | 中国联合网络通信集团有限公司 | 流量控制方法、装置、设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7782869B1 (en) * | 2007-11-29 | 2010-08-24 | Huawei Technologies Co., Ltd. | Network traffic control for virtual device interfaces |
CN102843296A (zh) * | 2012-08-28 | 2012-12-26 | 深圳市共进电子股份有限公司 | 一种局域网中指定终端加速的方法及路由器 |
CN103036701A (zh) * | 2012-04-01 | 2013-04-10 | 浙江宇视科技有限公司 | 一种跨网段的n+1备用方法及装置 |
CN104160381A (zh) * | 2012-03-08 | 2014-11-19 | 国际商业机器公司 | 多租户环境中租户特定数据集的管理 |
CN104270421A (zh) * | 2014-09-12 | 2015-01-07 | 北京理工大学 | 一种支持带宽保证的多租户云平台任务调度方法 |
CN104270464A (zh) * | 2014-10-22 | 2015-01-07 | 西安未来国际信息股份有限公司 | 一种云计算虚拟化网络架构及优化方法 |
CN104734989A (zh) * | 2013-12-23 | 2015-06-24 | 腾讯数码(天津)有限公司 | 基于令牌桶的数据传输流量调度方法及其系统 |
-
2016
- 2016-04-19 CN CN201610247105.6A patent/CN105915470B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7782869B1 (en) * | 2007-11-29 | 2010-08-24 | Huawei Technologies Co., Ltd. | Network traffic control for virtual device interfaces |
CN104160381A (zh) * | 2012-03-08 | 2014-11-19 | 国际商业机器公司 | 多租户环境中租户特定数据集的管理 |
CN103036701A (zh) * | 2012-04-01 | 2013-04-10 | 浙江宇视科技有限公司 | 一种跨网段的n+1备用方法及装置 |
CN102843296A (zh) * | 2012-08-28 | 2012-12-26 | 深圳市共进电子股份有限公司 | 一种局域网中指定终端加速的方法及路由器 |
CN104734989A (zh) * | 2013-12-23 | 2015-06-24 | 腾讯数码(天津)有限公司 | 基于令牌桶的数据传输流量调度方法及其系统 |
CN104270421A (zh) * | 2014-09-12 | 2015-01-07 | 北京理工大学 | 一种支持带宽保证的多租户云平台任务调度方法 |
CN104270464A (zh) * | 2014-10-22 | 2015-01-07 | 西安未来国际信息股份有限公司 | 一种云计算虚拟化网络架构及优化方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107800645A (zh) * | 2016-09-06 | 2018-03-13 | 北京京东尚科信息技术有限公司 | 云主机数据发送、接收、传输方法和装置 |
CN108471383A (zh) * | 2018-02-08 | 2018-08-31 | 华为技术有限公司 | 报文转发方法、装置和系统 |
CN109039807A (zh) * | 2018-07-13 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种基于Open Stack的网络系统负载均衡检测方法 |
CN108810191A (zh) * | 2018-07-18 | 2018-11-13 | 郑州云海信息技术有限公司 | 基于OpenStack的浮动IP检测方法及系统 |
CN109639488A (zh) * | 2018-12-18 | 2019-04-16 | 无锡华云数据技术服务有限公司 | 一种多外网分流加速方法及系统 |
CN110149282A (zh) * | 2019-01-30 | 2019-08-20 | 华为技术有限公司 | 流量调度方法和装置 |
CN111970149A (zh) * | 2020-08-17 | 2020-11-20 | 浪潮云信息技术股份公司 | 一种基于硬件防火墙qos的共享带宽实现方法 |
CN111970149B (zh) * | 2020-08-17 | 2023-05-30 | 浪潮云信息技术股份公司 | 一种基于硬件防火墙qos的共享带宽实现方法 |
CN112087534A (zh) * | 2020-09-12 | 2020-12-15 | 洪世协 | 一种简便可溯源无线路由器实现方法 |
CN112866019A (zh) * | 2021-01-11 | 2021-05-28 | 科大讯飞股份有限公司 | 弹性ip地址的带宽限速方法、相关设备及可读存储介质 |
CN113067719A (zh) * | 2021-02-07 | 2021-07-02 | 杭州又拍云科技有限公司 | 一种基于ip协议可选字段的容器公网带宽限制方法 |
CN113067719B (zh) * | 2021-02-07 | 2021-12-07 | 杭州又拍云科技有限公司 | 一种基于ip协议可选字段的容器公网带宽限制方法 |
CN114900470A (zh) * | 2022-06-17 | 2022-08-12 | 中国联合网络通信集团有限公司 | 流量控制方法、装置、设备及存储介质 |
CN114900470B (zh) * | 2022-06-17 | 2023-10-31 | 中国联合网络通信集团有限公司 | 流量控制方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105915470B (zh) | 2019-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105915470A (zh) | 一种基于Linux流量控制的弹性带宽配置方法 | |
CN102334112B (zh) | 用于虚拟机网络的方法和系统 | |
DE112014000415B4 (de) | Quantisierte Überlastbenachrichtigung in einem virtuellen Netzwerksystem | |
US9917729B2 (en) | Methods, systems, and computer readable media for multi-layer orchestration in software defined networks (SDNs) | |
CN104796469B (zh) | 云计算平台的配置方法及装置 | |
US9294351B2 (en) | Dynamic policy based interface configuration for virtualized environments | |
US20180351791A1 (en) | Network policy analysis for networks | |
CN108475206A (zh) | 在网络功能虚拟化架构中实现精细的粒度服务链 | |
CN102255903B (zh) | 一种云计算虚拟网络与物理网络隔离安全方法 | |
WO2017080391A1 (zh) | 一种网络服务部署方法和装置 | |
CN104734931A (zh) | 一种虚拟网络功能间链路建立方法及装置 | |
US10686669B2 (en) | Collecting network models and node information from a network | |
EP3028528A1 (en) | System and method for mobile network function virtualization | |
CN109462534A (zh) | 区域互联控制器、区域互联控制方法以及计算机存储介质 | |
CN107003860B (zh) | 一种软件定义网络控制器及其创建方法 | |
CN103369027A (zh) | 混合云环境中的位置感知虚拟服务配备 | |
CN109194502A (zh) | 多租户容器云计算系统的管理方法 | |
WO2017185303A1 (zh) | 一种nfv mano策略描述符的管理方法及装置 | |
CN103595772A (zh) | 一种基于虚拟路由器的云数据中心网络部署方案 | |
DE112013000395T5 (de) | Richtliniendurchsetzung in Rechenumgebung | |
US11799972B2 (en) | Session management in a forwarding plane | |
Sood | Software defined network—Architectures | |
CN108989071A (zh) | 虚拟服务提供方法、网关设备及存储介质 | |
Olimjonovich | Software Defined Networking: Management of network resources and data flow | |
Kanada et al. | Network-resource isolation for virtualization nodes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 214000, Huayun data building, 6 B District, science and technology software park, Binhu West Road, Binhu District, Wuxi, Jiangsu Patentee after: Huayun data holding group Co., Ltd Address before: 214000, Huayun data building, 6 B District, science and technology software park, Binhu West Road, Binhu District, Wuxi, Jiangsu Patentee before: WUXI CHINAC DATA TECHNICAL SERVICE Co.,Ltd. |