当今网络应用越来越丰富,业务种类越来越多,特别是智能终端普及后,移动数据业务流量急速增长。通过部署流量分析和控制设备,可以有效了解各种应用的数据模型。通过对数据模型的分析,设计适当的控制策略加以实施,可以有效提升链路带宽能效。如何让流量进入控制设备,则涉及到引流方式问题。本文以某实际项目为原型,介绍在QinQ环境下,通过MQC方式实现引流。
组网拓扑和需求概述
如上图所示,在本组网中,通过监测系统(比如网管系统)将用户的流量别分为两类:正常流量和异常流量。正常流量不需要进行分析控制,交换机对此部分流量进行透传处理;异常流量则需要进行分析控制,需引流至控制设备。本组网采用分析控制设备为H3C的ACG产品,以插卡形式插在核心交换机S12508上,两台S12508通过IRF2技术虚拟成一台交换机。策略控制中心制定控制策略,下发到ACG设备执行,实现基于应用业务的上网行为控制。
BAS作为无线用户网关,与虚拟交换机之间启用QinQ。
流量分析和设计思路
通过对需求分析,明确对正常流量和异常流量实施不同的控制策略:
正常流量:在交换机下行口(连接AC)做QinQ,直接透传至BAS。如下图所示,在上行方向,AC上送S12508的数据报文带1层TAG 2901(即内层标签),在S12508配置QinQ,为报文打上外层标签2000,再以双TAG方式上送至BAS。在下行方向,BAS将双TAG报文转发至S125,S125在下行口剥离外层标签2000,以单TAG方式将报文转发至AC。这样就实现了正常流量的转发。
异常流量:在交换机下行口入方向做QinQ,并重定向至ACG板卡处理,同样在上行口(连接BAS)。如图所示,在上行方向,AC将单TAG 2901报文送至S12508,S12508打上外层TAG 2000后将报文重定向至ACG板卡,ACG板卡处理后再送回S12508,S12508再转发给BAS。下行方向,BAS将双TAG报文转发给S12508,S12508将报文重定向至ACG,ACG处理完毕后送回S12508,S12508剥离外层TAG 2000后,将单TAG报文转发给AC。
至此,方案设计基本已经完成了。但是对于ACG而言,为了实现对上行流量和下行流量不同的控制策略,需要对上下行流量进行区分。在此,通过设计进入ACG的报文外层TAG的不同来实现这一目的。如下图所示,上行方向,AC上送单TAG 2901的数据报文至S12508,S12508通过QinQ打上外层TAG 2000并引流至ACG,ACG处理完毕后转发至BAS。下行方向,BAS转发双TAG报文给S12508,报文的外层TAG为2000,S12508将报文外层TAG修改为2100,再重定向至ACG,ACG处理完毕送回S12508,S12508再次将2100修改回2000,并剥离外层TAG后以单TAG方式转发给AC。通过对下行流量外层TAG的变换,实现了ACG区分上下行流量的目的。
其他关键设计
通过对流量的分析和设计,我们已经完成了需求的基本实现。但为使系统能够正常运转,还需解决几个关键问题。
1、BAS的MAC学习问题
在本组网中,AC和BAS之间为二层互联,因此数据转发需依据MAC进行,BAS作为用户的网关,其MAC学习尤为重要。根据MAC学习原理,交换机通过记录报文的源MAC和入端口的对应关系完成MAC学习。
在S12508上对异常流量进行了重定向,由于重定向指定了报文的出接口,因此设备不会再学习报文的源MAC。此时无法通过异常流量来完成对BAS MAC的学习。不过对于正常流量的数据报文,不需要进行重定向处理,此时交换机可以通过这部分报文来完成BAS MAC的动态学习。为防止MAC老化,可以设置MAC老化时间为1小时。
2、ACG引入环路问题
ACG作为分析控制设备,不会对报文进行任何修改。通过对拓扑进行分析,可以发现ACG引入了物理环路。为了解决这个问题,需要在S12508上做如下策略:
关闭与ACG的互联接口MAC学习功能,防止MAC学习错误;
在互联接口上关闭STP功能,防止STP阻塞端口,导致流量重定向失败;
3、MAC老化问题
BAS和终端的MAC都是通过动态学习而来,MAC表项可能会老化,若S12508上没有对应的MAC表项,则将对数据包进行广播处理,报文极有可能“原路返回”,即BAS发的下行报文从上行口发回至BAS,AC发的上行报文从下行口发回至AC。为避免这一情况出现,需做如下配置:
在S12508上静态配置BAS的MAC,防止上行报文返回AC;
在上行口配置策略,过滤源MAC为BAS的数据包,防止下行报文返回BAS。