用户接口动态配置文件中的单播 RPF
用户接口动态配置文件中的单播 RPF
单播反向路径转发 (RPF) 提供了一种减少拒绝服务 (DoS) 和分布式拒绝服务 (DDoS) 攻击对 IPv4 和 IPv6 接口影响的方法。在接口上配置单播 RPF 时,它会检查数据包源地址。通过检查的数据包将被转发。未通过检查的数据包将被丢弃,或者如果配置了失败过滤器,则将传递给过滤器以进行进一步评估。
单播 RPF 有两种行为模式, 严格 和 松散。在动态配置文件中配置单播 RPF 时,默认设置严格模式。在严格模式下,单播 RPF 会检查传入数据包的源地址是否与路由表中的前缀匹配,以及接口是否期望接收具有此源地址前缀的数据包。在松散模式下,单播 RPF 仅检查源地址在路由表中是否匹配。它不检查接口是否期望接收来自特定源地址的数据包。
对于这两种模式,当传入数据包未通过单播 RPF 检查时,接口将不接受该数据包。相反,单播 RPF 对数据包进行计数,并将其发送到可选的故障过滤器(如果存在)。故障过滤器确定对数据包执行的进一步作。如果没有故障过滤器,数据包将被静默丢弃。
- Junos OS 演化版不支持数据包计数器。
- 在 Junos OS 演化版上,您不需要故障过滤器,因为系统会阻止在 RPF 检查期间丢弃自举协议 (BOOTP) 数据包和动态主机配置协议 (DHCP) 数据包。
当接口上启用了 或 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(路由器)。
在此示例中,您将配置路由器,以防范通过到达动态创建的 VLAN 多路分离接口的 IPv4 数据包来遭受来自互联网的潜在 DoS 和 DDoS 攻击。动态配置文件 vlan-demux-prof 会为订阅者自动创建 VLAN 多路分离接口。通过 rpf-check 术语在动态接口上启用单播 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-check 故障过滤器名称字段显示 rpf-pass-dhcp,动态配置文件为未通过 RPF 检查的 IPv4 数据包应用的故障过滤器的名称。
变更历史表
是否支持某项功能取决于您使用的平台和版本。使用 功能资源管理器 确定您的平台是否支持某个功能。
rpf-check mode loose 时
rpf-check,命令
show interfaces statistics logical-interface-name detail会显示动态逻辑接口的单播 RPF 统计信息。