利用QOS
解决网络拥塞
前几天有同学向我诉苦,他们公司的网络时快时慢,问我有没有什么好的解决方案;之后了解了一下他们公司的网络情况,拉的是
10M
的
DDN
专线,大多数情况下带宽还是够用的,但有时侯一到关键时刻,就显得特别的拥塞。原因是有些部门某些时候较大的突发流量,导致网络的速度整体变慢。普通员工倒也不怎么抱怨,公司领导一发不出去邮件,就不高兴了,可苦了我这位同学。最后我建议他使用
QOS
技术,通过限速或其他形式对这些部门的带宽进行限制。
QOS
(服务质量)是一种网络拥塞的解决方法,其基本思想是把数据进行分类,放到不同队列中,然后根据数据的类型决定传输的先后或保证一定的带宽。也就是说在不增加带宽的情况下,使数据流均匀的传输,以此避免拥塞的产生。
下面我们模拟一个
QOS
应用的案例,通过两种技术:
CAR
(承诺访问速率)和
GTS
(流量整形配置)来解决上述问题。拓扑图如下:
从拓扑上我们可以看到:
l
网关路由器
R1
外网口
E0/0
的
IP
是:
200.200.200.1/24
,内网口
E0/1
的
IP
是:
192.168.1.1/24.
l
PC1
在这里表示将要被我们限速的
PC
,它的
IP
是:
192.168.1.2/24
,网关是路由器接口
E0/1
的地址:
192.168.1.1.
l
PC2
在这里表示网管工作站,
IP
是
192.168.1.254/24
,网关:
192.168.1.1
l
位于
Internet
上的
FTP
服务器的
IP
是:
200.200.200.2/24
我们假设
PC1
的正常流量为:
80Kb/S
,突发量为:
200Kb/S
,所以将
PC1
的流量限制在
100Kb/S
既能满足
PC1
主机的正常需求,又能避免突发流量对网络造成拥塞。下面通过
QOS
的两种技术来实现这个需求。
对策一:使用CAR
(承诺访问速率)技术
1.
配置
ACL
,定义需要整形的流量。
说明:此处设置为到
PC1
的流量将会被整形
2.
进入接口模式,配置进行流量整形的参数
完整的命令如下图:
说明:上述命令表示匹配访问控制列表
100
的流量,被限速为
100KB/s,
最大突发量为
8000byte,
符合的流量被转发,超出的流量被丢弃;另外,配置
CAR
在
E0/0
或
E0/1
接口上都可以,关键注意配置时用的参数是
input
还是
output.
注意这里的单位很容易搞错,第一个参数
800000
表示
CIR
(承诺访问速率)它的范围是:
8000
―
2000 000 000
,单位为
Bits per second,
第二个参数
40000
表示
BC
(突发量)它的范围是:
1000
―
512 000 000
,单位为
byte,
第三个参数
80000
表示
BE
(过量突发量或最大突发量)它的范围是:
2000
―
1024 000 000
,单位为
byte.
通过上面的配置现在我们来查看配置信息
,
使用
show interface e0/0 rate-limit
可以查端口限速信息。
说明:方框中第一行显示的是匹配的
ACL
,此处是
100
,对应的也就是
PC1
,第二行显示的是配置的速率限制,可以看到
PC1
的流量被限制在
100Kb/s,
突发量是
40000,
最大突发量是
80000.
第三行显示的是符合的流量统计,动作是继续转发。第四行显示的是违规的流量统计,动作为丢弃。第五行显示的是当前流量中突发量的信息,最后一行是交换机的速率信息。
对策二:使用GTS
(流量整形配置)技术
1.
配置
ACL
,定义需要整形的流量。
说明:此处设置为到
PC1
的流量将会被整形
2.
定义
chass-map
来匹配一种流量或协议
说明:其中
zpp
为创建的
class map
的名称,
match-all
表示匹配
class-map
定义的所有条件,是默认配置。
3
.进入
class map
模式,配置匹配的条件。
说明:此处定义的是匹配配置的访问控制列表
100
;也可以用命令
match protocol protocol
匹配配置的协议。除此之外还可以匹配端口、
VLAN
等信息。例如使用命令
match input-interface interface-type interface-number
可以匹配端口进入的流量,使用命令
match any
匹配任意数据包,使用命令
match source-address | destination-address mac mac-address
匹配源或目的的
MAC
地址。
4.
定义流量控制策略
说明:定义名子叫
zpp
的
policy map,
并调用
class map zpp,
此处
policy map
的名子和
class map
名子可以不同,为了方便记忆可以配置成相同的。配置了
policy map
并调用了
class map
后就可以根据实际情况配置标记流量,流量整形,
CAR
等信息。
5.
配置
GTS
(流量整形配置)
说明:
shape average 800000,
表示限速为
100kB/s,average
表示平均值。
shape max-buffers 100
定义缓冲区上线为
100
(默认为
1000
),缓冲区的作用是用来缓存
GTS
队列信息。
6.
在接口上应用策略
说明:接口
e0/1
上应用
GTS
,命令
service-policy output zpp
表示在
e0/1
接口的
output
方向上应用策略
zpp
。需要注意的是,
GTS
只能应用在
output
方向,即
e0/1
接口上。而
CAR
可以应用在两个方向上。
现在来验证一下我们的配置
说明:通过命令
show policy-map
可以查看到策略的名称是
zpp
(第一行);调用的
class map
的名子也叫
zpp
(第二行),再次强调两个名子可以不同;第三行以后显示的是流量整形的配置如:限制的速率为
100kB/s
,缓冲区上线为
100
(报文数)
说明:通过
show policy-map interface
命令我们可以得出以下结论:
方框
1
:定义的策略运用在了
E0/1
接口上
方框
2
:应用的策略名
zpp,
以及应用的方向
output
方框
3
:调用的
class map
名子叫
zpp,
转发和丢弃的流量,以及匹配的访问控制列表等信息
方框
4
:显示的是流量整形配置参数,前面已经逐个解释,此处不在聱述。
方框
5
:是默认的信息,可以不考虑
现在我们就实现了上述的要求,
PC1
的突发流量被限制了,网络的整体性能得到了改良。相信大家应该对
QOS
也有了一定的认识了。通过这个案例,我们可以看到:在企业无法提高网络带宽的情况下,解决网络拥塞更有效的方法是合理利用网络带宽。在网络发生拥塞时,根据业务的性质和需要使用
QOS
技术合理分配现有带宽,降低网络拥塞的影响。