OSPF、语音和关键流量的 QoS

网络工程 思科 转变 cisco催化剂 服务质量
2021-07-16 09:40:38

我计划在下面实施 QoS 策略。

  • 目标是保证 VOICE 和 CRITICAL 流量的带宽。
  • 它应该是语音和视频的 1/3,关键业务流量的 1/3,其余所有流量的 1/3。
  • 如果其中一类不使用保留带宽,其他类可以使用它。
  • 我想确保 OSPF 运行良好,即使在链接拥塞以避免拍打等情况下也是如此。

计划是:

  • 父政策塑造为 20Mbps
  • 将 QoS 应用于 1/3 语音/视频、1/3 业务关键和 1/3 所有其余部分的子策略

问题:

  • 我在某处读到路由协议流量会自动进入 LLQ,这是真的吗?如果不是,我如何确保由软件本身发起的出站方向的 OSPF 流量被优先考虑,即使链路过载也能传输?
  • 我的政策中的方法是否适合做我上面描述的事情?还是我里面有什么错误?

对提示、技巧、评论、提示开放


设置

  • OSPF 正在应用策略的两条链路上运行
  • 流量已经被硬/软电话标记为语音和视频
  • 应实施 QoS 的平台是运行在 VSS 中的 Cisco 4500X

设置

计划配置

class-map match-any CM_QOS_VOICE-VIDEO-TRAFFIC description Matching voice, voice signalling, video and app-sharing traffic match dscp ef match dscp cs3 match dscp af41 match dscp af21 ! class-map match-any CM_QOS_CRITICAL-TRAFFIC description Matching critical traffic: Routing Protocol, Business critical, etc. match access-group name ACL_BUSINESS-CRITICAL-TRAFFIC match access-group name ACL_ROUTING-PROTOCOL-TRAFFIC ! Necessary or automatically put to LLQ? ! policy-map PM_QOS_SHAPING-20M class class-default shape average 20000000 service-policy PM_QOS_WAN-EDGE ! policy-map PM_QOS_WAN-EDGE class CM_QOS_VOICE-VIDEO-TRAFFIC priority percent 33 class CM_QOS_CRITICAL-TRAFFIC bandwidth percent 33 class class-default fair-queue random-detect ! interface te1/1/1 service-policy output PM_QOS_SHAPING-20M ! interface te2/1/1 service-policy output PM_QOS_SHAPING-20M !

2个回答

QoS 是一个值得一书的话题。但这里有一些快速的答案:

我在某处读到路由协议流量会自动进入 LLQ,这是真的吗?

不对

如果不是,我如何确保由软件本身发起的出站方向的 OSPF 流量被优先考虑并在链路过载时被传输?

将 OSPF(和所有管理流量)放在一个单独的队列中,并为其分配一些带宽 (10%)

我的政策中的方法是否适合做我上面描述的事情?还是我里面有什么错误?

您的语音流量不应该被塑造。将其放入整形器之前的优先级队列中。

Cisco 文档中有许多 QoS 示例,用于满足您这样的相对常见的要求。

除了 Ron Trunk 解释的内容之外,您还有一些问题。

如果您想将 QoS 基于 1 Gbps 链路上的 20 Mbps,则必须bandwidth在接口上设置该语句,否则 QoS 假定它正在使用接口的全部 1 Gbps 带宽。由于 VoIP 和视频等小型实时数据包的开销,您可能希望将其设置为 20 Mbps 的较小百分比。这需要一些实验才能正确,但您可以从 97% 开始,然后根据需要进行调整。那会让你得到类似的东西:

interface te1/1/1
 bandwidth 19400
!
interface te2/1/1
 bandwidth 19400
!

您还需要设置一些 ACL 和入口策略,以对从接入接口进入交换机的流量进行正确分类和标记,以便您可以正确处理从上行接口出站的流量。这确实是一个不同而复杂的问题,所以我不会在这里处理。

通常,您希望将大部分流量设置为默认 ( BE),然后您希望为获得特殊处理的流量设置一些类。与标记和处理高优先级流量(如 VoIP)一样重要,您需要对低优先级流量(如服务器备份)进行分类和处理,这些流量可能会长时间占用大量带宽。

您可以设置类似以下典型类集的内容:

class-map match-any EGRESS-VOICE
  description VoIP traffic
  match ip dscp cs4 cs5 ef
!
class-map match-any EGRESS-VIDEO
  description Video traffic
  match ip dscp af41 af42 af43
!
class-map match-any EGRESS-CONTROL
  description Control traffic for VoIP, Video, Routing, etc.
  match ip dscp cs3 af31 af32 af33 cs6 cs7
!
class-map match-any EGRESS-BUSINESS
  description Business traffic that requires special treatment
  match ip dscp cs2 af21 af22 af23
!
class-map match-any EGRESS-BULK
 description Bulk traffic like backups, etc.
 match ip dscp cs1 af11 af12 af13
!

然后,为上行链路接口创建策略。下面是一个典型的良好启动策略,然后您需要观察生产流量并调整带宽百分比以满足您的需要。您可以使用 NetFlow 之类的工具来收集统计信息。

policy-map EGRESS-UPLINK
 description QoS for 20 Mbps uplinks
 class EGRESS-VOICE
  priority
  police cir percent 23
 class EGRESS-VIDEO
  bandwidth remaining percent 30
  police cir percent 23
 class EGRESS-CONTROL
  bandwidth remaining percent 10
 class EGRESS-BUSINESS
  bandwidth remaining percent 20
 class EGRESS-BULK
  bandwidth remaining percent 5
  dbl
 class class-default
  bandwidth remaining percent 34
  dbl
!

并且,您将策略应用于上行链路接口:

interface te1/1/1
 bandwidth 19400
 service-policy output EGRESS-UPLINK
!
interface te2/1/1
 bandwidth 19400
 service-policy output EGRESS-UPLINK
!

除了访问接口的入口 QoS 之外,您没有问到的另一件事是为访问接口设置出口 QoS,这可能类似于上行链路接口,只是您可能不想bandwidth在访问接口(简单地让 QoS 使用接口的实际带宽)。


编辑:

如果要整形,可以添加如下内容(基于 20 Mbps 带宽的 97%):

policy-map EGRESS-20M
  class class-default
    shape average 19400000 77600
    service-policy EGRESS-UPLINK
!

然后,使用整形策略(用于排队策略):

interface te1/1/1
 bandwidth 19400
 service-policy output EGRESS-20M
!
interface te2/1/1
 bandwidth 19400
 service-policy output EGRESS-20M
!