GTPv1 消息过滤器概述
了解 GTPv1 消息过滤器,包括消息长度和消息类型过滤器。本主题介绍设备如何处理 GTP 数据包、应用检测策略和实施安全规则。
GTP 数据包包含消息正文以及 GTP、UDP 和 IP 报头。GTP 数据包的传递或丢弃基于 GTP 消息过滤器。GTP 消息根据消息长度和消息类型进行过滤。
了解 GTP 消息过滤
当设备收到 GPRS 隧道协议 (GTP) 数据包时,它会根据设备上配置的策略检查数据包。如果数据包与策略匹配,设备将根据应用于策略的 GTP 配置检查数据包。如果数据包不满足任何 GTP 配置参数,设备将根据 GTP 检测对象的配置传递或丢弃数据包。
GTP 数据包由消息正文和三个报头组成:GTP、UDP 和 IP。如果生成的 IP 数据包大于传输链路上的最大传输单元 (MTU),则发送服务 GPRS 支持节点 (SGSN) 或网关 GPRS 支持节点 (GGSN) 将执行 IP 分段。
默认情况下,设备会缓冲 IP 分段,直到收到完整的 GTP 消息,然后检查 GTP 消息。
GTP 消息长度过滤器
设备可以配置为在允许的最小或最大消息长度之外丢弃数据包。GTP 报头中的消息长度字段表示 GTP 有效负载的大小(以八位位组为单位),不包括 GTP、UDP 和 IP 报头。
-
默认最小长度:0 字节
-
默认最大长度:65,535 字节
GTP 消息类型过滤器
设备可以根据消息类型允许或拒绝 GTP 数据包。默认情况下,允许所有 GTP 消息类型。-
筛选适用于邮件类型级别。拒绝一种消息类型(例如,
sgsn-context)将拒绝其所有相关消息 (request, response, acknowledge)。 -
消息类型过滤可能因 GTP 版本而异。例如,一个类型可能在一个版本中被拒绝,但在另一个版本中被允许。
示例:设置 GTP 消息长度过滤
此示例说明如何设置 GTP 消息长度。
要求
配置此功能之前,不需要除设备初始化之外的特殊配置。
概述
在此示例中,您将 GTP 检查对象的最小 GTP 消息长度配置为 8 个八位位组,将最大 GTP 消息长度配置为 1200 个八位位组。
配置
程序
分步过程
要配置 GTP 消息长度,请执行以下作:
指定 GTP 配置文件。
[edit] user@host# set security gprs gtp profile gtp1
指定最小消息长度。
[edit] user@host# set security gprs gtp profile gtp1 min-message-length 8
指定最大消息长度。
[edit] user@host# set security gprs gtp profile gtp1 max-message-length 1200
如果完成设备配置,请提交配置。
[edit] user@host# commit
验证
要验证配置是否工作正常,请输入 show security gprs 命令。
支持的 GTP 消息类型
表 1 列出了 GTP 版本 1997 和 1999 中支持的 GTP 消息(包括 GTP 的收费消息)以及可用于配置 GTP 消息类型过滤的消息类型。
消息 |
消息类型 |
版本 0 |
版本 1 |
|---|---|---|---|
创建 AA PDP 上下文请求 |
创建-AA-PDP |
b |
|
创建 AA PDP 上下文响应 |
创建-AA-PDP |
b |
|
创建 PDP 上下文请求 |
创建-PDP |
b |
b |
创建 PDP 上下文响应 |
创建-PDP |
b |
b |
数据记录请求 |
数据记录 |
b |
b |
数据记录响应 |
数据记录 |
b |
b |
删除 AA PDP 上下文请求 |
删除-AA-PDP |
b |
|
删除 AA PDP 上下文响应 |
删除-AA-PDP |
b |
|
删除 PDP 上下文请求 |
删除-PDP |
b |
b |
删除 PDP 上下文响应 |
删除-PDP |
b |
b |
回显请求 |
回波 |
b |
b |
回声响应 |
回波 |
b |
b |
错误指示 |
错误指示 |
b |
b |
故障报告请求 |
故障报告 |
b |
b |
故障报告响应 |
故障报告 |
b |
b |
转发重新定位请求 |
FWD 重新定位 |
b |
b |
前向搬迁响应 |
FWD 重新定位 |
b |
b |
前向搬迁完成 |
FWD 重新定位 |
b |
b |
前向搬迁完成确认 |
FWD 重新定位 |
b |
b |
正向 SRNS 环境 |
fwd-srns-上下文 |
b |
b |
正向 SRNS 上下文确认 |
fwd-srns-上下文 |
b |
b |
识别请求 |
鉴定 |
b |
b |
识别响应 |
鉴定 |
b |
b |
节点活动请求 |
节点活动 |
b |
b |
节点活动响应 |
节点活动 |
b |
b |
注意 MS GPRS 当前请求 |
note-ms-present |
b |
b |
注意 MS GPRS 呈现响应 |
note-ms-present |
b |
b |
PDU 通知请求 |
PDU 通知 |
b |
b |
PDU 通知响应 |
PDU 通知 |
b |
b |
PDU 通知拒绝请求 |
PDU 通知 |
b |
b |
PDU 通知拒绝响应 |
PDU 通知 |
b |
b |
RAN 信息中继 |
RAN-信息 |
b |
b |
重定向请求 |
重定向 |
b |
b |
重定向响应 |
重定向 |
b |
b |
搬迁取消请求 |
搬迁-取消 |
b |
b |
搬迁取消响应 |
搬迁-取消 |
b |
b |
发送路由信息请求 |
发送路由 |
b |
b |
发送路由信息响应 |
发送路由 |
b |
b |
SGSN 上下文请求 |
SGSN 上下文 |
b |
b |
SGSN 上下文响应 |
SGSN 上下文 |
b |
b |
SGSN 上下文确认 |
SGSN 上下文 |
b |
b |
支持的扩展标头通知 |
支持扩展 |
b |
b |
G-PDU |
GTP-PDU |
b |
b |
更新 PDP 上下文请求 |
更新-PDP |
b |
b |
更新的 PDP 上下文响应 |
更新-PDP |
b |
b |
不支持的版本 |
版本不支持 |
b |
b |
示例:过滤 GTP 消息类型
此示例说明如何允许和拒绝 GTP 消息类型。
要求
配置此功能之前,不需要除设备初始化之外的特殊配置。
概述
在此示例中,对于 gtp1 配置文件,您将设备配置为删除版本 1 的错误指示和故障报告消息类型。
配置
程序
分步过程
要允许和拒绝 GTP 消息类型:
配置设备。
[edit] user@host# set security gprs gtp profile gtp1
删除错误指示。
[edit] user@host# set security gprs gtp profile gtp1 drop error-indication 1
删除故障报告消息。
[edit] user@host# set security gprs gtp profile gtp1 drop failure-report 1
如果完成设备配置,请提交配置。
[edit] user@host# commit
验证
要验证配置是否工作正常,请输入 show security gprs 命令。
了解 GTP 控制消息的速率限制
您可以将设备配置为限制流向 GPRS 支持节点 (GSN) 的网络流量速率。您可以为 GGSN 隧道协议控制 (GTP-C) 消息设置单独的阈值(以数据包/秒为单位)。由于 GTP-C 消息需要处理和回复,因此它们可能会使 GSN 不堪重负。通过对 GTP-C 消息设置速率限制,您可以保护 GSN 免受可能的拒绝服务 (DoS) 攻击,例如:
边界网关带宽饱和 - 连接到与公共陆地移动网络 (PLMN) 相同的 GPRS 漫游交换 (GRX) 的恶意运营商可能会在您的边界网关上定向过多的网络流量,以致合法流量缺乏进出 PLMN 的带宽,从而拒绝进出您的网络的漫游访问。
GTP 泛洪 — GPRS 隧道协议 (GTP) 流量可能会泛洪 GSN,迫使其花费 CPU 周期来处理非法数据。这可以防止用户漫游数据并将数据转发到外部网络,还可以防止通用分组无线业务 (GPRS) 连接到网络。
此功能限制从瞻博网络设备发送到每个 GSN 的流量速率。默认费率是无限的。
了解 GTP 控制消息的路径速率限制
该 path-rate-limit 函数控制正向和反向的特定 GTP 消息。对于一条路径,可以正向和反向为每条控制消息配置丢弃阈值和告警阈值。如果某一条路径上的控制消息达到告警阈值,则会生成告警日志。如果接收的控制消息数达到丢弃阈值,则会生成数据包丢弃日志,并且稍后收到的所有其他此类控制消息都将被丢弃。
要控制正向和反向的消息流量,请在设备上配置一个策略,以便将与配置的策略一致的方向定义为正向,将与配置的策略相反的方向定义为反向。 set security gprs gtp profile <profile-name> path-rate-limit 使用语句可以限制路径上特定控制消息的每秒最大数据包数。
您可以同时配置 rate-limit 和 path-rate-limit 选项。
使用 功能浏览器 确认平台和版本对特定功能的支持。
查看 特定于平台的 GTP 消息速率限制行为 部分,了解与您的平台相关的说明。
示例:限制 GTP 控制消息的消息速率和路径速率
此示例说明如何限制 GTP 控制消息的消息速率和路径速率。该 rate-limit 选项限制每秒的 GTP 消息,并且该 path-rate-limit 选项控制正向和反向的特定 GTP 消息。
要求
此示例使用以下硬件和软件组件:
Junos OS 12.1X45-D10 版
配置此功能之前,不需要除设备初始化之外的特殊配置。
概述
在此示例中,您将传入 GTP 消息的速率限制为每秒 300 个数据包,并在正向和反向两个方向上限制 GTP 控制消息的路径速率。您可以将设备配置为限制流向 GPRS 支持节点 (GSN) 的网络流量速率,并限制路径上特定控制消息的每秒或每分钟最大数据包数。对于 create-req、 delete-req和 other GTP 消息,您要限制每秒的最大数据包数。但是,对于 echo-req GTP 消息,您需要限制每分钟的最大数据包数。
该 path-rate-limit 函数控制正向和反向的特定 GTP 消息。配置参数 alarm-threshold 以将设备配置为在路径上的 GTP 控制消息达到配置的限制时发出告警。配置 drop-threshold 为当每秒或每分钟的数据包数超过配置的限制时丢弃流量。
配置
CLI 快速配置
要快速配置示例的此部分,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改详细信息,以便与网络配置匹配,将命令复制并粘贴到层 [edit] 级的 CLI 中,然后从配置模式进入 commit 。
set security gprs gtp profile gtp1 rate-limit 300 set security gprs gtp profile gtp1 path-rate-limit message-type create-req alarm-threshold forward 50 reverse 50 set security gprs gtp profile gtp1 path-rate-limit message-type delete-req alarm-threshold forward 50 reverse 50 set security gprs gtp profile gtp1 path-rate-limit message-type echo-req alarm-threshold forward 50 reverse 50 set security gprs gtp profile gtp1 path-rate-limit message-type other alarm-threshold forward 50 reverse 50 set security gprs gtp profile gtp1 path-rate-limit message-type create-req drop-threshold forward 80 reverse 80 set security gprs gtp profile gtp1 path-rate-limit message-type delete-req drop-threshold forward 80 reverse 80 set security gprs gtp profile gtp1 path-rate-limit message-type echo-req drop-threshold forward 80 reverse 80 set security gprs gtp profile gtp1 path-rate-limit message-type other drop-threshold forward 80 reverse 80
程序
分步过程
要配置 GTP 消息速率和路径速率限制,请执行以下作:
指定 GTP 配置文件。
[edit] user@host# set security gprs gtp profile gtp1
设置 GTP 消息速率限制。
[edit security gprs gtp profile gtp1] user@host# set rate-limit 300
指定消息类型以设置 GTP 控制消息的路径速率限制。
[edit security gprs gtp profile gtp1] user@host# set path-rate-limit message-type
选择 GTP 控制消息类型。
[edit security gprs gtp profile gtp1] user@host# set path-rate-limit message-type create-req user@host# set path-rate-limit message-type delete-req user@host# set path-rate-limit message-type echo-req user@host# set path-rate-limit message-type other
设置 GTP 控制消息类型的告警阈值。
[edit security gprs gtp profile gtp1 path-rate-limit] user@host# set message-type create-req alarm threshold user@host# set message-type delete-req alarm threshold user@host# set message-type echo-req alarm threshold user@host# set message-type other alarm threshold
限制控制消息的正向。
[edit security gprs gtp profile gtp1 path-rate-limit message-type] user@host# set create-req alarm threshold forward 50 user@host# set delete-req alarm threshold forward 50 user@host# set echo-req alarm threshold forward 50 user@host# set other alarm threshold forward 50
反向限制控制消息。
[edit security gprs gtp profile gtp1 path-rate-limit message-type] user@host# set create-req alarm threshold reverse 50 user@host# set delete-req alarm threshold reverse 50 user@host# set echo-req alarm threshold reverse 50 user@host# set other alarm threshold reverse 50
设置 GTP 控制消息类型的丢弃阈值。
[edit security gprs gtp profile gtp1 path-rate-limit] user@host# set message-type create-req drop threshold user@host# set message-type delete-req drop threshold user@host# set message-type echo-req drop threshold user@host# set message-type other drop threshold
限制控制消息的正向。
[edit security gprs gtp profile gtp1 path-rate-limit message-type] user@host# set create-req drop threshold forward 80 user@host# set delete-req drop threshold forward 80 user@host# set echo-req drop threshold forward 80 user@host# set other drop threshold forward 80
反向限制控制消息。
[edit security gprs gtp profile gtp1 path-rate-limit message-type] user@host# set create-req drop threshold reverse 80 user@host# set delete-req drop threshold reverse 80 user@host# set echo-req drop threshold reverse 80 user@host# set other drop threshold reverse 80
结果
在配置模式下,输入 show security gprs gtp profile profile-name 命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的配置说明,以便进行更正。
[edit]
user@host# show security gprs gtp profile p1
rate-limit 300;
path-rate-limit {
message-type create-req {
drop-threshold {
forward 80;
reverse 80;
}
alarm-threshold {
forward 50;
reverse 50;
}
}
message-type delete-req {
drop-threshold {
forward 80;
reverse 80;
}
alarm-threshold {
forward 50;
reverse 50;
}
}
message-type echo-req {
drop-threshold {
forward 80;
reverse 80;
}
alarm-threshold {
forward 50;
reverse 50;
}
}
message-type other {
drop-threshold {
forward 80;
reverse 80;
}
alarm-threshold {
forward 50;
reverse 50;
}
}
}
如果完成设备配置,请从配置模式输入 commit 。
验证
确认配置工作正常。
验证配置
目的
验证 GTP 消息速率和路径速率限制配置是否正确。
行动
在作模式下,输入 show security gprs gtp counters path-rate-limit 命令。
Path-rate-limit counters:
Drop Alarm
Create Request 20 50
Delete Request 20 50
Echo Request 20 50
Others 20 50
意义
命令 show security gprs gtp counters path-rate-limit 显示自达到告警阈值或丢弃阈值以来接收的数据包数。如果将 Create Request 消息的 alarm-threshold 值配置为 50 drop-threshold ,将值配置为 80,并且设备在一秒或分钟内收到 100 个数据包,则丢弃编号将为 20,告警编号为 50。
示例:启用 GTP 序列号验证
此示例说明如何启用 GTP 序列号验证功能。
要求
配置此功能之前,不需要除设备初始化之外的特殊配置。
概述
在此示例中,您将 gtp 配置文件设置为 gtp1,并且还启用序列号验证功能。
配置
程序
分步过程
要启用 GTP 序列号验证功能,请执行以下作:
设置 GTP 配置文件。
[edit] user@host# set security gprs gtp profile gtp1
启用序列号验证。
[edit] user@host# set security gprs gtp profile gtp1 seq-number-validated
如果完成设备配置,请提交配置。
[edit] user@host# commit
验证
要验证配置是否工作正常,请输入 show security gprs 命令。
特定于平台的 GTP 消息速率限制行为
使用 功能浏览器 确认平台和版本对特定功能的支持。
使用下表查看您的平台特定于平台的存储介质行为:
| 平台 |
差异 |
|---|---|
| SRX 系列 |
|