关于网络设备 CPU、pps 以及控制平面防护的理解
pps 是什么东西ppsPackets Per Second,每秒报文数(包速率)报文数数据包数量pps 限制的是单位时间内 CPU 需要处理的报文数量pps 和 kbps/Mbps 的区别pps:每秒多少个包看 CPU 压力kbps/Mbps:每秒多少比特看链路带宽CPU 怕 pps,链路怕 Mbps为什么小包攻击特别狠64 字节的小包1Mbps 就能够打出上万 pps带宽几乎不显眼CPU 已经废了CPU 是什么东西CPU (Central Processing Unit)是网络设备的”大脑“负责思考、判断、计算和维护网络状态而不是搬运业务流量如果把交换机/路由器当成一个人ASIC/转发芯片手和腿CPU大脑网络设备里的 CPU 和电脑有什么不同本质一样工作内容完全不同。电脑 CPU 主要干什么运行操作系统打开软件处理键盘、鼠标、程序逻辑网络设备 CPU 主要干什么运行网络操作系统NOS处理控制协议管理转发表维护设备状态网络设备 CPU ≠ 转发流量用的。CPU 在网络设备里具体干哪些活可以把 CPU 的工作分成四大类1. 协议处理最吃 CPU所有“需要判断和计算”的协议都要 CPU 处理ARP / ND我是谁对方是谁ICMP你是不是活着OSPF / RIP / BGP路由怎么选STP / LLDP拓扑关系是什么这些协议的特点是每一个控制报文都要 CPU 完整处理一遍。2. 表项维护非常关键CPU 负责维护各种“脑内地图”ARP 表MAC 表部分参与路由表邻居表会话状态然后再把最终结果下发给硬件转发芯片。硬件负责转发CPU 负责“算对转发规则”。3. 管理与运维所有你“登录设备”的行为本质上都是在用 CPUWeb 管理界面SSH / TelnetSNMP 轮询日志记录管理平面被打爆设备不是不能转发而是你已经管不了它了。4. 异常与安全处理异常报文错误报文未命中硬件转发表的报文需要上送 CPU 决策的报文都会消耗 CPU。CPU 最怕什么CPU 最怕的不是”一次很重的工作“而是”被不停地打断“。网络设备 CPU 的几个致命点处理每个报文都有固定开销报文越多中断越频繁上下文切换非常消耗时间所以大包、少量 → CPU 还能扛小包、海量 → CPU 很快被拖死这就是CPU 怕 pps不怕 MbpsCPU 忙死之后设备会发生什么当 CPU 被打满表现往往不是“立刻断网”而是OSPF / BGP 邻居频繁掉线ARP 学不全、解析慢SSH 登不上、Web 卡死日志延迟甚至丢失而业务转发可能一开始还在跑直到控制平面彻底崩掉。这也是为什么很多故障看起来“很诡异”。为什么一定要“保护 CPU”因为CPU 是不可横向扩展的ASIC 可以堆带宽可以加CPU 一挂设备就等于失去大脑控制平面防护CPP / CPU Protect的本质就是限制“敲大脑的频率”而不是限制“搬货的速度”。总结网络设备不是被流量”压死“的而是被不停打断”累死“的。保护 CPU 就等是保护整个网络的稳定性在网络设备中的”三个世界“数据平面Data Plane--搬运工负责普通业务流量转发用户上网、下载、视频主要靠ASIC/硬件芯片特点快但不聪明大多数普通业务流量不进 CPU控制平面(Control Plane)--大脑负责ARP、ICMP,OSPF/RIP/BGP,STP/LLDP,DHCP 相关设备管理(SSH,Telnet)全部靠CPU特点聪明但怕累所有控制类报文必须进 CPU管理平面(Management Plane)--运维通道负责web 管理、SNMP、日志、运维登录特点人与设备交互管理访问直接消耗 CPUCPU 在控制平面到底在干什么在网络设备中CPU 并不是负责”转发数据“的而是负责判断、计算和维护状态当报文进入控制平面时CPU 可能需要做的事情包括解析报文类型ARP / ICMP / 路由协议等查找或更新表项ARP 表、路由表、邻居表参与协议计算OSPF SPF、BGP 路由选择维护设备状态与邻居关系将必要的信息同步给硬件转发表这些操作都有一个共同特点每来一个包CPU 都要完整处理一遍CPU 处理报文的开销与报文大小关系不大却与报文数量高度相关最终表现为CPU 使用率飙升控制协议处理延迟路由、ARP、管理功能异常这也是为什么是 pps 而不是 Mbps,这才是控制平面防护的核心指标攻击者在攻击的时候为什么攻击”控制平面“呢如何进行防护呢攻击者都会打谁呢打控制平面--大脑因为数据平面主要由 ASIC 等专用硬件负责转发处理难以被异常流量直接耗尽而控制平面由通用 CPU 负责处理控制类报文更容易成为洪泛和异常报文的攻击目标。攻击方式通常是ARP 洪泛、ICMP 洪泛、路由协议异常、大量小包每一个包都需要 CPU 看一眼CPU 被拖死结果就是路由不更新、设备卡死、网络整体瘫痪控制平面防护到底“防”什么防“该让设备自己处理的报文被恶意或异常地处理得太多”他不管用户正常上网、业务流量带宽他只管谁在敲 CPU敲得有多频繁敲得合不合理cpu-protect 只是控制平面防护的一种实现真正稳定的网络不是转发得最快的而是“控制平面(大脑)永远不会被打死的”在网络架构中的三层结构1.核心层Core Layer排名最高作用核心层是网络的骨干部分负责高速、低延迟的数据传输它主要处理的是网络中数据的路由和交换。核心层设备通常具有极高的带宽和低延迟主要用于数据的快速传输和故障切换因此它位于网络架构的顶层优先级最高。特点传输速率和稳定性至关重要。2.汇聚层Distribution Layer排名第二作用汇聚层主要负责在接入层和核心层之间转发数据并为策略实施、流量控制、访问控制等提供功能。它充当了网络的桥梁处理不同接入设备和核心网络之间的流量并通常负责一些如路由、策略、负载均衡等功能。特点负责处理跨VLAN路由和策略执行相比接入层它的处理能力和功能较为复杂。3.接入层Access Layer排名第三最低作用接入层是网络中最底层的部分主要为终端用户设备提供网络接入。它直接连接用户设备并管理设备的接入控制、安全认证、流量管理等。接入层也负责实现对终端设备的管理和监控。特点主要面向用户网络的流量从此层开始功能相对较为简单。在网络设备中接入层防护速判表技术防什么防在哪一层核心指标cpu-protect控制报文洪泛控制平面ppsstorm-control广播/未知单播二层接口百分比/ppsport-security非法终端二层端口MAC 数量DHCP SnoopingDHCP 欺骗二/三层信任端口