Cisco ASA 5505 上的 QoS 按 VLAN/子网

dun*_*nxd 3 networking qos cisco-asa

我的 ASA 5505 有三个 VLAN。一种连接到 Internet 的称为outside,一种用于我们办公室的称为office(连接到公司 VPN),另一种用于可公开访问的resource-centre. 每个 VLAN 位于单独的子网上。

我想确保来自officeVPN 或 Internet 的流量优先于来自resource-centre. 换句话说,我不希望resource-centre交通压倒office交通。

我可以为我的两个内部vlan创建 ACL :

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 
Run Code Online (Sandbox Code Playgroud)

我认为我需要做的是为与办公室流量匹配的流量设置优先级 - 这意味着进/出办公室的流量永远不会被进/出资源中心的流量所中断,对吗?

我很困惑,因为我也可以对资源中心的流量设置流量监管,但我认为这不是我想要做的,因为我实际上并不关心资源中心使用了多少带宽作为只要不影响办公室交通。

Wea*_*ver 6

虽然我是 ASA 平台的忠实粉丝,但我将首先承认 ASA 的 QoS 范例和功能相当有限。标准 IOS ISR 的运行围绕着 ASA 在 QoS 方面的能力。

如果您尚未阅读ASA QoS 配置指南IOS QoS 解决方案指南,请阅读它们。他们需要阅读以了解思科(和许多其他供应商)真正意义上的“服务质量”术语的含义。请注意,IOS 指南包含许多 ASA 不支持的功能——并提供了不适用于 ASA 的示例。但是,两者都包含有关各种 QoS 范例和概念的大量有用的概念、术语和详细信息。

使用 IOS,您的情况将非常简单——bandwidthoutside接口上配置适当的配置,使用模块化 QoS CLI 创建一个shaperesource-centre-trafficACL匹配的类和流量,fair-queue其余的。

但是,使用 ASA 是不可能的,因为流量整形是对 ASA 接口上的所有流量执行的。无法在 ASA 平台上的特定类上调整流量。

由于整形在您的情况下不是非常有用,您只剩下监管和优先级排队,有时称为低延迟排队 (LLQ)。

您有以下选择

  • 匹配resource-centre-trafficACL的警察流量
  • 匹配office-trafficACL的优先队列流量
  • 同时执行这两项操作,即匹配相应 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
Run Code Online (Sandbox Code Playgroud)

优先排队/LLQ

优先级排队仅适用于接口的发送/输出方向。在优先级队列中的流量将流出的接口上配置队列限制和 TX 环限制很重要。我将假设 3 Mb/s 传输并基于 256 字节数据包大小创建大约 2 Mb/s 优先级队列。当涉及到 LLQ 时,用于优先级队列的大小非常神奇。请注意,任何无法放入优先级队列的指定流量都被尾部丢弃——也就是说它被丢弃——可能不是您想要的办公室流量。

正是在这方面,优先级排队/LLQ 通常不用于高吞吐量流量类别,而是用于低延迟。 但是,我在此处包含优先排队示例是为了涵盖 ASA 的功能——我不建议对任何高吞吐量流/流量类别使用优先排队。

  • 通常建议保持 LLQ 尽可能小——没有尾部丢弃,因为如果太大,大的 LLQ 会使正常的接口队列饿死。
  • 符合LLQ 但不适合(如果已满)的数据包将从 LLQ 尾部丢弃。这与监管共享——但是,LLQ 流量总是“切到线路的前端”,因为 LLQ(就像普通接口队列一样的软件队列)总是由驱动程序提供服务并放置在物理接口的首先是硬件队列(硬件环形缓冲区)。

用于queue-limittx-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
Run Code Online (Sandbox Code Playgroud)
  • 两个类映射都可以同时列在外部策略中,用于监管和优先级排队。
  • 您仍然可以实现全局策略并将其设置为全局 - 只要全局策略中列出的任何类都没有 QoS 操作 - 然后全局策略其他操作(检查等)当外部策略(仅具有 QoS 操作)放置在外部接口上时,将在外部接口上保持有效。

TL; 博士

ASA 在 QoS 方面确实受到限制。尝试警务。如果这不起作用,请非常小心地添加或尝试 LLQ。如果这不起作用,请寻找具有整形、CBWFQ 等的 IOS ISR[G2]。