Red Flag Asianux Server 3系统中有一个成熟的带宽供给系统,称为 Traffic Control(流量控制),简称为 TC。流量控制支持以多种方式分类、排序、共享和限制出入流量。
7.5.1简介
在 Linux操作系统中,流量控制器( TC)主要是在输出端口处建立一个队列进行流量控制,控制的方式是基于路由,亦即基于目的 IP地址或目的子网的网络号的流量控制。 TC的基本功能模块为队列、类和过滤器。Linux内核中支持的队列有:Class Based Queue,Token Bucket Flow,CSZ,First In First Out,Priority,TEQL,SFQ,ATM,RED。这里我们讨论的队列与类都是基于 CBQ(Class Based Queue)的,而过滤器是基于路由( Route)的。为了更好的使用 TC,下面说明 TC中常用单位的规定。
带宽或者流速单位:
kbps:千字节/秒
mbps:兆字节/秒
kbit:kbits/秒
mbit:mbits/秒
bps 或一个无单位数字:字节/秒
数据的数量单位:
kb 或k:千字节
mb 或m:兆字节
mbit:兆bit
kbit:千bit
b 或一个无单位数字:字节
时间的计量单位:
s、sec 或secs:秒
ms、msec 或msecs:分钟
us、usec、usecs 或一个无单位数字:微秒
7.5.2配置
配置和使用流量控制器 TC,主要分为以下几个方面:建立队列、建立类、建立过滤器和建立路由,另外还需要对现有的队列、类、过滤器和路由进行监视。
其基本使用步骤为:
1、 针对网络物理设备(如以太网卡 eth0)绑定一个 CBQ队列; 2、 在该队列上建立类; 3、 为每一个类建立一个基于路由的过滤器; 4、 最后与过滤器相配合,建立特定的路由表。
下面以一个简单的环境为例进行说明,参见下图:
图1-1流量控制示意图
流量控制器上的以太网卡( eth0)的 IP地址为 192.9.200.66,在其上建立一个 CBQ队列。假设包的平均大小为 1000字节,包间隔发送单元的大小为 8字节,可接收冲突的发送最长包数目为 20字节。假如有三种类型的流量需要控制:
发往主机 1的,其 IP地址为 192.9.200.11。其流量带宽控制在 8Mbit,优先级为 2;
发往主机 2的,其 IP地址为 192.9.200.21。其流量带宽控制在 1Mbit,优先级为 1;
发往子网 1的,其子网号为 192.9.200.0/24,子网掩码为 255.255.255.0。流量带宽控制在 1Mbit,优先级为 6。