示例:配置控制平面 DDoS 防护
此示例说明如何配置控制平面 DDoS 保护,使路由器能够快速识别攻击并防止大量恶意控制数据包耗尽系统资源。
要求
控制平面 DDoS 防护需要以下硬件和软件:
仅安装 MPC 的 MX 系列路由器、仅安装 FPC5 的 T4000 核心路由器、EX9200 交换机。
注意:如果路由器除了 MPC 或 FPC5 之外还有其他卡,CLI 将接受配置,但其他卡不受保护,因此路由器不受保护。
Junos OS 11.2 或更高版本
在配置此功能之前,不需要除设备初始化之外的特殊配置。
概述
分布式拒绝服务攻击使用多个来源,用协议控制数据包淹没网络或路由器。此恶意流量会在网络中触发大量异常,并尝试耗尽系统资源以拒绝有效用户访问网络或服务器。
此示例介绍如何配置速率限制监管器,以识别过度控制流量并在路由器受到不利影响之前丢弃数据包。示例任务包括为协议组中的特定控制数据包类型配置监管器、为协议组配置聚合监管器并针对特定控制数据包类型绕过该监管器,以及为 DDoS 操作指定跟踪选项。
此示例未显示所有可能的配置选项。
拓扑学
配置
程序
CLI 快速配置
要为协议组和特定控制数据包类型快速配置控制平面 DDoS 保护,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,然后将命令复制并粘贴到 CLI 中。
[edit] edit system set ddos-protection protocols dhcpv4 aggregate bandwidth 669 set ddos-protection protocols dhcpv4 aggregate burst 6000 set ddos-protection protocols dhcpv4 discover bandwidth 100 set ddos-protection protocols dhcpv4 discover recover-time 200 set ddos-protection protocols dhcpv4 discover burst 300 set ddos-protection protocols dhcpv4 offer priority medium set ddos-protection protocols dhcpv4 offer bypass-aggregate set ddos-protection protocols dhcpv4 offer fpc 1 bandwidth-scale 80 set ddos-protection protocols dhcpv4 offer fpc 1 burst-scale 75 set ddos-protection protocols pppoe aggregate bandwidth 800 set ddos-protection traceoptions file ddos-trace size 10m set ddos-protection traceoptions flag all top
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅 在配置模式下使用 CLI 编辑器。
要配置 DDoS 防护,请执行以下操作:
指定协议组。
[edit system ddos-protection protocols] user@host# edit dhcpv4
配置 DHCPv4 聚合监管器的最大流量速率(以每秒数据包数 [pps] 为单位);也就是说,用于所有 DHCPv4 数据包的组合。
注意:您可以使用该
bandwidth
选项更改流量速率。虽然术语带宽通常是指每秒比特数 (bps),但此功能的选项bandwidth
表示每秒数据包数 (pps) 值。[edit system ddos-protection protocols dhcpv4] user@host# set aggregate bandwidth 669
配置 DHCPv4 聚合监管器的最大突发大小(数据包数)。
[edit system ddos-protection protocols dhcpv4] user@host# set aggregate burst 6000
配置 DHCPv4 监管器用于发现数据包的最大流量速率(以 pps 为单位)。
[edit system ddos-protection protocols dhcpv4] user@host# set discover bandwidth 100
减少违反 DHCPv4 发现监管器的恢复时间。
[edit system ddos-protection protocols dhcpv4] user@host# set discover recover-time 200
配置 DHCPv4 发现监管器的最大突发大小(数据包数)。
[edit system ddos-protection protocols dhcpv4] user@host# set discover burst 300
提高 DHCPv4 产品/服务数据包的优先级。
[edit system ddos-protection protocols dhcpv4] user@host# set offer priority medium
防止报价数据包包含在聚合带宽 (pps) 中;也就是说,提供数据包不会对组合的 DHCPv4 流量产生影响,以确定是否超过了聚合带宽 (PPS)。但是,产品/服务数据包仍包含在流量速率统计信息中。
[edit system ddos-protection protocols dhcpv4] user@host# set offer bypass-aggregate
减少插槽 1 中 MPC 或 FPC5 上的 DHCPv4 提供监管器声明违规之前允许的带宽 (pps) 和突发大小(数据包)。
[edit system ddos-protection protocols dhcpv4] user@host# set offer fpc 1 bandwidth-scale 80 user@host# set offer fpc 1 burst-scale 75
配置 PPPoE 聚合监管器的最大流量速率,即所有 PPPoE 数据包的组合。
[edit system ddos-protection protocols dhcpv4] user@host# up [edit system ddos-protection protocols] user@host# set pppoe aggregate bandwidth 800
为所有 DDoS 协议处理事件配置跟踪。
[edit system ddos-protection traceoptions] user@host# set file ddos-log user@host# set file size 10m user@host# set flag all
结果
在配置模式下,输入 show ddos-protection
命令确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明以进行更正。
[edit system] user@host# show ddos-protection traceoptions { file ddos-trace size 10m; flag all; } protocols { pppoe { aggregate { bandwidth 800; } } dhcpv4 { aggregate { bandwidth 669; burst 6000; } discover { bandwidth 100; burst 300; recover-time 200; } offer { priority medium; fpc 1 { bandwidth-scale 80; burst-scale 75; } bypass-aggregate; } } }
如果完成设备配置,请从配置模式输入 commit
。
验证
要确认 DDoS 防护配置是否正常工作,请执行以下任务:
验证 DHCPv4 DDoS 防护配置和操作
目的
验证 DHCPv4 聚合和协议监管器值是否已从默认值更改。随着 DHCPv4 和 PPPoE 流量的流动,验证监管器是否正常工作。您可以输入命令来显示您感兴趣的各个监管器(如此处所示),也可以输入命令以 show ddos-protection protocols dhcpv4
显示所有 DHCPv4 数据包类型的此信息。
行动
在操作模式下,输入 show ddos-protection protocols dhcpv4 aggregate
命令。
user@host> show ddos-protection protocols dhcpv4 aggregate Protocol Group: DHCPv4 Packet type: aggregate (aggregate for all DHCPv4 traffic) Aggregate policer configuration: Bandwidth: 669 pps Burst: 6000 packets Priority: medium Recover time: 300 seconds Enabled: Yes System-wide information: Aggregate bandwidth is no longer being violated No. of FPCs currently receiving excess traffic: 0 No. of FPCs that have received excess traffic: 1 Violation first detected at: 2011-03-10 06:27:47 PST Violation last seen at: 2011-03-10 06:28:57 PST Duration of violation: 00:01:10 Number of violations: 1 Received: 71064 Arrival rate: 0 pps Dropped: 23115 Max arrival rate: 1000 pps Routing Engine information: Bandwidth: 669 pps, Burst: 6000 packets, enabled Aggregate policer is never violated Received: 36130 Arrival rate: 0 pps Dropped: 0 Max arrival rate: 671 pps Dropped by aggregate policer: 0 FPC slot 1 information: Bandwidth: 100% (669 pps), Burst: 100% (5000 packets), enabled Aggregate policer is no longer being violated Violation first detected at: 2011-03-10 06:27:48 PST Violation last seen at: 2011-03-10 06:28:58 PST Duration of violation: 00:01:10 Number of violations: 1 Received: 71064 Arrival rate: 0 pps Dropped: 34934 Max arrival rate: 1000 pps Dropped by individual policers: 11819 Dropped by aggregate policer: 23115
在操作模式下,输入 show ddos-protection protocols dhcpv4 discover
命令。
user@host> show ddos-protection protocols dhcpv4 discover Protocol Group: DHCPv4 Packet type: discover (DHCPv4 DHCPDISCOVER) Individual policer configuration: Bandwidth: 100 pps Burst: 300 packets Priority: low Recover time: 200 seconds Enabled: Yes Bypass aggregate: No System-wide information: Bandwidth is no longer being violated No. of FPCs currently receiving excess traffic: 0 No. of FPCs that have received excess traffic: 1 Violation first detected at: 2011-03-10 06:28:34 PST Violation last seen at: 2011-03-10 06:28:55 PST Duration of violation: 00:00:21 Number of violations: 1 Received: 47949 Arrival rate: 0 pps Dropped: 11819 Max arrival rate: 671 pps Routing Engine information: Bandwidth: 100 pps, Burst: 300 packets, enabled Policer is never violated Received: 36130 Arrival rate: 0 pps Dropped: 0 Max arrival rate: 0 pps Dropped by aggregate policer: 0 FPC slot 1 information: Bandwidth: 100% (100 pps), Burst: 100% (300 packets), enabled Policer is no longer being violated Violation first detected at: 2011-03-10 06:28:35 PST Violation last seen at: 2011-03-10 06:28:55 PST Duration of violation: 00:00:20 Number of violations: 1 Received: 47949 Arrival rate: 0 pps Dropped: 11819 Max arrival rate: 671 pps Dropped by this policer: 11819 Dropped by aggregate policer: 0
在操作模式下,输入 show ddos-protection protocols dhcpv4 offer
命令。
user@host> show ddos-protection protocols dhcpv4 offer Protocol Group: DHCPv4 Packet type: offer (DHCPv4 DHCPOFFER) Individual policer configuration: Bandwidth: 1000 pps Burst: 1000 packets Priority: medium Recover time: 300 seconds Enabled: Yes Bypass aggregate: Yes System-wide information: Bandwidth is never violated Received: 0 Arrival rate: 0 pps Dropped: 0 Max arrival rate: 0 pps Routing Engine information: Policer is never violated Received: 0 Arrival rate: 0 pps Dropped: 0 Max arrival rate: 0 pps Dropped by aggregate policer: 0 FPC slot 1 information: Bandwidth: 80% (800 pps), Burst: 75% (750 packets), enabled Policer is never violated Received: 0 Arrival rate: 0 pps Dropped: 0 Max arrival rate: 0 pps Dropped by aggregate policer: 0
意义
这些命令的输出分别列出了 DHCPv4 聚合、发现和提供监管器的监管器配置和流量统计信息。
Aggregate policer configuration
第一个输出示例中的部分以及Individual policer configuration
第二个和第三个输出示例中的部分列出了带宽、突发、优先级、恢复时间和旁路聚合的配置值。
该 System-wide information
部分显示所有线卡和路由引擎上记录的监管器的所有 DHCPv4 流量统计信息和违规总数。该 Routing engine information
部分显示在路由引擎上记录的监管器的流量统计信息和违规情况。该 FPC slot 1 information
部分显示仅在插槽 1 中的线卡上记录的监管器的流量统计信息和违规情况。
此示例中聚合监管器的输出显示以下信息:
该
System-wide information
部分显示通过所有线卡和路由引擎接收了 71,064 个所有类型的 DHCPv4 数据包。该部分显示带有时间戳的单个冲突,以及线卡上的聚合监管器丢弃了 23,115 个此类数据包。该
FPC slot 1 information
部分显示此线卡已接收所有 71,064 个 DHCPv4 数据包,但其聚合监管器遇到违规并丢弃了另一部分中显示的 23,115 个数据包。线卡单个监管器额外丢弃了 11,819 个数据包。该
Routing Engine information
部分显示剩余的 36,130 个数据包全部到达路由引擎,并且其聚合监管器未丢弃其他数据包。线卡上接收和丢弃的 DHCPv4 数据包数 [71,064 - (23,115 + 11,819)] 与路由引擎接收的数量之差。情况可能并非总是如此,因为数据包可以在多个线卡上接收和丢弃。在此示例中,只有插槽 1 中的线卡接收了任何 DHCPv4 数据包。
此示例中 DHCPv4 发现数据包监管器的输出显示以下信息:
该
System-wide information
部分显示通过所有线卡和路由引擎接收了 47,949 个 DHCPv4 发现数据包。该部分显示一个带有时间戳的冲突,以及线卡上的聚合监管器丢弃了 11,819 个此类数据包。该
FPC slot 1 information
部分显示此线卡接收了所有 47,949 个 DHCPv4 发现数据包,但其各个监管器遇到违规并丢弃了另一部分中显示的 11,819 个数据包。该
Routing Engine information
部分显示只有 36,130 个 DHCPv4 发现数据包到达路由引擎,并且没有丢弃其他数据包。在线卡上接收和丢弃的 DHCPv4 发现数据包数量之差 (47,949 - 11,819) 与路由引擎接收的数量相匹配。情况可能并非总是如此,因为数据包可以在多个线卡上接收和丢弃。在此示例中,只有插槽 1 中的线卡接收了任何 DHCPv4 发现数据包。
此示例中 DHCPv4 提供数据包监管器的输出显示以下信息:
这个个人监管器从未在任何地点被侵犯过。
任何位置均未收到 DHCPv4 优惠数据包。
验证 PPPoE DDoS 配置
目的
验证 PPPoE 监管器值是否已从默认值更改。
行动
在操作模式下,输入 show ddos-protection protocols pppoe parameters brief
命令。
user@host> show ddos-protection protocols pppoe parameters brief Number of policers modified: 1 Protocol Packet Bandwidth Burst Priority Recover Policer Bypass FPC group type (pps) (pkts) time(sec) enabled aggr. mod pppoe aggregate 800* 2000 medium 300 yes -- no pppoe padi 500 500 low 300 yes no no pppoe pado 0 0 low 300 yes no no pppoe padr 500 500 medium 300 yes no no pppoe pads 0 0 low 300 yes no no pppoe padt 1000 1000 high 300 yes no no pppoe padm 0 0 low 300 yes no no pppoe padn 0 0 low 300 yes no no
在操作模式下,输入 show ddos-protection protocols pppoe padi
命令,并同时输入命令 padr
。
user@host> show ddos-protection protocols pppoe padi Protocol Group: PPPoE Packet type: padi (PPPoE PADI) Individual policer configuration: Bandwidth: 500 pps Burst: 500 packets Priority: low Recover time: 300 seconds Enabled: Yes Bypass aggregate: No System-wide information: Bandwidth for this packet type is being violated! Number of slots currently receiving excess traffic: 1 Number of slots that have received excess traffic: 1 Violation first detected at: 2011-03-09 11:26:33 PST Violation last seen at: 2011-03-10 12:03:44 PST Duration of violation: 1d 00:37 Number of violations: 1 Received: 704832908 Arrival rate: 8000 pps Dropped: 660788548 Max arrival rate: 8008 pps Routing Engine information: Bandwidth: 500 pps, Burst: 500 packets, enabled Policer is never violated Received: 39950330 Arrival rate: 298 pps Dropped: 0 Max arrival rate: 503 pps Dropped by aggregate policer: 0 FPC slot 3 information: Bandwidth: 100% (500 pps), Burst: 100% (500 packets), enabled Policer is currently being violated! Violation first detected at: 2011-03-09 11:26:35 PST Violation last seen at: 2011-03-10 12:03:44 PST Duration of violation: 1d 00:37 Number of violations: 1 Received: 704832908 Arrival rate: 8000 pps Dropped: 664882578 Max arrival rate: 8008 pps Dropped by this policer: 660788548 Dropped by aggregate policer: 4094030
user@host> show ddos-protection protocols pppoe padr Protocol Group: PPPoE Packet type: padr (PPPoE PADR) Individual policer configuration: Bandwidth: 500 pps Burst: 500 packets Priority: medium Recover time: 300 seconds Enabled: Yes Bypass aggregate: No System-wide information: Bandwidth for this packet type is being violated! Number of slots currently receiving excess traffic: 1 Number of slots that have received excess traffic: 1 Violation first detected at: 2011-03-10 06:21:17 PST Violation last seen at: 2011-03-10 12:04:14 PST Duration of violation: 05:42:57 Number of violations: 1 Received: 494663595 Arrival rate: 24038 pps Dropped: 484375900 Max arrival rate: 24062 pps Routing Engine information: Bandwidth: 500 pps, Burst: 500 packets, enabled Policer is never violated Received: 10287695 Arrival rate: 500 pps Dropped: 0 Max arrival rate: 502 pps Dropped by aggregate policer: 0 FPC slot 1 information: Bandwidth: 100% (500 pps), Burst: 100% (500 packets), enabled Policer is currently being violated! Violation first detected at: 2011-03-10 06:21:18 PST Violation last seen at: 2011-03-10 12:04:14 PST Duration of violation: 05:42:56 Number of violations: 1 Received: 494663595 Arrival rate: 24038 pps Dropped: 484375900 Max arrival rate: 24062 pps Dropped by this policer: 484375900 Dropped by aggregate policer: 0
意义
命令 show ddos-protection protocols pppoe parameters brief
输出列出了每个单独的 PPPoE 数据包监管器和 PPPoE 聚合监管器的当前配置。对默认值的更改由修改后的值旁边的星号表示。在配置步骤中对 PPPoE 监管器所做的唯一更改是聚合监管器带宽限制 (pps);此更改在输出中得到确认。除了配置值之外,命令输出还会报告监管器是否已被禁用、它是否绕过聚合监管器(意味着聚合监管器评估时不包括该数据包类型的流量),以及监管器是否已针对一个或多个线卡进行修改。
此示例中命令的 show ddos-protection protocols pppoe padi
输出显示以下信息:
该
System-wide information
部分显示通过所有线卡和路由引擎接收了 704,832,908 个 PPPoE PADI 数据包。该部分显示了仍在进行的线卡上的单个违规,并且线卡上的聚合监管器丢弃了 660,788,548 个 PADI 数据包。该
FPC slot 3 information
部分显示此线卡已收到所有 704,832,908 个 PADI 数据包。其单个监管器丢弃了其中的 660,788,548 个数据包,其聚合监管器丢弃了其他 4,094,030 个数据包。侵犯行为仍在继续,持续了一天多。该
Routing Engine information
部分显示只有 39,950,330 个 PADI 数据包到达路由引擎,并且没有丢弃其他数据包。线卡上接收和丢弃的 PADI 数据包数量 [704,832,908 - (660,788,548 + 4,094030)] 与路由引擎接收的数量之差一致。情况可能并非总是如此,因为数据包可以在多个线卡上接收和丢弃。在此示例中,只有插槽 3 中的线卡接收了任何 PADI 数据包。
此示例中命令的 show ddos-protection protocols pppoe padr
输出显示以下信息:
该
System-wide information
部分显示通过所有线卡和路由引擎接收了 494,663,595 个 PPPoE PADR 数据包。该部分显示仍在进行的线卡上的单个违规,并且线卡上的监管器丢弃了 484,375,900 个 PADR 数据包。该
FPC slot 1 information
部分显示此线卡已接收所有 494,663,595 个 PADR 数据包。其单个监管器丢弃了484,375,900个数据包。违规行为仍在继续,持续了五个多小时。该
Routing Engine information
部分显示只有 10,287,695 个 PADR 数据包到达路由引擎,并且没有丢弃其他数据包。线卡上接收和丢弃的 PADR 数据包数之差 (494,663,595 - 484,375,900) 与路由引擎接收的数量一致。情况可能并非总是如此,因为数据包可以在多个线卡上接收和丢弃。在此示例中,只有插槽 1 中的线卡接收了任何 PADR 数据包。
如果将接收到的所有 PADI 数据包显示在一个线卡上,将所有 PADR 数据包显示在另一个线卡上,则此方案是不现实的。此方案的目的是说明如何报告各个线卡的监管器违规。