用户接口动态配置文件中的单播 RPF
用户接口动态配置文件中的单播 RPF
单播反向路径转发 (RPF) 提供了一种减少拒绝服务 (DoS) 和分布式拒绝服务 (DDoS) 攻击对 IPv4 和 IPv6 接口的影响的方法。在接口上配置单播 RPF 时,它会检查数据包源地址。通过检查的数据包将被转发。未通过检查的数据包将被丢弃,或者如果配置了失败过滤器,则会传递到过滤器进行进一步评估。
单播 RPF 有两种行为模式: 严格 和 松散。在动态配置文件中配置单播 RPF 时,默认为严格模式。在严格模式下,单播 RPF 会检查传入数据包的源地址是否与路由表中的前缀匹配,以及接口是否期望接收具有此源地址前缀的数据包。在松散模式下,单播 RPF 仅检查源地址在路由表中是否匹配。它不会检查接口是否期望从特定源地址接收数据包。
对于这两种模式,当传入数据包未通过单播 RPF 检查时,接口将不接受该数据包。相反,单播 RPF 对数据包进行计数,并将其发送到可选的故障过滤器(如果存在)。故障过滤器确定对数据包采取哪些进一步操作。如果没有故障过滤器,数据包将被静默丢弃。
从 Junos OS 19.1R1 版开始,当接口上启用 或 rpf-check mode loose
时,命令rpf-check
将显示show interfaces statistics logical-interface-name detail
动态逻辑接口的单播 RPF 统计信息。在接口上配置 时rpf-check fail-filter filter-name
,不会显示其他统计信息。该clear interfaces statistics logical-interface-name
命令将清除 RPF 统计信息。
在订阅者接口的动态配置文件中配置单播 RPF
单播 RPF 提供了一种根据路由表检查源 IP 地址来降低拒绝服务攻击对 IPv4 和 IPv6 接口的影响的方法。不匹配的数据包将被静默丢弃,除非配置了可选的故障过滤器。故障过滤器执行附加检查,并指示对某些数据包执行某些操作。典型的操作包括记录数据包或通过数据包,即使它们未通过 RPF 检查。
尽管故障过滤器在技术上是可选的,但对于 DHCP 环境中的动态配置文件,您必须配置过滤器以传递 DHCP 数据包。默认情况下,RPF 检查会阻止受 RPF 检查保护的接口上接受 DHCP 数据包。故障过滤器可识别 DHCP 数据包并将其传递。
要在动态配置文件中配置单播 RPF 检查:
在订阅者接口的动态配置文件中为单播 RPF 配置故障过滤器
本主题介绍如何在层次结构级别配置 [edit firewall]
故障过滤器,单播 RPF 可以选择将该过滤器应用于 MX 系列路由器上动态配置文件中的订阅者接口。
与静态配置的故障过滤器相比,动态配置文件中使用的 RPF 检查故障过滤器不能特定于特定接口。
要配置防火墙故障过滤器,请执行以下操作:
示例:在 MX 系列路由器上的动态配置文件中配置单播 RPF
此示例说明如何在客户边缘接口上配置单播反向路径转发 (RPF) 以过滤传入流量,从而帮助保护路由器入口接口免受拒绝服务 (DoS) 和分布式拒绝服务 (DDoS) 攻击。单播 RPF 验证到达启用了单播 RPF 的入口接口的每个数据包的单播源地址。未通过验证的数据包将被静默丢弃,除非失败过滤器对其执行其他操作。
要求
概述
大量未经授权的流量(例如,在拒绝服务 (DoS) 攻击中试图用虚假的服务请求淹没网络)可能会消耗网络资源并拒绝向合法用户提供服务。帮助防止 DoS 和分布式拒绝服务 (DDoS) 攻击的一种方法是验证传入流量是否来自合法的网络源。
单播 RPF 通过将到达接口的每个数据包的源地址与其源地址的转发表条目进行比较,帮助确保流量源是合法的(授权的)。如果路由器使用数据包到达的同一接口来回复数据包的来源,则会验证数据包是否来自授权源,路由器转发数据包。如果路由器不使用数据包到达的同一接口来回复数据包的源,则数据包可能来自未经授权的来源,路由器会丢弃数据包,或将其传递给故障过滤器。
通过失败过滤器,您可以为希望通过的数据包设置条件,尽管 RPF 检查未通过,例如默认情况下会丢弃的 DHCP 数据包。
在 MX 系列路由器上,您可以在动态配置文件中配置单播 RPF,以将配置应用到一个或多个订阅者接口。有关 MX 系列路由器上单播 RPF 的行为和限制的详细信息,请参阅了解单播 RPF(路由器)。
在此示例中,您将路由器配置为防止来自互联网的潜在 DoS 和 DDoS 攻击,这些攻击通过到达动态创建的 VLAN 多路复用接口的 IPv4 数据包进行。动态配置文件 vlan-demux-prof 用于确定自动为订阅者创建 VLAN 多路复用接口。单播 RPF 通过 rpf 检查术语在动态接口上启用。
默认情况下,单播 RPF 会阻止在其应用的接口上接受动态主机配置协议 (DHCP) 数据包。丢弃 DHCP 数据包时,动态配置文件无法创建新的订阅者。要使接口能够接受 DHCP 数据包,您必须应用故障过滤器,以正确对未通过检查的数据包进行排序并识别 DHCP 数据包。在此示例中,您将在过滤器rpf-pass-dhcp
中配置allow-dhcp
术语。此术语匹配、计数并接受发往 DHCP 端口和任何地址的 IPv4 数据包。丢弃default term
未通过 RPF 检查的所有其他数据包。
此示例未显示所有可能的配置选项。
拓扑学
配置
要在动态配置文件中启用带有故障过滤器的单播 RPF,请执行以下任务:
配置动态配置文件以将 RPF 检查应用于动态 VLAN 多路复用接口
CLI 快速配置
要快速配置动态配置文件以将单播 RPF 应用于动态创建的 VLAN 多路复用接口,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,然后将命令复制并粘贴到 CLI 中。
edit dynamic-profiles vlan-demux-prof interfaces demux0 edit unit $junos-interface-unit set demux-options underlying-interface $junos-interface-ifd-name set vlan-id $junos-vlan-id edit family inet set unnumbered-address lo0.0 set rpf-check fail-filter rpf-pass-dhcp
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅 在配置模式下使用 CLI 编辑器。
要在路由器上配置单播 RPF:
创建动态配置文件。
[edit] user@host# edit dynamic-profiles vlan-demux-prof
指定动态 VLAN 配置文件使用多路复用接口。
[edit dynamic-profiles vlan-demux-prof] user@host# edit interfaces demux0
指定动态配置文件将多路复用接口单元值应用于动态 VLAN。
[edit dynamic-profiles vlan-demux-prof interfaces demux0] user@host# edit unit $junos-interface-unit
指定动态 VLAN 的逻辑底层接口。
[edit dynamic-profiles vlan-demux-prof interfaces demux0 unit $junos-interface-unit] user@host# set demux-options underlying-interface $junos-interface-ifd-name
配置可生成动态创建的 VLAN ID 的变量。
[edit dynamic-profiles vlan-demux-prof interfaces demux0 unit $junos-interface-unit] user@host# set vlan-id $junos-vlan-id
为多路复用接口配置 IPv4 地址族。
[edit dynamic-profiles vlan-demux-prof interfaces demux0 unit $junos-interface-unit] user@host# edit family inet
为家族配置未编号的地址。
[edit dynamic-profiles vlan-demux-prof interfaces demux0 unit $junos-interface-unit family inet] user@host# set unnumbered-address lo0.0
配置单播 RPF 并指定应用于未通过检查的传入数据包的故障过滤器。
[edit dynamic-profiles vlan-demux-prof interfaces demux0 unit $junos-interface-unit family inet] user@host# set fail-filter fail-filter rpf-pass-dhcp
配置 RPF 检查失败过滤器
CLI 快速配置
要快速配置单播 RPF 检查失败过滤器,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,然后将命令复制并粘贴到 CLI 中。
edit firewall family inet filter rpf-pass-dhcp edit term allow-dhcp set from destination-port dhcp set from destination-address 255.255.255.255/32 set then count rpf-dhcp-traffic set then accept up edit term default set then discard
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅 在配置模式下使用 CLI 编辑器。
要配置 RPF 检查失败过滤器:
创建失败筛选器。
[edit firewall] user@host# edit family inet filter rpf-pass-dhcp
定义基于 DHCP 目标端口标识 DHCP 数据包的过滤器术语,然后对数据包进行计数和传递。
[edit firewall family inet filter rpf-pass-dhcp] user@host# edit term allow-dhcp user@host# set from destination-port dhcp user@host# set from destination-address 255.255.255.255/32 user@host# set then count rpf-dhcp-traffic user@host# set then accept
定义丢弃所有其他故障数据包的过滤器术语。
[edit firewall filter rpf-pass-dhcp] user@host# edit term default user@host# set then discard
结果
在配置模式下,输入命令确认 show dynamic-profiles
单播 RPF 配置。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。
[edit] user@host# show dynamic-profiles vlan-demux-prof { interfaces { demux0 { unit "$junos-interface-unit" { vlan-id "$junos-vlan-id"; demux-options { underlying-interface "$junos-interface-ifd-name"; } family inet { unnumbered-address lo0.0;rpf-check {
fail-filter rpf-pass-dhcp;
}
} } } } }
在配置模式下,输入命令确认 show firewall
故障过滤器配置。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。
[edit] user@host# show firewall family inet { filter rpf-pass-dhcp { term allow-dhcp { from { destination-address { 255.255.255.255/32; } destination-port dhcp; } then { count rpf-dhcp-traffic; accept; } } term default { then { discard; } } } }
如果完成设备配置,请从配置模式输入 commit
。
验证
要确认配置是否正确,请执行以下任务:
验证路由器上是否启用了单播 RPF
目的
验证是否启用了单播 RPF。
行动
使用 show subscribers extensive
命令验证是否启用了单播 RPF。
user@host> show subscribers extensive
Type: VLAN
Logical System: default
Routing Instance: default
Interface: ae0.1073741824
Interface type: Dynamic
Dynamic Profile Name: vlan-demux-prof
State: Active
Session ID: 9
VLAN Id: 100
Login Time: 2011-08-26 08:17:00 PDT
IPv4 rpf-check Fail Filter Name: rpf-pass-dhcp
意义
IPv4 rpf 检查失败过滤器名称字段将显示 rpf-pass-dhcp
,动态配置文件对未通过 RPF 检查的 IPv4 数据包应用故障过滤器的名称。
更改历史记录表
功能支持由您使用的平台和版本决定。使用 功能资源管理器 确定您的平台是否支持某个功能。
rpf-check mode loose
时,命令
rpf-check
将显示
show interfaces statistics logical-interface-name detail
动态逻辑接口的单播 RPF 统计信息。