移动网络检测概述
以下主题介绍可用于 LTE 等移动网络协议的检测。除检测之外,还有可用于 SCTP 流量的其他服务。
GTP 检测概述
GPRS 隧道协议用于 GSM、UMTS 和 LTE 网络的通用分组无线服务 (GPRS) 流量。GTP 提供隧道控制和管理协议,通过创建、修改和删除隧道来为移动站提供 GPRS 网络接入。此外,GTP 还使用隧道机制来传送用户数据包。
服务提供商网络使用 GTP 通过终端之间的 GPRS 主干隧道传输多协议数据包。在 GTPv0-1 中,GTP 用于网关 GPRS 支持节点 (GGSN) 和服务 GPRS 支持节点 (SGSN) 之间的信令。在 GTPv2 中,信令位于数据包数据网络网关 (PGW) 和服务网关 (SGW) 以及其他终端之间。GGSN/PGW 是 GPRS 无线数据网络与其他网络之间的接口。SGSN/SGW 可执行移动、数据会话管理和数据压缩。
您可以使用 ASA 来防御欺诈漫游的合作伙伴。将设备放在主 GGSN/PGW 和被访问的 SGSN/SGW 终端之间,并对流量应用 GTP 检测。GTP 检测仅可在这些终端之间的流量上运行。在 GTPv2 中,这称为 S5/S8 接口。
GTP 和相关标准由 3GPP(第 3 代合作伙伴项目)定义。有关详细信息,请参阅 http://www.3gpp.org。
跟踪移动站位置更改
可以使用 GTP 检测跟踪移动站位置更改。跟踪位置更改可能会帮助您识别欺诈漫游费用,例如,如果您看到移动站在不太可能的时间断内从一个位置移至另一个位置,例如在 30 分钟内从美国的一个小区移至欧洲的一个小区。
当您启用位置日志记录时,系统会生成每个国际移动用户身份 (IMSI) 新建或更改后位置的系统日志消息。
-
324010 表示创建新的 PDP 上下文,包括移动国家代码 (MCC)、移动网络代码 (MNC)、信息元素,以及可选的用户当前注册的小区 ID。单元 ID 从单元全局标识 (CGI) 或 E-UTRAN 单元全局标识符 (ECGI) 中提取。
-
324011 指示 IMSI 已从 PDP 情景创建过程中存储的位置移开。此消息显示上一个和当前的 MCC/MNC、信息元素以及可选的单元 ID。
默认情况下,系统日志消息不包含时间戳信息。如果您计划分析这些消息来识别不太可能漫游时,还必须启用时间戳。时间戳日志记录不作为 GTP 检测映射的一部分。使用 logging timestamp 命令。
有关启用位置日志记录的信息,请参阅 配置 GTP 检测策略映射。
GTP 检测的局限性
以下是 GTP 检测的一些局限性:
-
不支持 GTPv2 捎带消息。它们始终会被丢弃。
-
仅在包含 IMSI(国际移动用户识别码)时支持 GTPv2 紧急 UE 连接。
-
GTP 检测不检查早期数据。即恰好在创建会话请求之后但在创建会话响应之前从 PGW 或 SGW 发送的数据。
-
对于 GTPv2,检测最高支持 3GPP 29.274 V15.5.0。对于 GTPv1,最高支持 3GPP 29.060 V15.2.0。对于 GTPv0,最高支持版本 8。
-
GTP 检测不支持 Inter SGSN 切换到辅助 PDP 情景。检测需要对主 PDP 情景和辅助 PDP 情景执行交接。
-
启用 GTP 检测后,使用 GTP-in-GTP 封装的连接始终会被丢弃。
流控制传输协议 (SCTP) 检测和访问控制
RFC 4960 中介绍了 SCTP(流控制传输协议)。该协议支持基于 IP 的电话信令协议 SS7,也是适用于 4G LTE 移动网络架构中多个接口的传输协议。
SCTP 是在协议栈中基于 IP 运行的传输层协议,与 TCP 和 UDP 类似。但是,SCTP 可在基于一个或多个源或目标 IP 地址的两个终端节点之间创建一条逻辑通信通道,称为“关联”。这种行为称为多宿主。关联可在每个节点上定义一组 IP 地址(源和目标)和一个端口。该组中的任何 IP 地址均可作为与此关联相关的数据包的源或目标 IP 地址,从而形成多个连接。在每个连接中,可能存在多个发送消息的流。SCTP 中的流表示逻辑应用数据信道。
下图说明了关联与其流之间的关系。

如果有 SCTP 流量通过 ASA,您可以基于 SCTP 端口控制访问,并实施应用层检测来启用连接和(可选)过滤负载协议 ID,以便选择性地丢弃应用、记录应用或限制应用速率。
![]() 注 |
每个节点最多可包含三个 IP 地址。超过三个这一上限的任何地址都将被忽略,不会包含到关联中。此时,辅助 IP 地址的针孔会自动打开。您无需写入访问控制规则来启用它们。 |
以下部分更加详细地介绍可用于 SCTP 流量的服务。
SCTP 状态检测
SCTP 流量与 TCP 类似,由系统在第 4 层自动检测以确保流量的结构良好并符合具有限制性的 RFC 4960 实施要求。检测和实施以下协议元素:
-
数据块类型、标志和长度。
-
验证标志。
-
源端口和目标端口,以防止关联重定向攻击。
-
执行 ping 操作时没有任何问题。
SCTP 状态检测根据关联状态接受或拒绝数据包:
-
验证初始关联建立的 4 向打开和关闭序列。
-
验证关联和数据流内的 TSN 转发进阶。
-
当由于心跳故障看到 ABORT 数据库时终止关联。SCTP 终端可能发送 ABORT 数据块来响应炸弹攻击。
如果确定不希望执行这些实施检查,可以为特定流量类配置 SCTP 状态绕行,如配置特定流量类的连接设置(所有服务)中所述。
SCTP 访问控制
您可以为 SCTP 流量创建访问规则。这些规则与基于 TCP/UDP 端口的规则类似,您只需使用 sctp 作为协议,端口号为 SCTP 端口。您可以为 SCTP 创建服务对象或组,或者直接指定端口。请参阅以下主题。
SCTP NAT
您可以向 SCTP 关联建立消息中的地址应用静态网络对象 NAT。虽然您可以配置静态两次 NAT,但不建议这样做,因为 SCTP 关联的目的地部分的拓扑未知。不能使用动态 NAT/PAT。
SCTP 的 NAT 依赖于 SCTP 状态检测,而不是 SCTP 应用层检测。因此,如果配置了 SCTP 状态绕行,则无法对流量应用 NAT。
SCTP 应用层检测
通过在 SCTP 应用上启用 SCTP 检测和过滤,可以进一步优化您的访问规则。您可以根据负载协议标识符 (PPID),选择性地丢弃、记录或按速率限制 SCTP 流量类。
如果决定对 PPID 进行过滤,请记住以下几点:
-
PPID 位于数据分块中,特定数据包可包含多个数据分块,甚至包含一个控制数据块。如果数据包包含一个控制数据块或多个数据分块,即便对其分配的操作为丢弃,该数据包也不会被丢弃。
-
如果使用 PPID 过滤来丢弃数据包或限制数据包速率,请注意发射器会重新发送被丢弃的任何数据包。虽然下次尝试时可能会让 PPID 速率受限制的数据包通过,但 PPID 丢弃的数据包仍会被丢弃。您可能需要评估网络中反复出现这些丢弃所带来的最终结果。
SCTP 的局限性
SCTP 支持包括以下局限性。
-
每个节点最多可包含三个 IP 地址。超过三个这一上限的任何地址都将被忽略,不会包含到关联中。此时,辅助 IP 地址的针孔会自动打开。您无需写入访问控制规则来启用它们。
-
未使用的针孔将在 5 分钟后超时。
-
不支持多宿主终端上的双堆栈 IPv4 和 IPv6 地址。
-
唯一支持的 NAT 类型是网络对象静态 NAT。此外,不支持 NAT46 和 NAT64。
-
仅对 Diameter、M3UA 和基于 SCTP PPID 的检测处理的流量完成 SCTP 数据包分段和重组。
-
不支持 SCTP 中用于动态添加或删除 IP 地址的 ASCONF 数据块。
-
不支持 INIT 和 INIT-ACK SCTP 消息中的主机名参数,它们用于指定可被解析为 IP 地址的主机名。
-
无论是在 ASA 上还是在网络中的其他位置配置,SCTP/M3UA 都不支持等价多路径路由 (ECMP)。利用 ECMP,可通过多个最佳路径将数据包路由至目标。但是,对单一目标的 SCTP/M3UA 数据包响应必须返回到所退出的同一接口。即使该响应可能来自任何 M3UA 服务器,但它必须始终返回到所退出的同一接口。此问题的症状是,SCTP INIT-ACK 数据包被丢弃,您可以在 show asp drop flow sctp-chunk-init-timeout 计数器中进行查看:
Flow drop: SCTP INIT timed out (not receiving INIT ACK)(sctp-chunk-init-timeout)
如果您遇到此问题,可通过配置到 M3UA 服务器的静态路由,或通过配置基于策略的路由来实施能够确保该 INIT-ACK 数据包经过与 INIT 数据包相同的接口的网络设计,从而解决此问题。
Diameter 检测
Diameter 是用于下一代移动和固定电信网络(例如用于 LTE(长期演进)和 IMS(多媒体子系统)的 EPS(演进的数据包系统)的身份验证、授权和记账 (AAA) 协议。在这些网络中,该协议将取代 RADIUS 和 TACACS。
Diameter 使用 TCP 和 SCTP 作为传输层,并使用 TCP/TLS 和 SCTP/DTLS 保障通信安全。另外,它也可以选择性地提供数据对象加密。有关 Diameter 的详细信息,请参阅 RFC 6733。
Diameter 应用执行服务管理任务,例如决定用户权限、服务授权、服务质量和收费率。虽然 Diameter 应用可出现在 LTE 架构的许多不同控制面板接口上,但 ASA 仅检测以下接口的 Diameter 命令编码和属性-值对 (AVP):
-
S6a:移动管理实体 (MME) - 家庭订用服务(HSS)。
-
S9:PDN 网关 (PDG) - 3GPP AAA 代理/服务器。
-
Rx:策略收费规则功能 (PCRF) - 呼叫会话控制功能 (CSCF)。
Diameter 检测为 Diameter 终端打开针孔,以允许通信。该检测支持 3GPP 版本 12,并符合 RFC 6733 要求。您可以将其用于 TCP/TLS(通过在启用检测时指定 TLS 代理),但不能将其用于 SCTP。使用 Ipsec 可保障 SCTP Diameter 会话的安全。
您可以选择性地使用 Diameter 检测策略映射根据应用 ID、命令代码和 AVP 来过滤流量,以便应用特殊操作,例如丢弃数据包或连接或记录它们。可以为新注册的 Diameter 应用创建自定义 AVP。通过过滤,可以优化您在网络上允许的流量。
![]() 注 |
默认情况下,允许其他接口上运行的应用的 Diameter 消息通过。虽然无法基于这些不支持应用的命令代码或 AVP 指定操作,但您可以配置 Diameter 检测策略映射,根据应用 ID 丢弃这些应用。 |
M3UA 检测
MTP3 User Adaptation (M3UA) 是客户端/服务器协议,为基于 IP 的应用提供连接 SS7 网络的网关,以便连接 SS7 消息传递部分 3 (MTP3) 层。使用 M3UA,可以通过 IP 网络运行 SS7 用户部分(例如 ISUP)。M3UA 在 RFC 4666 中定义。
M3UA 使用 SCTP 作为传输层。默认端口为 SCTP 端口 2905。
MTP3 层提供网络功能,例如路由和节点寻址,但使用点代码来识别节点。M3UA 层可交换源点码 (OPC) 和目标点码 (DPC)。这与 IP 使用 IP 地址识别节点的方式类似。
M3UA 检测提供的协议符合具有限制性。您可以选择性地地为特定消息实施严格应用服务器进程 (ASP) 状态检查和其他消息验证。如果要进行状态故障转移或在集群内操作,需要执行严格 ASP 状态检查。但是,严格 ASP 状态检查只能在覆盖模式下运行,如果在 Loadsharing 或广播模式下运行则不起作用(根据 RFC 4666)。该检测假设每个终端有一个且只有一个 ASP。
您可以基于点代码或服务指示符 (SI) 选择性地应用访问策略。此外,还可以基于消息类和类型应用速率限制。
M3UA 协议符合性
M3UA 检测提供以下具有限制性的协议执行。检测丢弃和记录不符合要求的数据包。
-
常见消息信头。检测验证常见信头中的所有字段。
-
仅限版本 1。
-
消息长度必须正确。
-
禁止使用具有保留值的消息类型类。
-
禁止在消息类内使用无效的消息 ID。
-
-
负载数据消息。
-
对于特定类型只允许使用一个参数。
-
禁止 SCTP 流 0 中存在数据消息。
-
-
以下消息中必须存在 Affected Point Code 字段,否则该消息将被丢弃:目标可用 (DAVA)、目标不可用 (DUNA)、目标状态审核 (DAUD)、信令拥塞 (SCON)、目标用户部分不可用 (DUPU)、目标受限 (DRST)。
-
如果为以下消息启用了消息标记验证,系统将检查和验证某些字段的内容。验证失败的消息将被丢弃。
-
目标用户部分不可用 (DUPU) - User/Cause 字段必须存在,并且其中必须仅包含有效的原因和用户代码。
-
错误 - 所有必填字段必须都存在,并且仅包含允许的值。每个错误消息都必须包含该错误代码的必填字段。
-
通知 - 状态类型和状态信息字段必须仅包含允许的值。
-
-
如果启用了严格应用服务器进程 (ASP) 状态验证,系统将维护 M3UA 会话的 ASP 状态并基于验证结果允许或丢弃 ASP 消息。如果未启用严格 ASP 状态验证,系统将转发所有 ASP 消息而不进行检测。
M3UA 检测的局限性
以下是 M3UA 检测的一些局限性。
-
对于 M3UA 数据中嵌入的 IP 地址,不支持 NAT。
-
M3UA 严格应用服务器进程 (ASP) 状态验证依赖于 SCTP 状态检测。不会对相同流量实施 SCTP 状态绕行和 M3UA 严格 ASP 验证。
-
如果要进行状态故障转移或在集群内操作,需要执行严格 ASP 状态检查。但是,严格 ASP 状态检查只能在覆盖模式下运行,如果在 Loadsharing 或广播模式下运行则不起作用(根据 RFC 4666)。该检测假设每个终端有一个且只有一个 ASP。
RADIUS 计费检测概述
RADIUS 计费检测是为了防止使用 RADIUS 服务器的 GPRS 网络上出现过度计费攻击。虽然实施 RADIUS 计费检测无需 Carrier 许可证,但它毫无意义,除非您正在实施 GTP 检测并已设置 GPRS。
GPRS 网络上的过度计费攻击会导致消费者为他们未使用的服务付费。在这种情况下,恶意攻击者会建立与服务器之间的连接,并从 SGSN 获取 IP 地址。即使攻击者结束呼叫,恶意服务器仍会向其发送数据包;虽然 GGSN 会丢弃这些数据包,但来自服务器的连接仍会保持活动状态。分配给恶意攻击者的 IP 地址将被释放,并重新分配给某个合法用户(该用户将需要为攻击者将会使用的服务付费)。
RADIUS 计费检测可确保流经 GGSN 的流量都是合法流量,从而防止此类攻击。正确配置 RADIUS 计费功能后,ASA 将基于 Radius 计费请求开始消息中的框架 IP 属性与 Radius 计费请求停止消息的匹配终止连接。如果发现停止消息包含框架 IP 属性中的匹配 IP 地址,ASA 将查找源与该 IP 地址匹配的所有连接。
您可以选择配置一个与 RADIUS 服务器预共享的密钥,以便 ASA 可验证消息。如果未配置共享密钥,ASA 则仅检查源 IP 地址是否为允许发送 RADIUS 消息的已配置地址之一。
![]() 注 |
在启用 GPRS 的情形下使用 RADIUS 计费检测时,ASA 会检查计费请求 STOP 消息中的 3GPP-Session-Stop-Indicator,以便正确处理辅助 PDP 情景。特别是,ASA 要求计费请求 STOP 消息必须包含 3GPP-SGSN-Address 属性,才能终止用户会话和所有相关连接。默认情况下,某些第三方 GGSN 可能不发送此属性。 |