Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
本页内容
 

示例:配置和应用默认 DSCP 行为聚合分类器

Junos OS 分类器可识别和分离流量,并提供在后续服务等级 (CoS) 流程中确定流量优先级的方法。

行为聚合 (BA) 分类器通过将众所周知的 CoS 值与转发类和丢失优先级相关联来执行此功能。要启用默认分类器,只需将其应用到设备接口即可。如果未对接口应用默认分类器,则它不会生效。

Junos OS 提供了多种默认 BA 分类器类型,您可以根据需要将其与自定义 BA 分类器组合和补充,以实现您的整体流量分类目标。此示例说明如何应用默认 (BA) DiffServ 代码点 (DSCP) 分类器并验证其功能。

要求

为了验证此过程,此示例使用流量生成器。流量生成器可以是基于硬件的,也可以是基于服务器或主机上运行的软件。如果无法访问流量生成器,则可以使用扩展 ping 进行验证。这种方法也在展示中。

运行 Junos OS 的设备上广泛支持此过程中的功能。此处展示的示例已在运行 Junos OS 10.4 版的 MX 系列路由器上进行了测试和验证。

概述

Junos OS CoS 的基础是流量差异化。将流量分配给不同的服务等级提供了必要的差异化优势。从路由器的角度来看,分配给数据包的服务等级定义了路由器对数据包的行为。流量差异化的概念都存在于每个 CoS 工具中,因此在整个 CoS 设计中都存在服务等级。分类器有一个输入,即传入数据包,它有 N 个可能输出,其中 N 个是数据包可分类的可能服务等级的数量。

当进入设备的流量在数据包标头中已具有可信的 CoS 值时,使用 BA 分类。例如,默认的 DSCP BA 分类器指定将包含代码点 000000 的数据包分配给尽力转发类,并将丢失优先级设置为低。

默认情况下,将为每个已知的 DSCP 分配一个转发类和丢失优先级。要查看此视图,请运行 show class-of-service classifier 命令。

转发类确定输出队列。默认情况下,所有尽力而为的流量都使用队列 0。

要查看默认情况下与每个转发类关联的队列,请使用 show class-of-service forwarding-class 命令。(为清楚起见,部分输出被排除在外。)

丢失优先级由调度器与随机早期检测 (RED) 算法一起使用,以控制拥塞期间数据包丢弃。在考虑丢失优先级时,请记住,除非您配置它们,否则它们毫无意义。默认的丢弃行为是等待队列 100% 满员,然后开始不分青红皂白地丢弃数据包。当队列跌至 100% 满率以下时,数据包将停止丢弃。

默认丢弃行为显示在命令中 show class-of-service drop-profile

要为各种丢失优先级创建含义,必须配置自定义丢弃配置文件。例如,您可以将低丢失优先级定义为当队列为 75% 已满时为 10% 的丢弃概率,当队列填充级别为 95% 时,则为 40% 的丢弃概率。您可以将高损失优先级定义为当填充级别为 25% 时为 50% 的丢弃概率,当填充级别为 50% 时,则为 90% 的丢弃概率。此示例中不包含自定义丢弃配置文件,但在此处提及是为了澄清,因为分类器分配了丢失优先级。需要了解的是,在您创建丢弃配置文件之前,这些分配毫无意义。

默认分类器操作如图 1 所示。该图显示了进入接口并根据数据包标头中的 DSCP 代码点分类的两个 IPv4 数据包。

图 1:包含两个队列 Behavior Aggregate Classifier with Two Queues的行为聚合分类器

以下瞻博网络学习字节视频详细介绍了分类器。

拓扑

图 2 显示了示例网络。

图 2:行为聚合分类器场景 Behavior Aggregate Classifier Scenario

跨拓扑应用服务等级配置非常重要,而不是将其应用到单个设备。此外,即使分类对传入接口生效,也应该对所有面向核心和面向核心的接口应用 BA 分类器。这是因为单个接口可以是传入的,也可以是传出接口,具体取决于流量的方向。例如,当流量从主机 1 流向主机 2 时,设备 R2 上的传入接口为 ge-1/0/7,设备 R3 上的 ge-2/0/6。当流量从主机 2 流向另一个方向时,设备 R2 上的传入接口为 ge-1/0/3,设备 R1 上的 ge-1/0/7。

BA 分类器不应用于设备 R1 上的 ge-1/0/1 或设备 R3 上的 ge-2/0/5,因为这些接口不面向核心。一般来说,在面向边缘的接口上,将使用多域分类器,而不是 BA 分类器。

CLI 快速配置 显示了 图 2 中所有瞻博网络设备的配置。分 步过程 部分介绍了设备 R2 上的步骤。

配置

程序

CLI 快速配置

要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,然后将命令复制并粘贴到层级的 [edit] CLI 中。

设备 R1

设备 R2

设备 R3

逐步过程

以下示例要求您在配置层次结构中的各个级别上导航。有关如何操作的说明,请参阅 CLI 用户指南中的在配置模式下使用 CLI 编辑器。

要启用默认 DSCP 行为聚合分类器:

  1. 配置设备接口。

  2. 在接口上启用默认 DSCP 分类器。

结果

在配置模式下,输入和 show class-of-service 命令以确认show interfaces您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以更正配置。

完成设备配置后,请从配置模式进入 commit

验证

确认配置工作正常。

验证行为聚合分类器

目的

验证设备接口上是否启用了默认行为聚合分类器。请记住,尽管分类器对传入数据包进行操作,但您可以在传出接口上查看由此产生的队列分配。

行动

  1. 清除设备 R2 上的接口统计信息。

  2. 使用从设备 R1 或主机或服务器上运行的数据包生成器的扩展 ping,发送代码点设置为 001010 的数据包。

    这两种方法都在这里显示。使用的数据包生成器正在运行

    • 使用扩展 ping 设置 IPv4 数据包头中的 DSCP 代码点时,命令选项ping中需要服务类型 (ToS) 十进制值(本案例中tos为 40)。

    • 使用 hping 设置 IPv4 数据包标头中的 DSCP 代码点时,命令选项hping中需要 ToS 十六脚值(本案例中--tos为 28)。

    如果您的二进制到十六进制或二进制到十进制转换技能生锈,您可以使用在线计算器,如 http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html

    注意:

    转换二进制 DSCP 代码点值时,请确保在末尾添加两个额外的零。因此,使用 0010100,而不是 001010。这些 0 值(第 7 位和第 8 位)将被保留并忽略,但如果转换时未包括这些值,则十六进制值将不正确。

    从设备 R1 发送的扩展 Ping

    从主机发送的 hping 1

  3. 在设备 R2 上,验证队列 2 是否在递增。

    代码点 001010 与保证转发相关联,后者默认使用队列 2。

意义

输出显示,在通过路由器发送 50 个数据包后,队列 2 已递增 50 个数据包。