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