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
https://blog.51cto.com/mastzhang/648598