Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

了解单播 RPF(路由器)

对于承载 IPv4 或 IPv6 流量的接口,可通过配置单播反向路径转发 (RPF) 来减少拒绝服务 (DoS) 攻击的影响。单播 RPF 有助于确定攻击源,并拒绝启用单播 RPF 的接口上意外源地址的数据包。

注意:
  • 您可以在网络的边缘(针对客户的接口)应用单播 RPF 检查功能,从而保护网络。在 ISP 环境中,这会影响可能强制进行扩展设置的网络。如果您已保护网络边缘,则带有欺骗式 IP 源地址的数据包甚至不会出现在面向核心的接口中。在这种情况下,不需要单播 RPF 检查。启用单播 RPF 功能会影响控制平面性能,因此在需要时使用它。因此强烈建议不要在网络核心(内部)接口上启用此功能。

单播 RPF 和默认路由

当无法从路由表中的路由中选择活动路由时,路由器将选择默认路由。默认路由等同于 0.0.0.0/0 的 IP 地址。如果配置默认路由,并在默认路由使用的接口上配置单播 RPF,则单播 RPF 的运行方式会与其他路由不同。

要确定默认路由是否使用接口,请输入 show route 命令:

address 是配置的默认路由的下一跳跃地址。默认路由使用命令输出中显示的 show route 接口。

以下部分介绍单播 RPF 在默认路由使用接口时以及默认路由不使用接口时的行为:

具有默认路由的单播 RPF 行为

在所有路由器上(MPC 和 MX80 路由器除外),如果配置使用单播 RPF 配置的接口的默认路由,则单播 RPF 的行为如下:

  • 松散模式 — 所有数据包都自动接受。因此,建议您不要在默认路由使用的接口上配置单播 RPF 松散模式。

  • 严格模式 — 当数据包的源地址与可通过接口到达的任何路由(默认或获知)匹配时,数据包将被接受。请注意,路由可以有多个目标与它们相关联;因此,如果其中一个目标与数据包的传入接口匹配,数据包将被接受。

在带有 MPC 和 MX80 路由器的所有路由器上,如果配置使用单播 RPF 配置的接口的默认路由,则单播 RPF 的行为如下:

  • 松散模式 — 接受除从默认路由获知源的数据包之外的所有数据包。从默认路由中学习到源的所有数据包均会在数据包转发引擎上丢弃。默认路由被视为不存在路由。

  • 严格模式 — 当数据包的源地址与可通过接口到达的任何路由(默认或获知)匹配时,数据包将被接受。请注意,路由可以有多个目标与它们相关联;因此,如果其中一个目标与数据包的传入接口匹配,数据包将被接受。

在所有路由器上,如果以下任一数据包属实,则不接受该数据包:

  • 数据包的源地址与路由表中的前缀不匹配。

  • 接口不希望收到带有此源地址前缀的数据包。

无默认路由的单播 RPF 行为

如果不配置默认路由,或者默认路由未使用使用单播 RPF 配置的接口,单播 RPF 的行为将按 配置单播 RPF 严格模式配置单播 RPF 松散模式中的说明进行。总而言之,没有默认路由的单播 RPF 的行为如下:

  • 严格模式 — 如果以下任一版本属实,不接受数据包:

    • 数据包的源地址与路由表中的前缀不匹配。

    • 接口不希望收到带有此源地址前缀的数据包。

  • 松散模式 — 当数据包的源地址与路由表中的前缀不匹配时,数据包不会被接受。

具有路由不对称的单播 RPF

通常,我们建议您不要在网络内部的接口上启用单播 RPF,因为内部接口可能具有 路由不对称性。路由不对称意味着数据包的传出和回路路径不同。与位于客户或提供商边缘的路由器相比,网络核心中的路由器更有可能具有非对称反向路径。 图 1 显示了具有路由不对称的环境中的单播 RPF。

图 1:带路由不对称 Unicast RPF with Routing Asymmetry的单播 RPF

图 1 中,如果在接口 so-0/0/0上启用单播 RPF,则发送到路由器 A 的信息流不会被拒绝。如果在接口 so-1/0/1上启用单播 RPF,则来自路由器 A 的信息流将被拒绝。

如果您需要在非对称路由环境中启用单播 RPF,则可以使用故障过滤器允许路由器接受已知通过特定路径到达的传入数据包。例如,如果故障过滤器接受带有特定源和目标地址的数据包,请参阅 配置单播 RPF

配置单播 RPF 严格模式

在严格模式下,单播 RPF 检查传入数据包的源地址是否与路由表中的前缀匹配,以及接口是否希望接收带有此源地址前缀的数据包。

如果传入数据包未能通过单播 RPF 检查,接口上将不接受该数据包。当接口上不接受数据包时,单播 RPF 会对数据包进行计数,并将其发送至可选故障过滤器。如果未配置故障过滤器,默认操作是静默丢弃数据包。

可选故障过滤器允许您将过滤器应用于单播 RPF 检查失败的数据包。您可以定义故障过滤器以执行任何过滤器操作,包括接受、拒绝、记录、采样或管制。

在接口上启用单播 RPF 时,接口上将不接受 Bootstrap 协议 (BOOTP) 数据包和动态主机配置协议 (DHCP) 数据包。要允许接口接受 BOOTP 数据包和 DHCP 数据包,必须应用故障过滤器以接收所有数据包的 0.0.0.0 源地址和目标地址 255.255.255.255. (对于配置示例),请参阅 配置单播 RPF

有关定义故障过滤器的详细信息,请参阅 路由策略、防火墙过滤器和流量监管器用户指南

要配置单播 RPF,请包括语 rpf-check 句:

您可以在以下层次结构级别中包含此语句:

  • [edit interfaces interface-name unit logical-unit-number family (inet | inet6)]

  • [edit logical-systems logical-system-name interfaces interface-name unit logical-unit-number family (inet | inet6)]

使用单播 RPF 在使用信息流过滤器实施时可能会产生多种后果:

  • RPF 故障过滤器在输入过滤器之后和输出过滤器之前进行评估。

  • 如果为输入过滤器丢弃的数据包配置过滤器计数器,并且您想知道丢弃的数据包总数,还必须为 RPF 检查丢弃的数据包配置过滤器计数器。

  • 要数未通过 RPF 检查且被 RPF 故障过滤器接受的数据包,必须配置过滤器计数器计数器。

  • 如果输入过滤器转发除 inet.0 或 inet6.0 路由表以外的任意位置的数据包,则不执行单播 RPF 检查。

  • 如果输入过滤器将数据包转发到输入接口配置的路由实例以外的任何位置,则不会执行单播 RPF 检查。

注意:

在 ACX 和 MX 系列路由器上:

  • uRPF 故障过滤器无法匹配入口端口检查(严格模式)中发生故障的数据包。
  • uRPF 故障过滤器可以匹配数据包故障源 IP 查找,但无法匹配输入接口检查失败的数据包(严格模式)。
  • uRPF 故障过滤器仅适用于防火墙过滤器的接口特定实例。
  • uRPF 故障过滤器不支持拒绝和路由实例操作。

配置单播 RPF 严格模式,并应用故障过滤器,允许接口接受 BOOTP 数据包和 DHCP 数据包。过滤器接受所有数据包的源地址 0.0.0.0 和目标地址为 255.255.255.255

要在严格模式下配置单播 RPF:

  1. 配置故障过滤器:
  2. 在接口上配置单播 RPF:
  3. 提交配置。

配置单播 RPF 松散模式

默认情况下,单播 RPF 使用严格模式。单播 RPF 松散模式类似于单播 RPF 严格模式,并具有相同的配置限制。在松散模式下唯一检查是数据包在路由表中是否有具有相应前缀的源地址;松散模式不会检查接口是否希望接收具有特定源地址前缀的数据包。如果未找到相应的前缀,单播 RPF 松散模式将不接受数据包。与严格模式一样,松散模式会对发生故障的数据包进行计数,并可选择将其转发至故障过滤器(该过滤器接受、拒绝、日志、样本或监管数据包)。

要配置单播 RPF 松散模式,请包括 mode


  1. 您可以在以下层次结构级别中包含此语句:

    • [edit interfaces interface-name unit logical-unit-number family (inet | inet6) rpf-check <fail-filter filter-name>]

    • [edit logical-systems logical-system-name interfaces interface-name unit logical-unit-number family (inet | inet6) rpf-check <fail-filter filter-name>]

  2. 例如:

    在此示例中,除了设备初始化之外,不需要特殊配置。

    配置单播 RPF 松散模式,并应用故障过滤器,允许接口接受 BOOTP 数据包和 DHCP 数据包。过滤器接受所有数据包的源地址 0.0.0.0 和目标地址为 255.255.255.255

    要在松散模式下配置单播 RPF:

    1. 配置故障过滤器:
    2. 在接口上配置单播 RPF:
    3. 提交配置。

使用丢弃数据包的功能配置单播 RPF 松散模式

单播 RPF 松散模式能够丢弃数据包,其源地址指向丢弃接口。使用单播 RPF 松散模式以及远程触发的 Null 路由过滤可提供丢弃来自已知攻击源的数据包的有效方法。边缘路由器中的 BGP 策略可确保具有不可信源地址的数据包的下一跳跃设置为丢弃路由。当数据包以不受信任的源地址到达路由器时,单播 RPF 将执行源地址的路由查找。由于源地址路由点指向丢弃的下一跳跃,因此数据包将被丢弃,并增量了计数器。IPv4 (inet) 和 IPv6 (inet6) 地址族都支持此功能。

要在能够丢弃数据包的情况下配置单播 RPF 松散模式,请在层次结构级别中[edit forwarding-options]包含rpf-loose-mode-discard family (inet | inet6)语句:

在此示例中,除了设备初始化之外,不需要特殊配置。

配置单播 RPF 松散模式,并应用故障过滤器,允许接口接受 BOOTP 数据包和 DHCP 数据包。过滤器接受所有数据包的源地址 0.0.0.0 和目标地址为 255.255.255.255

要配置单播 RPF 松散模式并能够丢弃数据包:

  1. 配置故障过滤器:
  2. 在接口上配置单播 RPF:
  3. 配置丢弃数据包的功能。
  4. 提交配置。

在 VPN 上配置单播 RPF

您可以在 VPN 接口上配置单播 RPF,方法是在接口上启用单播 RPF 并在层次结构级别上[edit routing-instances routing-instance-name]包括interface语句。

只能在路由实例中指定的接口上配置单播 RPF。这意味着以下内容:

  • 对于第 3 层 VPN,CE 路由器接口上支持单播 RPF。

  • 面向核心的接口不支持单播 RPF。

  • 对于虚拟路由器路由实例,您在路由实例中指定的所有接口上都支持单播 RPF。

  • 如果输入过滤器将数据包转发到输入接口配置的路由实例以外的任何位置,则不会执行单播 RPF 检查。

在第 3 层 VPN 接口上配置单播 RPF:

配置单播 RPF

配置单播 RPF 严格模式,并应用故障过滤器,允许接口接受 BOOTP 数据包和 DHCP 数据包。过滤器接受所有数据包的源地址 0.0.0.0 和目标地址为 255.255.255.255