1 引言

随着网络带宽需求的迅速增长以及芯片等技术的发展,IP 核心网转发处理能力得到了极大的提升。作为网络流量的承载节点,在互联网公网地址空间的场景下,现网设备经常会收到大量上送至 CPU 的报文攻击,若不加保护,往往可能由于大量非法报文的冲击造成控制平面协议、业务中断和 CPU 被挂死等问题。本文通过对某地市 IDC SR 至 CR 间控制平面协议的安全加固策略部署案例,给出城域网核心路由器上控制平面防攻击策略加固的建议。

 

图 1 IP 核心网控制面协议架构

 

2 IP 核心网控制平面协议部署

IP 城域网整个网络结构分为三层:核心层、汇聚层和接入层,其中核心层和汇聚层路由器分别称为 CR、BRAS/SR。每地市城域网核心层设置 2 台高性能路由器,设备型号主要包括华为 NE5000E 和阿卡 7950。汇聚层 BRAS/SR 设备采用 N*10G 电路双上联至 2 台市核心 CR,业务流量在两个方向上进行负载均担。河南联通每地市城域网各自构成单独私有 AS 域,每地市一个独立的 AS 域,现网各层次网络设备间涉及的控制面协议有 IGP(connected、static、ospf 、isis)、BGP、LDP 和 PIM 等。IGP 协议以 ospf 为例,主要用于设备的 loopback 地址和互联地址承载,不做业务路由承载。IBGP 协议用于城域网内 IPV4 和 VPNV4 用户路由承载。IP 核心网控制面协议架构如图 1 所示。

 

针对 IP 核心网中设备运行的各种业务涉及的协议进行分类,部署了相关安全策略加固。

 

3 IP 核心网安全加固策略

超高宽带时代 IP 核心网转发平面的处理能力急剧提升,但控制面基于设备 CPU 运行,处理能力的增长有限。攻击者一旦向 IP 核心网设备发起海量消息请求,将导致网络节点设备 CPU 无法实时处理消息,进而引发正常业务交互及内部处理流程阻塞。IP 网络的开放性在带来各种业务、管理维护便利性的同时也带来了巨大的安全隐患。因此,为保障相关控制协议和业务的正常运行,我们对 IP 核心网进行了各类安全加固策略部署。

 

3.1 IP 核心网控制平面防攻击安全加固机制

IP 核心网转发平面相对于控制平面来说,其处理能力近乎是无限的,因此转发面能够轻易地上送海量报文将控制面冲击过载。为防止过多的报文由转发面上送至控制面,在不影响正常业务运行的基础上可进行协议限速、动态 / 静态白名单、动态 / 静态黑名单等安全防御机制部署,如表 1 所示。

 

表 1 转发面和控制面间安全防御机制

 

 

通过上述抑制措施,可实现对高优先级和通过安全检测的正常业务放行,在保障网络可靠运行的前提下尽可能的提供高性能的业务处理能力。

 

3.1.1 路由协议认证校验

IP 城域网内节点繁多,组网复杂,设备型号多样化,目前现网运行的多种路由协议均支持安全认证,在设备间报文交互时,启用 IGP、BGP 等协议加密认证部署,采用 HASH 算法保证协议报文不被篡改,增强路由协议的安全性。

 

3.1.2 访问控制安全防御

访问控制列表 ACL(Access Control List)是由一系列允许和拒绝语句组成的有序规则列表,通过匹配报文的信息实现对报文的分类。ACL 是一个匹配工具,能够对报文和路由进行匹配。IP 核心网具备完善的 ACL 访问控制能力,基于 ACL,可以实现流量速率限制、黑白名单及用户自定义流匹配。

 

(1)流量速率限制,用来设置上送至设备 CPU 的报文分类限速规则,通过对不同协议报文设置带宽限制,降低报文相互影响,同时也可限制上送 CPU 报文的整体速率,当上送整体速率超出阈值将丢弃报文,避免 CPU 过载。

 

(2)白名单中包含合法及高优先级用户集合,将确定为正常使用设备的合法用户以及高优先级用户设置在白名单中,匹配白名单特征的报文将会被高速率高优先级上送。

 

(3)黑名单中包含非法用户集合,通过 ACL 设定将确定为攻击的非法用户设置到黑名单中,匹配黑名单特征的报文将被丢弃或者进行低优先级上送。

 

(4)用户自定义流可通过自定义防攻击 ACL 规则的设定灵活的匹配攻击流数据特征,将符合特征的数据限制上送。

 

访问控制列表 ACL 可以根据数据包的源地址、目的地址、协议类型、端口号等元素来过滤 IP 流量并在路由策略中被调用。ACL 通过设定规则对数据包进行分类,并根据规则来判断接收哪些数据包、拒绝哪些数据包。每个 ACL 可以自定义多个规则,ACL 根据功能可分为接口 ACL、基本 ACL 和高级 ACL 列表,如表 2 所示。

 

表 2 访问控制列表 ACL

 

 

3.2 现网基于报文限速的 CPU 防护

3.2.1 总体描述

在互联网公网地址空间的场景下,作为网络流量的承载节点,IP 核心网路由器通过管理控制协议完成业务策略的部署,控制报文按照预期路径转发。现网设备对上送至 CPU 的报文进行类型划分,不同类型的报文占用不同的上送通道,不同的通道具有独立的带宽和优先级,基于此方式重点保障信任的协议报文以高优先级、大带宽上送,限制不信任报文以低优先级、小带宽上送,从而避免由于非法报文冲击导致正常协议报文无法及时处理造成业务中断,IP 核心网基于报文限速的 CPU 保护如图 2 所示。

 

图 2 IP 核心网设备报文限速 CPU 防护

 

3.2.2 现网基于报文限速的 CPU 防护策略部署

根据当前现网业务和被攻击情况,对 IP 核心网上常见的运行协议进行归类并按需制定策略配置方案。配置内容涵盖全局配置、IPv4 和 IPv6 相关配置。

 

(1)全局配置内容:调整白名单、自定义流、黑名单顺序;关闭 tcpsyn-flood 防御功能,通过白名单、自定义流、黑名单过滤 tcpsyn 攻击报文。

 

(2)IPv4 配置内容,以现网设备涉及到的路由及组播协议为例,相应的配置内容如表 3 所示。

 

表 3 IPv4 相关流量配置内容

 

 

对于 BGP 协议来说,对于已生成链接的协议报文走动态白名单上送,此处仅对还未生成链接的 BGP 协议报文限速。

 

3.2.3 CPU 防攻击策略配置模板和配置步骤

收集现网设备上运行的各种业务涉及的协议,进行归类后通过 ACL 匹配相应的协议报文。ACL 列表编号可以自定义,注意不要与现网存在的 ACL 冲突即可。高级 ACL 中可以以名字或数字表示协议类型,如果用整数形式表示取值范围是 1-255,如果用字符串形式表示可以选取 bgp、ospf、tcp、udp。以华为高端路由器设备相关配置为例,CPU 防攻击策略配置模板和配置步骤如下所示,以 BGP/OSPF/LDP/PIM 协议配置为例。

 

(1)通过 ACL 匹配设备上运行协议报文,如表 4 所示。其中,ISIS 不是 IP 报文,不通过 ACL 匹配。

 

表 4 ACL 匹配协议报文

 

 

2)配置防攻击模板。将 ACL 关联自定义流;指定白名单、自定义流、黑名单的带宽;调整白名单、自定义流、黑名单的处理顺序;将 ACL 关联到黑名单;设置自定义流的优先级;设置丢包告警参数;关闭 tcpsyn 泛洪防御功能,改由通过黑白名单和自定义流作过滤。具体配置如表 5 所示。

 

表 5 CPU 防攻击配置模板

 

 

(3)将防攻击策略应用在各单板。

 

3.3 IP 核心网控制平面防攻击加固

部署 ISIS、OSPF、BGP、LDP、PIM 等协议认证,避免攻击者尝试经过控制平面协议对路由等转发依赖的表项进行破坏。通过将配置的密码进行 MD5 等加密算法后再加入到协议报文中,提高了协议加密密码的安全性。在接口视图下配置协议验证模式和验证字,其中验证字标识符必须与对端保持一致。在配置认证的过程中,如果在协议邻居超时间隔内没有在 OSPF、ISIS 等邻居两端设备上配置相同的认证,则原有 UP 的协议邻居状态将置 DOWN 一次。

 

图 3 OSPF 邻居关系的建立

 

4 地市 SR 至 CR 扩容中继 OSPF 协议状态异常案例分析

4.1 故障现象

某地市城域网核心层设置一台华为高端路由器 NE5000E 和阿卡高端路由器 7950,为保障城域网中继合格率不低于 98%,其申请某台 IDC SR 至 CR 间扩容中继 10 条。根据地市提供的核心设备数据制作模板在 CR 和 SR 两端设备均正常配置 IP 接口和 IGP 协议数据后,发现有三条新开至阿卡 7950 的中继 IDC SR 端的 OSPF 邻居状态一直处于 Init 状态,无法进入最终全毗邻的 Full 稳态。

 

4.2 故障分析定位

OSPF 定义了 Hello、DBD、LSR、LSU、LSAck 五种协议报文,Hello 包用来发现直连链路上的邻居建立邻居关系并周期性的发送 Hello 包保活邻居关系;DBD 报文是两台路由器在建立全毗邻的邻接关系的过程中交互的消息,用来描述 LSDB 信息;LSR 报文向 OSPF 邻居请求链路状态信息;LSU 为链路状态更新报文,包含一条或多条 LSA;LSAck 对 LSU 中的 LSA 进行确认,保证 OSPF 的 LSA 可靠传输。

 

两台 ospf 路由器在建立邻居关系的过程中定义了很多状态机,其中 Init 是中间状态,长时间处于此状态是不正常的。Init 状态表示本路由器已经收到了对方的 hello 报文,但不确定对方收到了自己发送的 hello 报文,原因是对方发过来的 hello 报文邻居表中没有自己的 routerid。可能的原因有:

 

(1)物理链路问题,导致 hello 报文丢失。

(2)ospf 配置了验证,验证没通过。

(3)配置了访问控制列表,阻止了 hello 报文。

(4)帧中继网络配置错误。

 

4.2.1 OSPF 邻居建立过程

OSPF 通过 Hello 包发现直连链路上的 OSPF 路由器建立双向关系,通过 DBD 报文协商主 / 从关系并交换 LSA 头部摘要信息,然后通过请求 / 发送 LSAs 同步链路状态信息,最终完成同步进入 OSPF 全毗邻的 Full 稳态,OSPF 具体的邻居建立细节如图 3 所示。

 

由上述 OSPF 邻居关系建立过程可以看出,OSPF 邻居状态长期处于 Init 是由于 Hello 报文中相应字段没有成功交互造成的。

 

4.2.2 故障定位测试

从故障现象初步判断,造成 OSPF 协议状态异常的原因有 2 个方面,一个是物理链路问题,另一个是协议配置及策略配置问题。IP 城域网 BRAS/SR 至 CR 间中继 IPv4 和 IPv6 协议栈所采用的动态 IGP 协议分别为 OSPF 和 ISIS,并对协议报文进行了 MD5 加密部署,其中 OSPF 网络类型为点到点网络。逐一排查光路、接口数据配置、OSPF 及协议加密配置后发现,3 条故障链路均使用裸光纤直连承载未经过任何传输设备,对互联 IPv4/IPv6 地址 Ping 大包测试均为丢包现象,且接口 IGP 协议认证类型及认证密钥均沿用已有正常链路配置,IPv6 使用的 ISIS 协议邻居状态正常,所以重点考虑 OSPF 安全加固策略配置的问题。

 

进一步联系地市询问得知,该 3 条扩容链路所使用的 ipv4 互联地址均为新启用的网段,在 CR 和 SR 侧抓包发现,7950 CR 侧收不到 NE40 发过来的 Hello 包,NE40 侧可以可以收到 7950 侧发来的包。检查 7950 上 OSPF 相关配置发现,其设置了 OSPF 协议相应的白名单并在系统策略中应用,该白名单中定义的 IP 网段并不包含 3 条故障链路所使用的互联 IP,分析可能是由于这个原因导致新分地址段链路 OSPF 邻居无法正常建立。在 CR 侧 OSPF 协议相应的白名单中添加新增互联 IP 网段地址,查看接口流量情况、邻居状态建立情况,通过一段时间的观察和业务测试能够确定协议建立正常。7950 配置有 CPU 保护策略,该策略配置有基于 OSPF 协议源地址的前缀列表,未出现在白名单内的 OSPF 协议报文都会被丢弃,新地址段未配置在白名单内,导致 7950 丢弃来自 SR 的 hello 报文,邻居无法建立。

 

4.3 IP 核心网控制平面协议防攻击策略部署注意事项

IP 核心网在进行控制面协议安全加固的过程中必须要保证业务的畅通运行。黑名单不要限速为 0,避免由于个别协议漏配置导致业务不通。修改防攻击配置时要避免修改过程中影响现网业务,注意配置的先后顺序,应先配置好白名单和自定义流数据,黑名单最后配置,避免配置过程中黑名单优先生效导致协议中断或设备脱网。根据现网业务及时增加、删除及修改相关业务报文配置策略并调整协议带宽。由于 IP 核心网设备设置有控制面协议报文过滤限制,如 LDP 协议标签过滤仅允许汇聚层设备某环回地址生成 LDP 标签,所以各城域网在新启用环回地址网段和与 CR 的互联地址网段时需要提前规划好,避免出现琐碎地址段以便管理。

 

5 结束语

IP 核心网转发处理能力强,但控制面和管理面处理能力有限,同时 IP 网络对接入终端缺乏认证授权机制,导致任何终端均可随意接入网络,IP 网络通信节点众多,通信协议层出不穷。网络的开放性和复杂性,对运营商的管理和运维提出了更高要求,在进行网络安全加固的过程中,应保证设计配置方案最大限度的满足安全要求,确保安全加固目标服从业务目标,提升互联网用户的感知水平,打造高质量的网络品牌口碑。