服务接口上的服务等级
服务概述等级
M Series 和基于 MX 系列 的服务卡可用的CoS配置允许您为通过服务卡服务 PIC 传输的数据包配置差异服务 (DiffServ) 代码点 (DSCP) 标记和转发类分配。基于M Series和MX 系列的服务卡包括多服务 PIC、MS-MIC、MS-MPC、MS-DPC 和自适应服务 PIC。您可以使用类似的规则结构,将 CoS 服务与状态防火墙和 NAT 服务一起配置。 服务等级用户指南(路由器和 EX9200 交换机)中详细介绍了组件结构。
以下文档介绍了差异服务标准:
RFC 2474,IPv4 和 IPv6 报头中差异服务字段(DS 字段)的定义
RFC 2475, 差异服务架构
注意:服务接口不支持 CoS BA 分类。CoS 配置仅适用于 NAT 和状态防火墙服务。CoS 配置不适用于在服务卡(如 IPsec)上运行的其他服务。
服务接口上的 CoS 配置限制和注意事项
以下限制和注意事项适用于服务接口上的 CoS 配置:
您必须在服务集上至少配置一个状态防火墙规则或 NAT 规则。否则,CoS 将失效。
服务接口不支持调度,仅支持 DiffServ 标记和队列分配。您必须在输出接口或交换矩阵的层次结构级别上
[edit class-of-service]配置调度。在默认配置中,队列 1 和 2 接收 0% 的带宽。如果要将数据包分配到这些队列,则必须配置调度图。
在配置中使用自定义转发类名称之前,必须先发出
commit full命令。配置中只能使用 Junos 标准 DiffServ 名称。无法识别自定义名称。
在 M Series 路由器上,您可以配置用于更改数据包标头并将规则连接到输出接口的 重写规则 。这些规则可能会覆盖在多服务 PIC 上配置的 DSCP 标记。请务必牢记这种不利影响,并在创建系统范围的配置时小心谨慎。
例如,知道多服务 PIC 可以使用任何 ToS 或 DSCP 值标记数据包,而输出接口仅限于 8 个 DSCP 值,因此输出接口上的重写规则会将映射从 64 个值压缩到 8 个值,但粒度总体会丢失。在这种情况下,您有以下选项:
从输出接口中移除重写规则。
将输出接口配置为包含最重要的映射。
配置 CoS 规则
要配置 CoS 规则,请在层次结构级别包含[edit services cos]该rule rule-name语句:
[edit services cos] rule rule-name { match-direction (input | output | input-output); term term-name { from { application-sets set-name; applications [ application-names ]; destination-address address; destination-prefix-list list-name <except>; source-address address; source-prefix-list list-name <except>; } then { application-profile profile-name; dscp (alias | bits); forwarding-class class-name; syslog; reflexive; | revert; | reverse { application-profile profile-name; dscp (alias | bits); forwarding-class class-name; syslog; } } } }
每个 CoS 规则都由一组术语组成,类似于在层次结构级别配置 [edit firewall] 的过滤器。术语由以下内容组成:
from语句 — 指定包含和排除的匹配条件和应用。then语句 — 指定要由路由器软件执行的作和作修饰符。
将 CoS 规则应用于层次结构级别的 [edit services] 服务集:
[edit services]
service-set service-set-name {
cos-rules [cos-rule-name];
}
以下部分介绍如何配置 CoS 规则的组件:
配置 CoS 规则的匹配方向
每个规则都必须包含一个match-direction语句,用于指定应用规则匹配的方向。要配置匹配的应用位置,请在层次结构级别包含[edit services cos rule rule-name]该match-direction语句:
match-direction (input | output | input-output);
如果配置 match-direction input-output,则允许创建双向规则。
匹配方向用于通过多服务 PIC、MS-MIC 或 MS-MPC 的流量。将数据包发送至 PIC 时,方向信息也会随之携带。
对于接口服务集,数据包的方向取决于数据包是进入还是离开应用了服务集的接口。
有了下一跳点服务集,数据包的方向由用于将数据包路由到多服务 PIC、MS-MIC 或 MS-MPC 的接口决定。如果使用内部接口路由数据包,则输入数据包方向。如果使用外部接口将数据包定向到多服务 PIC、MS-MIC 或 MS-MPC,则输出数据包方向。有关内部和外部接口的更多信息,请参阅 配置要应用于服务接口的服务集。
在多服务 PIC、MS-MIC 或 MS-MPC 上,将执行流查找。如果未找到流,则执行规则处理。服务集中的所有规则都会被考虑在内。在规则处理过程中,系统会将数据包方向与规则方向进行比较。仅考虑方向信息与数据包方向匹配的规则。
在 CoS 规则中配置匹配条件
要配置 CoS 匹配条件,请在层次结构级别包含[edit services cos rule rule-name term term-name]该from语句:
from { application-sets set-name; applications [ application-names ]; destination-address address; destination-prefix-list list-name <except>; source-address address; source-prefix-list list-name <except>; }
源地址和目的地址可以是 IPv4 或 IPv6。您可以使用源地址或目标地址作为匹配条件,其配置方式与配置防火墙过滤器的方式相同;有关更多信息,请参阅 路由策略、防火墙过滤器和流量监管器用户指南。
或者,您可以通过在层次结构级别配置[edit policy-options]语句,然后在 CoS 规则中包含 destination-prefix-list or source-prefix-list 语句来prefix-list指定源或目标前缀列表。有关示例,请参阅示例:配置有状态防火墙规则。
如果省略该 from 术语,路由器将接受所有流量,并且默认协议处理程序将生效:
用户数据报协议 (UDP)、传输控制协议 (TCP) 和互联网控制消息协议 (ICMP) 可创建具有预测逆向流量的双向流。
IP 创建单向流。
还可以包括在层次结构级别配置 [edit applications] 的应用程序协议定义;有关更多信息,请参阅 配置应用程序属性。
要应用一个或多个特定的应用协议定义,请在层次结构级别包含
[edit services cos rule rule-name term term-name from]该applications语句。要应用已定义的一组或多组应用协议定义,请在层次结构级别包含
[edit services cos rule rule-name term term-name from]该application-sets语句。注意:如果包含指定应用协议的语句之一,则路由器将从层次结构级别的
[edit applications]相应配置派生端口和协议信息;您不能将这些属性指定为匹配条件。
在 CoS 规则中配置作
要配置 CoS作,请在层次结构级别包含[edit services cos rule rule-name term term-name]该then语句:
[edit services cos rule rule-name term term-name] then { application-profile profile-name; dscp (alias | bits); forwarding-class class-name; syslog; reflexive; | revert; | reverse { application-profile profile-name; dscp (alias | bits); forwarding-class class-name; syslog; } }
主要的 CoS作如下:
dscp— 使数据包标记为指定的 DiffServ 代码点 (DSCP) 值或别名。forwarding-class— 使数据包被分配给指定的转发类。
有关 DSCP 值和转发类的详细信息,请参阅示例:在服务接口上配置 CoS 或服务等级用户指南(路由器和 EX9200 交换机)。
您可以选择性地将配置设置为通过在 syslog 层次结构级别包含 [edit services cos rule rule-name term term-name then] 语句来在系统日志记录工具中记录信息。此语句将覆盖服务集或接口默认配置中包含的任何 syslog 设置。
有关一些其他 CoS作的信息,请参阅以下部分:
配置应用程序配置文件以用作 CoS 规则作
您可以选择性地定义一个或多个应用程序配置文件以包含在 CoS作中。要配置应用配置文件,请在层次结构级别包含[edit services cos]该application-profile语句:
[edit services cos] application-profile profile-name { ftp { data { dscp (alias | bits); forwarding-class class-name; } } sip { video { dscp (alias | bits); forwarding-class class-name; } voice { dscp (alias | bits); forwarding-class class-name; } } }
该 application-profile 语句包括两个主要组件和三种流量类型: ftp with data 流量类型和 sip video 和 voice 流量类型。您可以为应用程序配置文件中的每个组件设置适当的 dscp 和 forwarding-class 值。
ftp瞻博网络 MX 系列 3D 通用边缘路由器不支持 and sip 语句。
您可以通过在层次结构级别包含 [edit services cos rule rule-name term term-name then] 应用配置文件,将其应用于 CoS 配置。
配置反身、恢复和反向 CoS 规则作
CoS 服务是单向的。可能需要为相反方向的流动指定不同的处理方式。
无论数据包是否与输入、输出或输入输出方向匹配,都会创建双向流。正向、反向或正向和反向 CoS作都与每个流相关联。请记住,反向流动最终可能会产生您尚未专门配置的与之关联的 CoS作。
要控制服务的应用方向(与规则匹配的应用方向不同),可以在层次结构级别配置 [edit services cos rule rule-name term term-name then] (reflexive | revert | reverse) 语句:
[edit services cos rule rule-name term term-name then]
reflexive; | revert; | reverse {
application-profile profile-name;
dscp (alias | bits);
forwarding-class class-name;
syslog;
}
这三个作是相互排斥的:
reflexive导致将 CoS 规则作应用于相反方向的流量以及匹配方向的流量。从 Junos OS 16.1R5 版和 Junos OS 17.4R1 版开始,
revert存储在规则匹配方向上接收的数据包的 DSCP 和转发类,然后将该 DSCP 和转发类应用于在同一会话的相反方向上接收的数据包。reverse允许您为反向流动定义 CoS 行为。
如果省略该语句,数据流将继承正向控制流的 CoS 行为。
在方向不匹配时,配置在收到数据包时创建 CoS 会话
从 Junos OS 16.1R5 版和 Junos OS 17.4R1 版开始,您可以将服务集配置为创建 CoS 会话,即使首次以错误的匹配方向接收到分配给服务集的 CoS 规则的数据包也是如此。这会导致一旦收到正确匹配方向的数据包,就会应用 CoS 规则值。要配置此功能,请在[edit services service-set service-set-name cos-options]层次结构级别包括match-rules-on-reverse-flow:
[edit services service-set service-set-name cos-options] match-rules-on-reverse-flow;
示例:配置 CoS 规则
以下示例显示了一个包含两个规则的 CoS 配置,一个用于指定应用程序集上的输入匹配,另一个用于指定源地址上的输出匹配:
[edit services]
cos {
rule my-cos-rule {
match-direction input-output;
term term1 {
from {
source-address 10.1.3.2/32;
application-set sip;
}
then {
dscp ef;
syslog;
}
}
term term2 {
from {
destination-address 10.2.3.2;
applications http;
}
then {
dscp af21;
}
}
}
}
配置 CoS 规则集
该rule-set语句定义了一组 CoS 规则,用于确定路由器软件对数据流中的数据包执行哪些作。您可以通过指定规则名称和配置术语来定义每个规则。然后,您可以通过在层次结构级别包含[edit services cos]该语句并为每个规则添加一个rule语句来rule-set指定规则的顺序:
rule-set rule-set-name { rule rule-name; }
路由器软件将按您在配置中指定的顺序处理规则。如果规则中的术语与数据包匹配,路由器将执行相应的作,并且规则处理将停止。如果规则中没有与数据包匹配的术语,则处理会继续执行规则集中的下一个规则。如果所有规则都与数据包匹配,则默认情况下将丢弃数据包。
示例:在服务接口上配置 CoS
为了使瞻博网络路由器的设置一致,您需要在层次结构级别配置 [edit class-of-service] 许多要在服务接口上使用的 CoS 设置。当您将此配置与在层次结构级别上 [edit services cos] 配置的内容一起提交时,这些属性将应用于多服务 PIC、MS-MIC 或 MS-MPC。
以下层次结构级别的[edit class-of-service]配置示例可应用于服务接口。有关更多信息,请参阅服务等级用户指南(路由器和 EX9200 交换机)。
前两种配置(将转发类名称映射到转发类 ID 以及将转发类名称映射到队列号)是互斥的。
将转发类名称映射到转发类 ID
将转发类名称映射到转发类 ID:
[edit class-of-service]
forwarding-classes {
forwarding-class fc0 0;
forwarding-class fc1 0;
forwarding-class fc2 1;
forwarding-class fc3 1;
forwarding-class fc4 2;
forwarding-class fc5 2;
forwarding-class fc6 3;
forwarding-class fc7 3;
forwarding-class fc8 4;
forwarding-class fc9 4;
forwarding-class fc10 5;
forwarding-class fc11 5;
forwarding-class fc12 6;
forwarding-class fc13 6;
forwarding-class fc14 7;
forwarding-class fc15 7;
}
将转发类名称映射到队列号
将转发类名称映射到队列号:
[edit class-of-service]
forwarding-classes {
queue 0 be;
queue 1 ef;
queue 2 af;
queue 3 nc;
queue 4 ef1;
queue 5 ef2;
queue 6 af1;
queue 7 nc1;
}
将 Diffserv 代码点别名映射到 DSCP 位
将别名映射到 DSCP 位值。然后,可以在自适应服务配置中使用别名代替 DSCP 位。
[edit class-of-service]
code-point-aliases {
(dscp | dscp-ipv6 | exp | ieee-802.1 | inet-precedence) {
alias | bits;
}
}
这是一个例子:
code-point-aliases {
dscp {
my1 110001;
my2 101110;
be 000001;
cs7 110000;
}
}
也可以看看
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。
revert 存储在规则匹配方向上接收的数据包的 DSCP 和转发类,然后将该 DSCP 和转发类应用于在同一会话的相反方向上接收的数据包。