配置CoS转发
只能对CoS组应用基于路由的转发 (CBF)。因此,您必须配置策略语句,如以下示例所示:
[edit policy-options] policy-statement my-cos-forwarding { from { route-filter destination-prefix match-type; } then { cos-next-hop-map map-name; } }
此配置指定与路由过滤器匹配的路由会受 CoS 指定的下一跳跃映射影响 map-name
。有关配置策略语句的信息,请参阅 路由策略、防火墙 过滤器和流量管制器用户指南。
在 M Series 路由器上(M120 和 M320 路由器除外),如果输入接口上设置了转发类且具有多域过滤器,则基于转发类的匹配和 CBF 无法按预期工作。
从 Junos OS 版本 17.2 开始,带 MPC 或 MS-DPC、VMX、PTX3000 路由器和 PTX5000 路由器的 MX 路由器支持为多达 16 个转发类配置基于 CoS 的转发 (CBF)。所有其他平台最多支持 8 个转发类的 CBF。要支持 MX 路由器上最多 16 个 CBF 的转发类,请启用 enhanced-ip
层次结构 [edit chassis network-services]
级别。
您可以在具有受支持编号或更少转发类的设备上配置 CBF,并且仅配置默认转发类。在这种情况下,将类转发至队列映射可以是一对一,可以是一对多。但是,当配置的转发类数超过支持的数量时,不能配置 CBF。同样,如果配置了 CBF,则不能将超过支持的转发类数以及默认转发类进行配置。
要指定CoS跳跃映射,请包含 forwarding-policy
层级的 [edit class-of-service]
语句:
[edit class-of-service] forwarding-policy { next-hop-map map-name { forwarding-class class-name { discard; lsp-next-hop [ lsp-regular-expression ]; next-hop [ next-hop-name ]; non-lsp-next-hop; } forwarding-class-default { discard; lsp-next-hop [ lsp-regular-expression ]; next-hop [next-hop-name]; non-lsp-next-hop; } } }
将 CBF 配置为OSPF网关协议 (IGP) 时,您必须将下一跃点指定为接口名称或下一跃点别名,而不是 IPv4 或 IPv6 地址。这一点OSPF添加路由,并将接口作为点到点接口的下一跳跃;下一跳跃不包含 IP 地址。有关配置示例,请参阅 示例:配置CoS转发。
对于第 3 层 VPN,对于从 VRF 实例中的远端提供商边缘 (PE) 路由器收到的路由使用基于类的转发时,软件可以基于仅接收路由的属性来匹配路由。换言之,匹配可以基于 RIB-in 中的路由。在这种情况下,您包括在层次结构级别的语句不起作用,因为策略检查表 route-filter
[edit policy-options policy-statement my-cos-forwarding from]
bgp.l3vpn.0
,而不是 vrf.inet.0
表。
Junos OS将下CoS跳跃映射应用于之前定义的下一跳跃集;下一跳跃本身可以位于路由设备上任何传出接口上。例如,以下配置将一组转发类和下一跃点标识符关联在一起:
[edit class-of-service forwarding-policy] next-hop-map map1 { forwarding-class expedited-forwarding { next-hop next-hop1; next-hop next-hop2; } forwarding-class best-effort { next-hop next-hop3; lsp-next-hop lsp-next-hop4; } forwarding-class-default { lsp-next-hop lsp-next-hop5; } }
此示例为下一跳跃的 IP 地址或出口接口,是对应于带有该标签的任何下一跳跃 next-hop N
lsp-next-hop N
的正则表达式。Q1 到 Q N 是一组映射到特定下一跳跃的转发类。也就是说,当数据包使用 Q1 到 Q 交换时,它被转发出与关联的下一跃 N 点相关联的接口。
此配置有以下影响:
单个转发类可映射到多个标准下一跳跃或 LSP 下一跳跃。这表示负载共享在提供相同类值的标准下一跳跃或 LSP 下一跃点之间执行。要正常运行,Junos OS会创建等价下一跃点列表,并根据该转发类的标准负载共享规则转发数据包。
如果转发类配置中包含 LSP 下一跳跃和标准下一跳跃,则 LSP 下一跳跃比标准下一跳跃更可取。在上例中,如果 两者均有效,并且 对于应用了路由的路由,则
next-hop3
lsp-next-hop4
map1
转发表仅包含lsp-next-hop4
条目。如果
next-hop-map
未指定所有可能的转发类,则默认转发类将被选为默认设置。定义不满足下一跳跃映射中任何转发类的流量的下一 default-forwarding class 跳跃。如果下一跳跃映射中未指定默认转发类,则随机指定默认值。默认转发类是队列 0 关联的类。对于 LSP 下一跳跃,Junos OS使用 UNIX
regex(3)
样式的正则表达式。例如,如果以下标签存在:lsp
、lsp1
、 、lsp2
lsp3
、语句lsp-next-hop lsp
匹配 、 和lsp
lsp1
lsp2
lsp3
。如果您不希望出现此行为,必须使用仅匹配的lsp-next-hop " ^lsp$"
锚定lsp
字符。路由过滤器不起作用,因为策略会检查
bgp.l3vpn.0
表而不是vrf.inet.0
表。
最后一步是将路由过滤器应用于导出到转发引擎的路由。以下示例中所示:
routing-options { forwarding-table { export my-cos-forwarding; } }
此配置指示路由进程将路由插入与关联下一跃点 CBF 规则匹配的 my-cos-forwarding
转发引擎。
将配置应用于路由时,将以下算法用于:
如果路由是单下一跳跃路由,则所有流量都进入该路由;也就是说,没有 CBF 生效
对于每个下一跳跃,将相应的转发类关联在一起。如果路由中出现下一跳跃,但不在映射中,它不会显示在
cos-next-hop
转发表在条目中。如果下一跳跃映射中未指定所有转发类,则使用默认转发类。如果未指定默认值,则默认分配给下一跳跃映射中定义的最低类。