服务接口上的服务等级
服务等级服务概述
基于 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]
层次结构级别配置prefix-list
语句,然后在 CoS 规则中包含 destination-prefix-list
或 source-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 交换机)》。
您可以通过在[edit services cos rule rule-name term term-name then]
层次结构级别包含syslog
语句来选择性地将配置设置为在系统日志记录工具中记录信息。此语句将覆盖服务集或接口默认配置中包含的任何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
具有data
流量类型和sip
video
和voice
流量类型。您可以为应用程序配置文件中的每个组件设置相应的dscp
和forwarding-class
值。
ftp
瞻博网络 MX 系列 3D 通用边缘路由器不支持和 sip
语句。
您可以通过在 [edit services cos rule rule-name term term-name then]
层次结构级别包含应用程序配置文件来将应用程序配置文件应用于 CoS 配置。
配置自反、还原和反向 CoS 规则作
CoS 服务是单向的。可能需要为相反方向的流动指定不同的处理方法。
无论数据包的输入、输出或输入输出方向匹配,都会创建两个方向的流量。正向、反向或正向和反向 CoS作与每个流相关联。请记住,相反方向的流最终可能会有一个与您关联的 CoS作,而您尚未专门配置该作。
要控制应用服务的方向(与应用规则匹配的方向不同),可以在层次结构级别配置 (reflexive | revert | reverse
) 语句 [edit services cos rule rule-name term term-name then]
:
[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 规则集
示例: 在服务接口上配置 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 和转发类应用于按同一会话的相反方向接收的数据包。