保护控制平面
了解如何保护瞻博网络MX204、MX301、MX304、MX10004 或 MX10008 路由器上的控制平面。
在 MX 系列路由器上,控制平面协议主要在路由引擎 CPU 上运行。在模块化机箱中,某些分布式协议(例如,BFD 和 LACP)也会在线卡 CPU 上运行。发往路由器 IP 地址的数据包(包括管理平面流量和异常流量)通过主机路径从数据包转发引擎 ASIC 发送到 RE。
下图比较了早期(基于内核的)平台中的主机路径实现和当前 MX 平台中使用的较新高级转发工具包 (AFT) 架构。
要保护控制平面,请使用以下机制在流量到达 RE 之前在 ASIC 级别过滤或丢弃流量:
lo0.0 上的防火墙过滤器
对 lo0.0 每个地址族使用防火墙过滤器,这会自动复制到所有 PFE ASIC。
主机路径中的数据包分类
在入口处理期间,PFE 会对硬件中的数据包进行分类:
- 中转流量 — 通过数据平面转发(本地 PFE、交换矩阵或背对背)
- 异常流量 — 发送到主机路径进行控制平面处理(例如,发往路由器 IP、TTL = 1、IP 选项或校验和错误的数据包)
入站流量的关键保护点
数据包在到达 RE 之前要经过多个过滤阶段。最关键的控制措施是环路防火墙过滤器。
环路防火墙过滤器
要在不影响中转流量的情况下为主机路径异常流量启用硬件早期丢包,请对 lo0.0 、 inet6和 mpls 协议家族的inet接口应用防火墙过滤器。Junos OS 会自动将以下过滤器分发到所有 PFE ASIC:
[edit interfaces]
lo0 {
unit 0 {
family inet {
filter {
input RE_PROTECT_IN;
}
}
family inet6 {
filter {
input RE_PROTECT_INV6;
}
}
}
}
优秀实践
使用环路防火墙过滤器配置控制平面保护时,请遵循以下准则:
- 在每个
lo0设备上为所有相关协议家族配置输入防火墙过滤器。
- 为每个协议定义单独的术语(例如,BGP、OSPF、SSH、SNMP 和 ICMP)。
- 对于每个协议,包括:
- 可信来源和所需端口的 允许 术语
- 所有其他流量的 拒绝 条款
将动态前缀列表与 apply-path
-
用于
apply-path创建自动反映活动配置的前缀列表。这种方法简化了维护,并确保过滤器与配置更改保持同步。set policy-options prefix-list ALL-BGP apply-path "protocols bgp group <*> neighbor <*>" set policy-options prefix-list ALL-BGP-RI apply-path "routing-instances <*> protocols bgp group <*> neighbor <*>" set policy-options prefix-list BGPV6 apply-path "protocols bgp group <*> neighbor <*:*>" set policy-options prefix-list BGPV6-RI apply-path "routing-instances <*> protocols bgp group <*> neighbor <*:*>" set policy-options prefix-list DNS apply-path "system name-server <*>" set policy-options prefix-list NTP apply-path "system ntp server <*>" set policy-options prefix-list TACPLUS apply-path "system tacplus-server <*>" set policy-options prefix-list LO0 apply-path "interfaces lo0 unit 0 family inet address <*>" set policy-options prefix-list LO0V6 apply-path "interfaces lo0 unit 0 family inet6 address <*:*>"
BGP 过滤器术语示例:
[edit policy-options] prefix-list BGP { apply-path "protocols bgp group <*> neighbor <*>"; } prefix-list BGP-VRF { apply-path "routing-instances <*> protocols bgp group <*> neighbor <*>"; } [...] term BGP-ACCEPT { from { source-prefix-list { BGP; BGP-VRF; } protocol tcp; port 179; } then { count BGP-ACCEPT; accept; } } term BGP-DROP { from { protocol tcp; port 179; } then { count BGP-DROP; discard; } }
用代替discardreject
-
使用
discard(静默丢弃)可避免生成可被扫描程序利用的响应。
启用计数器
-
为每个术语配置计数器,以支持通过 SNMP 或遥测进行监控。
将监管器应用于开放协议
-
用于保护控制平面资源的速率限制协议(例如 ICMP):
term ICMP { from { protocol icmp; icmp-type [ echo-request echo-reply unreachable time-exceeded ]; } then { policer RE-50M; accept; } } term ICMP-DROP { from { protocol icmp; } then { count ICMP-DROP; discard; } }
添加显式默认拒绝条款
-
丢弃指向路由器地址的未经授权的流量。
-
添加系统日志操作以进行进一步的安全分析。
-
丢弃所有剩余的异常流量。
[edit policy-options] prefix-list L00 { apply-path "interfaces lo0 unit 0 family inet address <*>"; } [...] term RJCT-UNTRUST { from { destination-prefix-list { L00; } } then { count UNTRUST; syslog; discard; } } term RJCT-PUNTED-EXCEPTIONS { then { count ALL-DROP; discard; } }
为不受信任的流量配置日志记录
-
创建专用系统日志文件来捕获控制面丢弃,以便进行审计和故障排除:
[edit] system { syslog { file control-plane-drops { daemon info; explicit-priority; archive { size 10m; files 10; world-readable; } } } } firewall { family inet { filter RE-PROTECT { term DEFAULT-DENY { then { count CP-DROP-V4; log; discard; } } } } } interfaces { lo0 { unit 0 { family inet { filter { input RE-PROTECT; } } } } }
您可以使用流式遥测技术近乎实时地监控防火墙术语计数器和监管器计数器。订阅传感器路径 /junos/system/linecard/firewall 并将收集间隔设置为 30 秒。
DDOS 防御
Junos DDoS 防御(控制平面 DDoS 防御)是一种基于软件的分布式、硬件加速机制,可保护路由引擎 (RE) 免受过多异常流量的影响。系统在所有线卡的 数据包转发引擎 (PFE) 中运行,在转发管道到达 RE CPU 之前,在转发管道早期丢弃恶意或过多的流量。
传统的控制平面监管 (CoPP) 依赖于基于 CPU 的单点速率限制,而 Junos DDoS 防御采用完全分布式设计。每个 PFE ASIC、线卡 CPU 和 RE CPU 都会强制实施自己的一组硬件或软件监管器,这些监管器与 RE 级别策略一致。无论系统中有多少灵活 PIC 集中器 (FPC),此架构都能提供线速保护。
Junos DDoS 防御采用三阶段模型:
- 第 1 阶段(数据包转发引擎硬件) — 应用硬件速率限制器以丢弃或限制入口管道的流量。
- 第 2 阶段(线卡 CPU) — 将软件监管器应用于传送到线卡 CPU 的流量。
- 第 3 阶段(路由引擎 CPU) — 应用软件监管器来保护路由引擎 CPU。
这种分层方法可确保在整个平台上为控制平面资源提供可扩展且有效的保护。
Junos DDoS 防御支持两种类型的监管器:
- 聚合 (AG) 监管器 — 为每个协议应用速率限制(例如,所有 BGP 流量)。
- 特定数据包 (SP) 监管器 — 对协议中的各个数据包类型应用细粒度速率限制(例如,BGP 开放消息与 BGP 更新消息)。
以下 DHCP 协议保护示例说明了这些监管器之间的交互。
默认 DDoS 监管器使用保守阈值来降低误报风险。请根据网络要求按需调整这些值:
- 带宽 — 每秒数据包数 (PPS)
- 突发大小 — 突发中允许的数据包数
- 违规处理 — 事件会生成系统日志消息
在以下层次结构下配置特定于协议的监管器:
show ddos-protection protocols dhcpv4 parameters brief Packet types: 20, Modified: 0 * = User configured value Protocol Packet Bandwidth Burst Priority Recover Policer Bypass FPC group type (pps) (pkts) time(sec) enabled aggr. mod dhcpv4 aggregate 5000 5000 -- 300 yes -- no dhcpv4 unclass.. 300 150 Low 300 yes no no dhcpv4 discover 500 500 Low 300 yes no no dhcpv4 offer 1000 1000 Low 300 yes no no dhcpv4 request 1000 1000 Medium 300 yes no no dhcpv4 decline 500 500 Low 300 yes no no dhcpv4 ack 500 500 Medium 300 yes no no dhcpv4 nak 500 500 Low 300 yes no no dhcpv4 release 2000 2000 High 300 yes no no dhcpv4 inform 500 500 Low 300 yes no no dhcpv4 renew 2000 2000 High 300 yes no no dhcpv4 forcerenew 2000 2000 High 300 yes no no dhcpv4 leasequery 2000 2000 High 300 yes no no dhcpv4 leaseuna.. 2000 2000 High 300 yes no no dhcpv4 leaseunk.. 2000 2000 High 300 yes no no dhcpv4 leaseact.. 2000 2000 High 300 yes no no dhcpv4 bootp 300 300 Low 300 yes no no dhcpv4 no-msgtype 1000 1000 Low 300 yes no no dhcpv4 bad-pack.. 0 0 Low 300 yes no no dhcpv4 rebind 2000 2000 High 300 yes no no
要监控 DDoS 防御统计信息,请运行以下命令:
show ddos-protection protocols dhcpv4 statistics brief Packet types: 20, Received traffic: 0, Currently violated: 0 Protocol Packet Received Dropped Rate Violation State group type (packets) (packets) (pps) counts dhcpv4 aggregate 0 0 0 0 ok dhcpv4 unclass.. 0 0 0 0 ok dhcpv4 discover 0 0 0 0 ok dhcpv4 offer 0 0 0 0 ok dhcpv4 request 0 0 0 0 ok dhcpv4 decline 0 0 0 0 ok dhcpv4 ack 0 0 0 0 ok dhcpv4 nak 0 0 0 0 ok dhcpv4 release 0 0 0 0 ok dhcpv4 inform 0 0 0 0 ok dhcpv4 renew 0 0 0 0 ok dhcpv4 forcerenew 0 0 0 0 ok dhcpv4 leasequery 0 0 0 0 ok dhcpv4 leaseuna.. 0 0 0 0 ok dhcpv4 leaseunk.. 0 0 0 0 ok dhcpv4 leaseact.. 0 0 0 0 ok dhcpv4 bootp 0 0 0 0 ok dhcpv4 no-msgtype 0 0 0 0 ok dhcpv4 bad-pack.. 0 0 0 0 ok dhcpv4 rebind 0 0 0 0 ok
您还可以通过订阅传感器路径,通过流式遥测监视 DDOS 防护统计信息: /junos/system/linecard/ddos。建议的间隔速率为 60 秒。
有关保护 MX 设备上的控制平面的详细信息,请参阅 安全性服务管理指南。