设置和使用流检测
流检测监控控制流量的流量是否违反每个流允许的带宽,并管理标识为罪魁祸首的流量。抑制流量是默认管理选项。流量检测通常作为整体控制平面 DDoS 保护策略的一部分实施,但它对于排除故障和了解新配置中的流量也很有用。默认情况量检测处于禁用状态。
增强型订阅者管理支持自 Junos OS 17.3R1 版起控制平面 DDoS 保护的流量检测。
在开始之前,请确保您已为您的网络适当配置控制平面 DDoS 保护。有关 DDoS 防护的详细信息,请参阅 配置控制平面 DDoS 防护 。
配置可疑流的检测周期
DDoS 保护流量检测基于粗略的测试,将受监控的流量视为可疑流量,该流量超过其允许的带宽,该测试排除了明显良好的流量。仔细检查可疑流需要流在一段时间内保持违反带宽状态,然后流检测才会将其视为必须采取措施的罪魁祸首流。您可以包含语句来 flow-detect-time
配置此检测周期的持续时间,也可以依赖默认的 3 秒周期。
增强型订阅者管理自 Junos OS 17.3R1 版起支持用于 DDoS 保护的流量检测。
建议对检测周期使用默认值。
要指定在流检测将其声明为罪魁祸首流之前流必须违规多长时间,请执行以下操作:
设置检测周期。
[edit system ddos-protection protocols protocol-group packet-type] user@host# set flow-detect-time seconds
例如,包含以下语句,要求 DHCPv4 发现数据包流在 30 秒内违反其允许的带宽,然后才能将其视为罪魁祸首流:
[edit system ddos-protection protocols dhcpv4 discover] user@host# set flow-detect-time 30
配置罪魁祸首流的恢复期
DDoS 保护流检测将可疑流识别为罪魁祸首流后,必须确定该流何时不再对路由器构成威胁。当流量流速率回落到允许的带宽内时,该速率必须在带宽内保持一段时间的恢复时间。只有这样,流检测才会认为流是正常的,并停止针对罪魁祸首流制定的流量处理操作。您可以包含语句来 flow-recover-time
配置此恢复期的持续时间,也可以依赖默认的 60 秒。
要指定在流量检测将其声明为正常流之前发生冲突后,流必须在其允许的带宽内停留多长时间,请执行以下操作:
设置恢复期限。
[edit system ddos-protection protocols protocol-group packet-type] user@host# set flow-recover-time seconds
例如,包含以下语句以要求 DHCPv4 发现数据包流恢复五分钟(300 秒):
[edit system ddos-protection protocols dhcpv4 discover] user@host# set flow-recover-time 300
配置罪魁祸首流的超时期限
当 DDoS 保护流检测将可疑流识别为罪魁祸首流时,默认情况下,只要流量超过带宽限制,它就会抑制该流的流量。抑制将停止,当流自上次冲突以来的时间大于恢复期时,流将从流表中删除。
或者,您可以包含语句以 timeout-active-flows
启用流检测,以在可配置的超时期限内抑制罪魁祸首流。当超时期限到期时,抑制将停止,流将从流表中删除。您可以包含语句来 flow-timeout-time
配置超时期限的持续时间,也可以依赖默认超时 300 秒。
要启用流检测以在超时期限内抑制罪魁祸首流,请执行以下操作:
例如,包括以下语句以在 10 分钟(600 秒)内抑制 DHCPv4 发现数据包流:
[edit system ddos-protection protocols dhcpv4 discover] user@host# set timeout-active-flows user@host# setflow-timeout-time 600
配置流检测在每个流聚合级别的运行方式
启用流检测后,默认情况下会监控所有协议组和数据包类型的流量。发生监管器违规时,将检查每个可疑流,以确定是否是导致违规的罪魁祸首流。您可以包含该语句来 flow-level-detection
配置流检测在数据包类型(订阅者、逻辑接口或物理接口)的每个流聚合级别的工作方式。
数据包级别的流检测模式必须是 或on
,automatic
流检测才能在各个流聚合级别运行。
与协议组和数据包级别的流检测一样,流聚合级别的流检测支持三种模式:
自动 — 当违反控制平面 DDoS 保护监管器时,仅监控此流聚合级别的流量是否存在可疑行为,直到流量检测确定可疑流量不在此聚合级别,而是必须处于较粗的聚合级别。随后不会再次搜索此级别的流量,直到不再违反较粗级别的监管器。
off - 从不在此流量聚合级别监控流量。
on — 如果将数据包级别的流量检测配置为
on
。无论是否在此级别识别出可疑流量,此级别的监视都会继续进行。但是,如果数据包级别模式为automatic
,则监管器必须违规,才能在此级别检查信息流。
首先在最细粒度(最低带宽)流聚合级别(订阅者)检查流。如果在订阅者级别找不到可疑流,则会在逻辑接口级别检查流。最后,如果在那里找不到嫌疑人,则会在物理接口级别检查流量;除非配置错误,否则必须在此级别找到罪魁祸首。
要配置流检测在每个流聚合级别的运行方式,请执行以下操作:
例如,包括以下语句以将流检测配置为仅在违反监管器时在订阅者级别检查可疑流量,从不在逻辑接口级别检查,并始终在物理接口级别检查:
[edit system ddos-protection protocols dhcpv4 discover] user@host# edit flow-level-detection user@host# set subscriber automatic user@host# set logical-interface off user@host# set physical-interface on
配置如何在每个流聚合级别控制罪魁祸首流中的流量
启用流检测后,默认情况下,对于所有协议组和数据包类型以及所有流聚合级别,都会丢弃罪魁祸首流中的所有流量。您可以包含用于 flow-level-control
配置流检测的语句,以便针对各个数据包类型以不同的方式控制流量。您必须在特定流聚合级别指定控制行为:订阅者、逻辑接口或物理接口。
您可以将流检测流控制配置为对数据包类型采用以下模式之一:
丢弃所有流量 - 将流控制配置为在您认为违反带宽限制的流量是恶意流量时丢弃所有流量。此行为是所有流聚合级别的默认设置。
监管流量 — 配置流控制以监管违反带宽的流量,强制速率低于带宽限制。在这种情况量控制充当简单的监管器。
保留所有流量 - 配置流量控制以保留所有流量,无论流量是违反带宽限制还是低于带宽限制。当您需要调试网络的流量时,此模式非常有用。
流量控制模式使您在管理网络中的控制流量方面具有极大的灵活性。例如,如果您只想确保所有聚合级别的数据包类型的控制流都在其限制范围内,则可以配置流控制以监管每个级别的流量。或者,如果要检测罪魁祸首流并在一个级别抑制它们,但仅在另一个级别将流量限制到允许的带宽,则可以将一个级别配置为丢弃所有流量,将另一个级别配置为监管流量。
要配置流检测如何控制罪魁祸首流中的流量,请执行以下操作:
例如,要将流检测配置为将物理接口的所有流量保持在配置的带宽下,但在订阅者级别检测并抑制罪魁祸首流,请执行以下操作:
[edit system ddos-protection protocols dhcpv4 discover] user@host# edit flow-level-control user@host# set subscriber drop user@host# set physical-interface police user@host# edit flow-level-detection user@host# set logical-interface off
在此示例中,您不关心逻辑接口,因此关闭了该级别的流检测。由于流检测处于禁用状态,因此该级别的流控制状态无关紧要。
为所有协议组和数据包类型启用流检测
默认情况下,对所有协议组和数据包类型禁用流检测。您必须通过包含 flow-detection
语句来全局启用流检测。如果随后禁用单个数据包类型的流检测,则不能使用此全局语句覆盖所有此类单个配置;您必须在数据包配置级别重新启用检测。
要全局启用流量检测,请执行以下操作:
设置流量检测。
[edit system ddos-protection global] user@host# set flow-detection
您无法为以下组和数据包类型全局启用流检测,因为它们没有典型的以太网、IP 或 IPv6 标头:
协议组:
fab-probe
、frame-relay
、inline-ka
、isis
pfe-alive
pos
jfm
mlp
和 。services
数据包类型:
unclassified
在ip-options
协议组中。
为所有协议组和数据包类型配置罪魁祸首流报告速率
当流量检测确认它在线卡上跟踪的可疑流量确实是罪魁祸首时,它会向路由引擎发送报告。流检测还会报告随后恢复到允许带宽内或被清除的每个罪魁祸首流。您可以包含语句来 flow-report-rate
限制每个线卡上每秒可以报告的流数。默认情况下,将报告所有协议组和数据包类型的罪魁祸首流事件。当报告的流量过多时,路由引擎流的主机路径上可能会出现拥塞。
要全局配置罪魁祸首流的最大报告速率,请执行以下操作:
设置报告费率。
[edit system ddos-protection global] user@host# set flow-report-rate rate
为所有协议组和数据包类型配置违规报告率
默认情况检测会向路由引擎报告所有协议组和数据包类型的 FPC 带宽冲突。您可以包含该 violation-report-rate
语句来限制来自线卡的每秒流量检测报告的违规次数,从而减少路由器上的负载。我们建议您配置适合您的网络的报告速率,而不是依赖默认值。
要全局配置最大带宽冲突报告速率,请执行以下操作:
设置报告费率。
[edit system ddos-protection global] user@host# set violation-report-rate rate
禁用数据包类型的罪魁祸首流事件的自动日志记录
默认情况检测会自动记录与可疑流(违规报告)和所有协议组和数据包类型的罪魁祸首流事件(流报告)关联的监管器违规事件。您可以包含该no-flow-logging
语句以防止自动记录单个数据包类型的罪魁祸首流事件。在层次结构级别使用[edit system ddos-protection global
语句禁用disable-logging
可疑流冲突事件的自动日志记录。
要禁用数据包类型的自动罪魁祸首流事件日志记录:
禁用日志记录。
[edit system ddos-protection protocols protocol-group packet-type] user@host# set no-flow-logging
要禁用数据包类型的自动可疑流冲突事件日志记录,请执行以下操作:
禁用日志记录。
[edit system ddos-protection protocols protocol-group packet-type] user@host# set disable-logging
例如,包括以下语句以禁用 DHCPv4 发现数据包流的自动日志记录:
[edit system ddos-protection protocols dhcpv4 discover] user@host# set no-flow-logging
在每个流聚合级别配置最大流带宽
您可以包含语句以 flow-level-bandwidth
配置各个数据包类型的流量的最大可接受带宽。您必须指定特定流聚合级别的带宽行为:订阅者、逻辑接口或物理接口。我们建议您调整网络的带宽值,而不是依赖默认值。
要为每个流聚合级别的流量配置最大带宽,请执行以下操作:
例如,要将流带宽在订阅者级别配置为 1000 pps,在逻辑接口级别配置为 5000 pps,在物理接口级别配置为 30,000:
[edit system ddos-protection protocols dhcpv4 discover] user@host# edit flow-level-bandwidth user@host# set subscriber 1000 user@host# set logical-interface 5000 user@host# set physical-interface 30000
验证和管理流检测
目的
在控制平面 DDoS 防护配置中查看或清除有关流检测的信息。
增强型订阅者管理支持自 Junos OS 17.3R1 版起控制平面 DDoS 保护的流量检测。
行动
要显示流检测的配置信息,请执行以下操作:
user@host> show ddos-protection protocols flow-detection
要显示有关流检测识别的罪魁祸首流的信息,包括检测和跟踪的流数、流的源地址、到达接口和速率,请执行以下操作:
user@host> show ddos-protection protocols culprit-flows
要清除所有协议组中所有数据包类型的罪魁祸首流,请执行以下操作:
user@host> clear ddos-protection protocols culprit-flows
要清除特定协议组中所有数据包类型的罪魁祸首流,请执行以下操作:
user@host> clear ddos-protection protocols protocol-group culprit-flows
更改历史记录表
功能支持由您使用的平台和版本决定。使用 功能资源管理器 确定您的平台是否支持某个功能。