用于 MPLS 的防火墙过滤器
在路由器上配置 MPLS 防火墙过滤器和监管器
您可以将 MPLS 防火墙过滤器配置为根据数据包中顶级 MPLS 标签的 EXP 位对数据包进行计数。您还可以为 MPLS LSP 配置监管器。
以下各节讨论 MPLS 防火墙过滤器和监管器:
- 配置 MPLS 防火墙过滤器
- 示例:配置 MPLS 防火墙过滤器
- 为 LSP 配置监管器
- 示例:配置 LSP 监管器
- 配置自动监管器
- 在 MPLS 标记的 IP 数据包中写入不同的 DSCP 和 EXP 值
配置 MPLS 防火墙过滤器
您可以将 MPLS 防火墙过滤器配置为根据数据包中顶级 MPLS 标签的 EXP 位对数据包进行计数。然后,您可以将此过滤器应用于特定接口。您还可以为 MPLS 过滤器配置监管器,以监管(即速率限制)过滤器所连接的接口上的流量。
您可以在层次结构级别为 [edit firewall family mpls filter filter-name term term-name from] MPLS 过滤器配置以下匹配标准属性:
expexp-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] 层次结构级别配置以下任何操作关键字:
countacceptdiscardnextpolicer
有关如何配置防火墙过滤器的更多信息,请参阅 《路由策略》、《防火墙过滤器》和《流量监管器用户指南》。有关如何配置接口的详细信息,请参阅 路由设备的 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-classpacket-lengthinterfaceinterface-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 上禁用自动管制,请在选项中包含policingno-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、 ct1ct2、 和 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 标记的数据包配置防火墙过滤器来实现此目的。
环路接口上的 MPLS 防火墙过滤器概述
尽管所有接口都很重要,但环路接口可能是最重要的,因为它是运行和管理所有路由协议的路由引擎的链路。环路接口是进入交换机路由引擎的所有控制流量的网关。您可以通过在 QFX5100、QFX5110、QFX5200 和 QFX5210 交换机中的系列 MPLS 上的环路接口 (lo0) 上配置防火墙过滤器来控制流量。 环路防火墙过滤器仅影响发往路由引擎 CPU 的流量。您只能在 入口 方向(进入接口的数据包)应用环路防火墙过滤器。从 Junos OS 19.2R1 版开始,您可以将 MPLS 防火墙过滤器应用于 QFX5100、QFX5110、QFX5200 和 QFX5210 交换机上的标签交换机路由器 (LSR) 上的环路接口。
配置 MPLS 防火墙过滤器时,您可以定义数据包的过滤标准(带匹配条件的术语),以及在数据包与过滤标准匹配时交换机要执行 的操作 。由于您将过滤器应用于环路接口,因此您必须在 family mpls 下显式指定生存时间 (TTL) 匹配条件,并将其 TTL 值设置为 1 (ttl=1)。TTL 是一个 8 位 (IPv4) 标头字段,表示 IP 数据包在其生命结束和丢弃之前剩余的时间。您还可以将数据包与其他 MPLS 限定符(如 label、 exp、 第 4 source port层和第 4 destination port层)进行匹配。
在环路接口上添加 MPLS 防火墙过滤器的好处
-
通过确保路由引擎仅接受来自可信网络的流量来保护路由引擎。
-
帮助保护路由引擎免受拒绝服务攻击。
-
使您能够灵活地匹配源端口和目标端口上的数据包。例如,如果运行路由跟踪,则可以通过选择 TCP 或 UDP 有选择地过滤流量。
准则和限制
-
您只能在 入口 方向应用环路防火墙过滤器
-
仅支持 MPLS 字段
label、exp以及ttl=1第 4 层字段tcp和udp端口号。 -
仅
accept支持 、discard和count操作。 -
您必须显式指定
ttl=1underfamily mpls才能在 TLL 数据包上进行匹配。 -
在环路接口上应用的过滤器无法与 IPv6 数据包的目标端口(内部有效负载)匹配。
-
您无法对具有两个以上 MPLS 标签的数据包应用过滤器。
-
不能为 TCP 或 UDP 匹配条件指定端口范围。
-
仅支持 255 个防火墙术语。
特定于平台的 MPLS 防火墙过滤器 行为
|
平台 |
差异 |
|---|---|
|
QFX5100 / QFX5110 / QFX5200 / QFX5210 |
支持从 Junos OS 19.2R1 开始 |
|
MX 系列 |
支持 |
|
PTX 系列 |
支持 |
在交换机上配置 MPLS 防火墙过滤器和监管器
您可以配置防火墙过滤器来过滤 MPLS 流量。要使用 MPLS 防火墙过滤器,您必须首先配置过滤器,然后将其应用于您为转发 MPLS 流量而配置的接口。您还可以为 MPLS 过滤器配置监管器,以监管(即速率限制)过滤器所连接的接口上的流量。
配置 MPLS 防火墙过滤器时,您可以定义过滤标准(带匹配条件的术语)以及数据包与过滤标准匹配时交换机要采取的操作。
您只能在入口方向上配置 MPLS 过滤器。不支持出口 MPLS 防火墙过滤器。
配置 MPLS 防火墙过滤器
要配置 MPLS 防火墙过滤器,请执行以下操作:
将 MPLS 防火墙过滤器应用于 MPLS 接口
要将 MPLS 防火墙过滤器应用于您配置的用于转发 MPLS 流量的接口(在 family mpls 层次结构级别使用 [edit interfaces interface-name unit unit-number] 语句):
您只能应用防火墙过滤器来过滤进入接口的 MPLS 数据包。
将 MPLS 防火墙过滤器应用于环路接口
要将 MPLS 防火墙过滤器应用于环路接口 (lo0):
下面是一个示例配置。
set groups lo_mpls_filter interfaces lo0 unit 0 family mpls filter input mpls_loset groups lo_mpls_filter firewall family mpls filter mpls_lo term mpls_lo_term from ttl 1set groups lo_mpls_filter firewall family mpls filter mpls_lo term mpls_lo_term from ip-version ipv4 protocol udp source-port 10set groups lo_mpls_filter firewall family mpls filter mpls_lo term mpls_lo_term from ip-version ipv4 protocol udp destination-port 11set groups lo_mpls_filter firewall family mpls filter mpls_lo term mpls_lo_term then count c1set groups lo_mpls_filter firewall family mpls filter mpls_lo term mpls_lo_term then accept
为 LSP 配置监管器
从 Junos OS 13.2X51-D15 开始,您可以将 MPLS 过滤器匹配的流量发送到双色监管器或三色监管器。MPLS LSP 管制允许您控制通过特定 LSP 转发的流量。监管有助于确保通过 LSP 转发的流量永远不会超过请求的带宽分配。常规 LSP、配置了 DiffServ 感知流量工程的 LSP 和多类 LSP 支持 LSP 管制。您可以为每个多类 LSP 配置多个监管器。对于常规 LSP,每个 LSP 监管器都应用于遍历 LSP 的所有流量。一旦通过 LSP 的流量总和超过配置的限制,监管器的带宽限制就会生效。
您可以在过滤器中配置多类 LSP 和 DiffServ 感知信息流工程 LSP 监管器。过滤器可以配置为区分不同的类类型,并将相关监管器应用于每个类类型。监管器根据 EXP 位区分类类型。
您可以在过滤器下 family any 配置 LSP 监管器。使用过滤器是因为 family any 监管器应用于进入 LSP 的流量。此流量可能来自不同系列:IPv6、MPLS 等。您无需知道进入 LSP 的流量类型,只要匹配条件适用于所有类型的流量即可。
配置 MPLS LSP 监管器时,请注意以下限制:
LSP 监管器仅支持数据包 LSP。
LSP 监管器仅支持单播下一跃点。不支持组播下一跃点。
LSP 监管器在任何输出滤波器之前运行。
来自路由引擎的信息流(例如 ping 信息流)不采用与中转信息流相同的转发路径。无法对此类流量进行监管。
变更历史表
是否支持某项功能取决于您使用的平台和版本。 使用 Feature Explorer 查看您使用的平台是否支持某项功能。