在路由器上配置 MPLS 防火墙过滤器和监管器
您可以将 MPLS 防火墙过滤器配置为根据数据包中顶级 MPLS 标签的 EXP 位对数据包进行计数。您还可以为 MPLS LSP 配置监管器。
以下各节讨论 MPLS 防火墙过滤器和监管器:
配置 MPLS 防火墙过滤器
您可以将 MPLS 防火墙过滤器配置为根据数据包中顶级 MPLS 标签的 EXP 位对数据包进行计数。然后,您可以将此过滤器应用于特定接口。您还可以为 MPLS 过滤器配置监管器,以监管(即速率限制)过滤器所连接的接口上的流量。您无法将 MPLS 防火墙过滤器应用于以太网 (fxp0) 或环路 (lo0) 接口。
您可以在层次结构级别为 [edit firewall family mpls filter filter-name term term-name from]
MPLS 过滤器配置以下匹配标准属性:
exp
exp-except
这些属性可以接受 0 到 7 范围内的 EXP 位。您可以配置以下选项:
单个 EXP 位,例如
exp 3;
几个 EXP 位,例如
exp 0, 4;
EXP 位的范围,例如
exp [0-5];
如果未指定匹配标准(即,不配置 from
语句并仅 then
将语句与 action 关键字一起使用 count
),则将计算通过应用过滤器的接口的所有 MPLS 数据包。
您还可以在 [edit firewall family mpls filter filter-name term term-name then]
层次结构级别配置以下任何操作关键字:
count
accept
discard
next
policer
有关如何配置防火墙过滤器的更多信息,请参阅 《路由策略》、《防火墙过滤器》和《流量监管器用户指南》。有关如何配置接口的详细信息,请参阅 路由设备的 Junos OS 网络接口库 和 路由设备的 Junos OS 服务接口库。
示例:配置 MPLS 防火墙过滤器
以下示例说明了如何配置 MPLS 防火墙过滤器,然后将过滤器应用于接口。此过滤器配置为对 EXP 位设置为 0 或 4 的 MPLS 数据包进行计数。
下面显示了 MPLS 防火墙过滤器的配置:
[edit firewall] family mpls { filter expf { term expt0 { from { exp 0,4; } then { count counter0; accept; } } } }
下面显示了将 MPLS 防火墙过滤器应用于接口的方法:
[edit interfaces] so-0/0/0 { mtu 4474; encapsulation ppp; sonet-options { fcs 32; } unit 0 { point-to-point; family mpls { filter { input expf; output expf; } } } }
MPLS 防火墙过滤器应用于接口的输入和输出(请参阅 input
前面示例中的和 output
语句)。
为 LSP 配置监管器
MPLS LSP 管制允许您控制通过特定 LSP 转发的流量。监管有助于确保通过 LSP 转发的流量永远不会超过请求的带宽分配。常规 LSP、配置了 DiffServ 感知流量工程的 LSP 和多类 LSP 支持 LSP 管制。您可以为每个多类 LSP 配置多个监管器。对于常规 LSP,每个 LSP 监管器都应用于遍历 LSP 的所有流量。一旦通过 LSP 的流量总和超过配置的限制,监管器的带宽限制就会生效。
PTX10003 路由器仅支持常规 LSP。
您可以在过滤器中配置多类 LSP 和 DiffServ 感知信息流工程 LSP 监管器。过滤器可以配置为区分不同的类类型,并将相关监管器应用于每个类类型。监管器根据 EXP 位区分类类型。
您可以在过滤器下 family any
配置 LSP 监管器。使用过滤器是因为 family any
监管器应用于进入 LSP 的流量。此流量可能来自不同系列:IPv6、MPLS 等。您无需知道进入 LSP 的流量类型,只要匹配条件适用于所有类型的流量即可。
您只能配置适用于所有类型的流量的匹配条件。以下是 LSP 监管器支持的匹配条件:
forwarding-class
packet-length
interface
interface-set
要在 LSP 上启用监管器,首先需要配置监管过滤器,然后将其包含在 LSP 配置中。有关如何配置监管器的信息,请参阅 《路由策略》、《防火墙过滤器》和《流量监管器用户指南》。
要为 LSP 配置监管器,请通过在语句中包含policing
选项来filter
指定过滤器:
policing { filter filter-name; }
您可以在以下层次结构级别包含该 policing
语句:
[edit protocols mpls label-switched-path lsp-name]
[edit protocols mpls static-label-switched-path lsp-name]
[edit logical-systems logical-system-name protocols mpls label-switched-path lsp-name]
[edit logical-systems logical-system-name protocols mpls static-label-switched-path lsp-name]
LSP 监管器限制
配置 MPLS LSP 监管器时,请注意以下限制:
-
LSP 监管器仅支持数据包 LSP。
-
LSP 监管器仅支持单播下一跃点。不支持组播下一跃点。
-
聚合接口不支持 LSP 监管器。
-
LSP 监管器在任何输出滤波器之前运行。
-
来自路由引擎的信息流(例如 ping 信息流)不采用与中转信息流相同的转发路径。无法对此类流量进行监管。
-
LSP 监管器适用于所有 T 系列路由器和具有互联网处理器 II 应用专用集成电路 (ASIC) 的 M 系列路由器。
- 点对多点 LSP 不支持 LSP 监管器。
从 Junos OS 版本 12.2R2 开始,只有在 T 系列路由器上,您才能为要在不同协议系列类型之间共享的特定 LSP 配置 LSP 监管器。为此,您必须在[edit firewall policer policer-name]
层次结构级别配置逻辑接口监管器语句。
示例:配置 LSP 监管器
以下示例说明如何为 LSP 配置监管过滤器:
[edit firewall] policer police-ct1 { if-exceeding { bandwidth-limit 50m; burst-size-limit 1500; } then { discard; } } policer police-ct0 { if-exceeding { bandwidth-limit 200m; burst-size-limit 1500; } then { discard; } } family any { filter bar { term discard-ct0 { then { policer police-ct0; accept; } } } term discard-ct1 { then { policer police-ct1; accept; } } }
配置自动监管器
通过 LSP 的自动监管,您可以为网络流量提供严格的服务保障。此类保证在流量工程 LSP 的差异化服务环境中特别有用,可为 MPLS 网络上的 ATM 线路提供更好的仿真。有关 LSP 差异化服务的更多信息,请参阅 DiffServ 感知流量工程简介。
针对流量工程 LSP 的差异化服务允许您基于 EXP 位对 MPLS 流量提供差异处理。为了确保这些流量保证,仅仅适当地标记流量是不够的。如果流量遵循拥塞路径,则可能无法满足要求。
LSP 保证沿着有足够的资源来满足要求的路径建立。但是,即使 LSP 是沿着此类路径建立的并且标记正确,也无法保证这些要求,除非您确保发送到 LSP 的流量不超过可用带宽。
可以通过手动配置适当的过滤器并将其应用于配置中的 LSP 来监管 LSP 流量。但是,对于大型部署,配置数千个不同的筛选器很麻烦。配置组也无法解决此问题,因为不同的 LSP 可能具有不同的带宽要求,需要不同的筛选器。要监管大量 LSP 的流量,最好配置自动监管器。
为 LSP 配置自动监管器时,监管器将应用于路由器上配置的所有 LSP。但是,您可以禁用特定 LSP 上的自动管制。
为 DiffServ 感知流量工程 LSP 配置自动监管器时,不支持 GRES。
您无法为承载 CCC 流量的 LSP 配置自动管制。
以下部分介绍如何为 LSP 配置自动监管器:
为 LSP 配置自动监管器
要为标准 LSP(既不是 DiffServ 感知流量工程 LSP,也不是多类 LSP)配置自动监管器,请将语句包含在auto-policing
选项或class ct0 policer-action
选项中class all policer-action
:
auto-policing { class all policer-action; class ct0 policer-action; }
您可以在以下层次结构级别包含此语句:
[edit protocols mpls]
[edit logical-systems logical-system-name protocols mpls]
您可以为自动监管器配置以下监管器操作:
drop
—丢弃所有数据包。loss-priority-high
— 将丢包优先级 (PLP) 设置为高。loss-priority-low
- 将 PLP 设置为低。
这些监管器操作适用于所有类型的 LSP。默认监管器操作是不执行任何操作。
LSP 的自动监管器根据为 LSP 配置的带宽量来监管流量。您可以使用层次结构级别的语句[edit protocols mpls label-switched-path lsp-path-name]
配置 bandwidth
LSP 的带宽。如果您在路由器上启用了自动监管器,更改为 LSP 配置的带宽,并提交修订后的配置,则更改不会对活动 LSP 生效。要强制 LSP 使用新的带宽分配,请发出 clear mpls lsp
命令。
您无法为遍历聚合接口或多链路点对点协议 (MLPPP) 接口的 LSP 配置自动监管器。
为 DiffServ 感知流量工程 LSP 配置自动监管器
要为 DiffServ 感知流量工程 LSP 和多类 LSP 配置自动监管器,请添加以下 auto-policing
语句:
auto-policing { class all policer-action; class ctnumber policer-action; }
您可以在以下层次结构级别包含此语句:
[edit protocols mpls]
[edit logical-systems logical-system-name protocols mpls]
您可以为一个或多个类中的每一个类包括 class all policer-action
语句 class ctnumber policer-action
或语句(您可以为每个类配置不同的监管器操作)。有关可替换 policer-action
变量的操作的列表,请参见 为 LSP 配置自动监管器。默认监管器操作是不执行任何操作。
您无法为遍历聚合接口或 MLPPP 接口的 LSP 配置自动监管器。
为点对多点 LSP 配置自动监管器
您可以通过将语句包含在auto-policing
选项或class ct0 policer-action
选项中class all policer-action
,为点对多点 LSP 配置自动监管器。您只需在主点对多点 LSP 上配置 auto-policing
语句(有关主点对多点 LSP 的更多信息,请参阅 配置主点对多点 LSP)。对于点对多点 LSP,无需在子 LSP 上进行其他配置。点对多点自动管制适用于点对多点 LSP 的所有分支。此外,自动管制将应用于与点对多点分支具有相同转发条目的任何本地 VRF 接口。 Junos Trio 芯片组上用于 MPLS 点对多点 LSP 的自动监管器的功能奇偶校验在 Junos OS 11.1R2、11.2R2 和 11.4 版中受支持。
点对多点 LSP 的自动监管器配置与标准 LSP 的自动监管器配置相同。有关更多详细信息,请参阅为 LSP 配置自动监管器。
在 LSP 上禁用自动监管
启用自动管制后,路由器或逻辑系统上的所有 LSP 都会受到影响。要在已启用自动管制的路由器上的特定 LSP 上禁用自动管制,请在选项中包含policing
no-auto-policing
语句:
policing no-auto-policing;
您可以在以下层次结构级别包含此语句:
[edit protocols mpls label-switched-path lsp-name]
[edit logical-systems logical-system-name protocols mpls label-switched-path lsp-name]
示例:为 LSP 配置自动监管
为多类 LSP 配置自动管制,为类类型 ct0
、 ct1
ct2
、 和 ct3
指定不同的操作。
[edit protocols mpls] diffserv-te { bandwidth-model extended-mam; } auto-policing { class ct1 loss-priority-low; class ct0 loss-priority-high; class ct2 drop; class ct3 loss-priority-low; } traffic-engineering bgp-igp; label-switched-path sample-lsp { to 3.3.3.3; bandwidth { ct0 11; ct1 1; ct2 1; ct3 1; } } interface fxp0.0 { disable; } interface t1-0/5/3.0; interface t1-0/5/4.0;
在 MPLS 标记的 IP 数据包中写入不同的 DSCP 和 EXP 值
您可以有选择地将 MPLS 标记的 IPv4 和 IPv6 数据包的 DiffServ 代码点 (DSCP) 字段设置为 0,而不会影响输出队列分配,并根据配置的重写表(基于转发类)继续设置 MPLS EXP 字段。您可以通过为 MPLS 标记的数据包配置防火墙过滤器来实现此目的。