我的 ASA 5505 有三个 VLAN。一个连接到互联网,称为outside
,一个用于我们的办公室office
(连接到公司 VPN),一个用于可公开访问resource-centre
。每个 VLAN 位于单独的子网上。
我想确保来自office
vpn 或互联网的流量优先于来自 的流量resource-centre
。换句话说,我不希望resource-centre
流量压倒office
流量。
我可以为我的两个里面VLAN:
access-list resource-centre-traffic extended permit ip 192.168.0.0 255.255.255.0 any
access-list resource-centre-traffic extended permit ip any 192.168.0.0 255.255.255.0
access-list office-traffic extended permit ip 172.16.0.0 255.255.255.0 any
access-list office-traffic extended permit ip any 172.16.0.0 255.255.255.0
我认为我需要做的是设置与办公室流量相匹配的流量优先级 - 这意味着往返于办公室的流量永远不会受到往返于资源中心的流量的干扰,对吗?
我很困惑,因为我也可以对资源中心流量设置流量监管,但我不认为这是我想要做的,因为我实际上并不关心资源中心使用了多少带宽,只要它不扰乱办公室流量即可。
答案1
虽然我是 ASA 平台的忠实粉丝,但我首先承认 ASA 的 QoS 范例和功能相当有限。标准 IOS ISR 的运行方式与 ASA 的 QoS 功能完全不同。
如果你还没有读过ASA QoS 配置指南和IOS QoS解决方案指南请阅读它们。它们是理解思科(和许多其他供应商)真正含义丰富的术语“服务质量”的必读内容。请注意,IOS 指南包含许多 ASA 不支持的功能 - 并给出了在 ASA 上不起作用的示例。但是,两者都包含大量有用的概念、术语和有关各种 QoS 范例和概念的详细信息。
使用 IOS,您的情况会非常简单——在接口bandwidth
上进行适当的配置outside
,使用模块化 QoS CLI 创建与ACLshape
匹配的类和流量resource-centre-traffic
,fair-queue
其余的。
然而,这是不可能的,因为流量整形是在所有流量在 ASA 的接口上。无法在 ASA 平台上针对特定类别调整流量。
由于在您的情况下整形并不是很有用,因此您只需要进行监管和优先级排队,有时也称为低延迟排队 (LLQ)。
您有以下选择
resource-centre-traffic
监管符合ACL 的流量office-traffic
与ACL匹配的优先级队列流量- 同时执行这两项操作,即对与相应 ACL 匹配的流量进行监管并优先排队。
对于 QoS,KISS 原则仍然适用。越简单越好。因此,我建议从最低限度开始,然后进行微调。首先从监管开始。
治安
以下监管示例将对符合资源中心流量 ACL 的流量进行速率限制(监管),限制为 1 Mb/s。请注意,监管将丢弃超出限制的数据包,最终导致主机网络堆栈重新传输并退避到监管速率附近。整形通过引入延迟和不丢弃来避免这种情况,但 ASA 的整形器无法根据类别进行整形。
! create class-map
class-map resource-centre-traffic-class
match access-list resource-centre-traffic
! create policy-map, advise not using a global policy
policy-map outside-policy
class resource-centre-traffic-class
police input 1000000 ! rate in bits per second, 1 Mb/s listed
police output 1000000 ! rate in bits per second, 1 Mb/s listed
! assign policy to interface, in this case outside
service-policy outside-policy interface outside
优先级排队/LLQ
优先级队列仅适用于接口的传输/输出方向。在优先级队列中的流量将流出的接口上配置队列限制和 TX 环限制非常重要。我将假设传输速度为 3 Mb/s,并根据 256 字节数据包大小创建大约 2 Mb/s 的优先级队列。当涉及到 LLQ 时,优先级队列的大小具有很大的魔力。请注意,任何无法放入优先级队列的指定流量都会被丢弃——也就是说,它会被丢弃——这可能不是您想要的办公室流量。
在这方面,优先级排队/LLQ 通常不用于高吞吐量流量类别,而是用于低延迟。 不过,我在这里加入了优先级排队示例,以便介绍 ASA 的功能——我不建议对任何高吞吐量流/流量类别使用优先级排队。
- 通常建议将 LLQ 保持在尽可能小的范围内-- 无需丢弃尾部,因为如果 LLQ 太大,则会导致正常接口队列饥饿。
- 数据包资格LLQ 中已满但放不下的数据包(如果已满)将从 LLQ 尾部丢弃。这与监管相同 - 但是使用 LLQ 时,流量总是“切到队列的最前面”,因为 LLQ(与普通接口队列一样的软件队列)总是由驱动程序提供服务,并首先放置在物理接口的硬件队列(硬件环形缓冲区)中。
使用配置指南中的工作表来确定所使用的数字,然后进行queue-limit
修改。tx-ring-limit
priority-queue outside
queue-limit 500 ! based on factors listed earlier, very important number
tx-ring-limit 20 ! based on factors listed earlier
! create class-map
class-map office-traffic-class
match access-list office-traffic
! create policy-map, advise not using a global policy
policy-map outside-policy
class office-traffic-class
priority
! assign policy to interface, in this case outside
service-policy outside-policy interface outside
- 两个类映射均可列在外部策略中,以同时用于监管和优先级排队。
- 您仍然可以实施全局策略并将其设置为全局 - 只要全局策略中列出的任何类上都没有 QoS 操作 - 那么当外部策略(仅包含 QoS 操作)放置在外部接口上时,全局策略的其他操作(检查等)将在外部接口上保持有效。
总结
ASA 在 QoS 方面确实很有限。尝试策略。如果不起作用,请添加或非常小心地尝试 LLQ。如果不起作用,请寻找具有整形、CBWFQ 等功能的 IOS ISR[G2]。