ASA防火墙上实现QoS

1、 实现要求:将总部与分公司的Site-to-Site ×××放入优先级队列,使×××的流量能够得以优先转发;将本人用的计算机放入优先级队列,让自己上网更快一些(一点私心,呵呵)。
2、 实现方案:×××的流量放入优先级队列比较好实现,对流量进行分类,直接匹配×××的流量,然后放入到优先级队列中,应用到外部接口。
而对于将指定的地址放入到优先级队列,就不能采用和×××一样的方式了。首先要建立一条访问列表,分类时匹配这条访问列表。这种情况下就不能应用到外部接口,原因为在防火墙上做了PAT转换,内部的地址到达外部接口时,IP地址已经进行了转换,转换为外部接口的公网地址,用于分类的访问列表就永远匹配不了了,指定计算机的IP地址也就永远无法放入优先级的队列了,那么就只有将策略应用到内部接口,在写访问列表时一定要注意方向,否则也不会产生效果。
3、 具体配置:
设置×××的qos
ASA# config t
ASA(config)# class-map ***-qos                                      //建立名为***-qos的分类
ASA(config-cmap)# match tunnel-group togg***                      //匹配名字为togg***的***隧道
ASA(config-cmap)# match flow ip destination-address               //匹配基于流的策略,将***的流量看做为流
ASA(config-cmap)# exit
ASA(config)# policy-map ***-qos                                           //建立名为***-qos的策略
ASA(config-pmap)# class ***-qos                                           //应用前面定义的***-qos分类
ASA(config-pmap-c)# priority                                         //将这个类设定为高优先级
ASA(config-pmap-c)# exit
ASA(config-pmap)# exit
ASA(config)# priority-queue outside                                 //在外部接口启用优先级队列
ASA(config-priority-queue)# queue-limit 2048                  //设定优先级队列的大小
ASA(config-priority-queue)# tx-ring-limit 256                  //设定在给定时间内允许等待的最大的包的数量
ASA(config-priority-queue)# exit
ASA(config)# service-policy ***-qos interface outside               //将策略应用到外部接口
 
设置指定IP地址的qos
ASA(config)# access-list aclqos permit ip any host 192.168.16.148    //建立访问列表,注意方向性
ASA(config)# class-map aclqos                                                      //建立名为aclqos的分类
ASA(config-cmap)# match access-list aclqos                                    //匹配前面建立的访问列表
ASA(config-cmap)# exit
ASA(config)# policy-map aclqos
ASA(config-pmap)# class aclqos
ASA(config-pmap-c)# priority                                                       //将前面建立的基于访问列表的分类设定为高优先级
ASA(config-pmap-c)# exit
ASA(config-pmap)# exit
ASA(config)# priority-queue inside                                                //在内部接口启用优先级队列
ASA(config-priority-queue)# queue-limit 2048
ASA(config-priority-queue)# tx-ring-limit 256
ASA(config-priority-queue)# exit
ASA(config)# service-policy aclqos interface inside                       //将策略应用到内部接口
 
验证配置:
ASA# sh priority-queue config                    //显示接口的优先级队列的设置
 
Priority-Queue Config interface inside          //内部接口的设置
                current         default         range
queue-limit      2048            2048            0 - 2048
tx-ring-limit    256             80              3 - 256
 
Priority-Queue Config interface outside               //外部接口的设置
                current         default         range
queue-limit      2048            2048            0 - 2048
tx-ring-limit    256             80              3 - 256
 
ASA # sh priority-queue statistics                      //显示接口上优先级队列的统计信息
 
Priority-Queue Statistics interface inside       //内部接口的
 
Queue Type          = BE                       //尽力转发队列
Tail Drops          = 0
Reset Drops         = 0
Packets Transmit    = 10380155
Packets Enqueued    = 0
Current Q Length    = 0
Max Q Length        = 0
 
Queue Type          = LLQ                     //低延迟队列即高优先级
Tail Drops          = 0
Reset Drops         = 0
Packets Transmit    = 118366                     //传输的包的数量,也就是从内部接口转发给我的计算机的数据包
Packets Enqueued    = 0
Current Q Length    = 0
Max Q Length        = 0
 
Priority-Queue Statistics interface outside            //外部接口
 
Queue Type          = BE
Tail Drops          = 0
Reset Drops         = 0
Packets Transmit    = 52366206
Packets Enqueued    = 0
Current Q Length    = 0
Max Q Length        = 0
 
Queue Type          = LLQ
Tail Drops          = 0
Reset Drops         = 0
Packets Transmit    = 30711               //从外部接口通过×××转发到分公司的包的数量
Packets Enqueued    = 0
Current Q Length    = 0
Max Q Length        = 0
 
ASA # sh service-policy priority         //显示策略中具有优先级分类的统计信息
 
Interface inside:                                  //内部接口的
 Service-policy: aclqos
    Class-map: aclqos
      Priority:
        Interface inside: aggregate drop 0, aggregate transmit 118738
 
Interface outside:                                 //外部接口的
 Service-policy: ***-qos
    Class-map: ***-qos
      Priority:
        Interface outside: aggregate drop 0, aggregate transmit 30711