跳到主要内容

OmniPGW 操作指南

OmniPGW - 数据包网关控制平面 (PGW-C)

由 Omnitouch 网络服务提供


目录

  1. 概述
  2. 架构
  3. 网络接口
  4. 关键概念
  5. 入门
  6. 配置
  7. Web UI - 实时操作仪表板
  8. 监控与指标
  9. 详细文档
  10. 附加资源
  11. 贡献
  12. 支持

概述

OmniPGW 是一款高性能的数据包网关控制平面 (PGW-C) 实现,专为 3GPP LTE 演进数据核心 (EPC) 网络而开发,由 Omnitouch 网络服务提供。它管理数据会话的控制平面功能,包括:

  • 会话管理 - 创建、修改和终止 UE (用户设备) 数据会话
  • IP 地址分配 - 从配置的池中分配 IP 地址给移动设备
  • 策略与计费控制 - 与 PCRF 接口进行策略执行和计费
  • 用户平面协调 - 控制 PGW-U (用户平面) 进行数据包转发

PGW-C 的功能

  • 接受来自 SGW-C 的会话请求 通过 S5/S8 接口 (GTP-C)
  • 从配置的子网池中分配 UE IP 地址
  • 通过 Gx 接口 (Diameter) 请求 PCRF 的策略决策
  • 通过 Sxb 接口 (PFCP) 在 PGW-U 中编程转发规则
  • 通过承载上下文和 QoS 规则管理 QoS 执行
  • 跟踪计费信息 以供计费系统使用

架构

组件概述

过程架构

PGW-C 基于 Elixir/OTP 构建,并使用监督的过程架构:

  • 应用监督者 - 管理所有组件的顶层监督者
  • 协议代理 - 处理进出协议消息
  • 会话进程 - 每个活动 PDN 连接一个 GenServer
  • 注册表 - 跟踪分配的资源 (IP、TEID、SEID 等)
  • PFCP 节点管理器 - 维护与 PGW-U 对等体的 PFCP 关联

每个组件都受到监督,并在故障时自动重启,以确保系统的可靠性。


网络接口

PGW-C 实现了三个主要的 3GPP 接口:

S5/S8 接口 (GTP-C v2)

目的: SGW-C 和 PGW-C 之间的控制平面信令

协议: 基于 UDP 的 GTP-C 版本 2

关键消息:

  • 创建会话请求/响应
  • 删除会话请求/响应
  • 创建承载请求/响应
  • 删除承载请求/响应

配置: 请参见 S5/S8 配置

Sxb 接口 (PFCP)

目的: PGW-C 和 PGW-U 之间的控制平面信令

协议: 基于 UDP 的 PFCP (数据包转发控制协议)

关键消息:

  • 关联设置请求/响应
  • 会话建立请求/响应
  • 会话修改请求/响应
  • 会话删除请求/响应
  • 心跳请求/响应

配置: 请参见 PFCP/Sxb 接口文档

Gx 接口 (Diameter)

目的: 策略与计费规则功能 (PCRF) 接口

协议: Diameter (IETF RFC 6733)

关键消息:

  • 计费控制初始请求/应答 (CCR-I/CCA-I)
  • 计费控���终止请求/应答 (CCR-T/CCA-T)

配置: 请参见 Diameter Gx 接口文档


关键概念

PDN 会话

PDN (数据包数据网络) 会话表示 UE 与外部网络 (如互联网) 的数据连接。每个会话具有:

  • UE IP 地址 - 从配置的子网池中分配
  • APN (接入点名称) - 标识外部网络
  • 承载上下文 - 包含 QoS 参数和隧道信息
  • 计费 ID - 用于计费的唯一标识符
  • TEID (隧道端点 ID) - S5/S8 接口隧道标识符
  • SEID (会话端点 ID) - Sxb 接口会话标识符

承载上下文

承载表示具有特定 QoS 特征的流量流:

  • 默认承载 - 每个 PDN 会话创建
  • 专用承载 - 针对特定 QoS 需求的附加承载
  • EBI (EPS 承载 ID) - 每个承载的唯一标识符
  • QoS 参数 - QCI、ARP、比特率 (MBR、GBR)

PFCP 规则

PGW-C 向 PGW-U 编程数据包处理规则:

  • PDR (数据包检测规则) - 匹配数据包 (上行/下行)
  • FAR (转发动作规则) - 指定转发行为
  • QER (QoS 执行规则) - 执行比特率限制
  • BAR (缓冲动作规则) - 控制数据包缓冲

请参见 PFCP 接口文档 以获取详细信息。

IP 地址分配

UE IP 地址从配置的子网池中分配:

  • 基于 APN 的选择 - 不同 APN 可以使用不同的子网
  • 动态分配 - 从可用范围中随机选择 IP
  • 静态分配 - 支持 UE 请求的 IP 地址
  • 冲突检测 - 确保唯一的 IP 分配

请参见 UE IP 池分配 以获取配置。


入门

先决条件

  • Elixir ~1.16
  • Erlang/OTP 26+
  • 与 SGW-C、PGW-U 和 PCRF 的网络连接
  • 理解 LTE EPC 架构

启动 OmniPGW

  1. config/runtime.exs 中配置运行时设置
  2. 编译应用程序:
    mix deps.get
    mix compile
  3. 启动应用程序:
    mix run --no-halt

验证操作

检查日志以确认成功启动:

[info] 启动 OmniPGW...
[info] 在 127.0.0.42:42069 启动指标导出器
[info] 在 127.0.0.10 启动 S5/S8 代理
[info] 在 127.0.0.20 启动 Sxb 代理
[info] 启动 Gx 代理
[info] 启动 PFCP 节点管理器
[info] OmniPGW 成功启动

访问指标:http://127.0.0.42:42069/metrics (配置地址)。


配置

所有运行时配置在 config/runtime.exs 中定义。配置结构分为几个部分:

配置概述

快速配置参考

部分目的文档
metricsPrometheus 指标导出器监控指南
diameterGx 接口到 PCRFDiameter Gx 配置
s5s8GTP-C 接口到 SGW-CS5/S8 配置
sxbPFCP 接口到 PGW-UPFCP 配置
ueUE IP 地址池IP 池配置
pco协议配置选项PCO 配置

请参见 完整配置指南 以获取详细信息。


Web UI - 实时操作仪表板

OmniPGW 包含内置的 Web UI 用于实时监控和操作,提供系统状态的即时可见性,无需命令行工具或指标查询。

访问 Web UI

http://<omnipgw-ip>:<web-port>/

可用页面:

页面URL目的刷新率
PGW 会话/pgw_sessions查看所有活动的 PDN 会话2 秒
PFCP 会话/pfcp_sessions查看与 PGW-U 的 PFCP 会话2 秒
UPF 状态/upf_status监控 PFCP 对等体关联2 秒
Diameter 对等体/diameter监控 PCRF 连接性1 秒
日志/logs实时日志流实时

关键特性

实时更新:

  • 所有页面自动刷新 (无需手动重新加载)
  • 来自 OmniPGW 进程的实时数据流
  • 颜色编码的状态指示器 (绿色/红色)

搜索与过滤:

  • 按 IMSI、IP、MSISDN 或 APN 搜索会话
  • 即时过滤,无需页面重新加载

可展开的详细信息:

  • 点击任何行以查看完整详细信息
  • 检查完整的会话状态
  • 查看对等体配置和能力

无需身份验证 (内部使用):

  • 从管理网络直接访问
  • 设计用于 NOC/操作团队使用
  • 仅绑定到管理 IP 以确保安全

操作工作流程

会话故障排除:

1. 用户报告连接问题
2. 打开 PGW 会话页面
3. 按 IMSI 或电话号码搜索
4. 验证会话是否存在并具有正确的:
- 分配的 UE IP 地址
- 来自 PCRF 的 QoS 参数
- 建立的隧道端点
5. 如果未找到会话 → 检查 Diameter 页面以获取 PCRF 连接性

系统健���检查:

1. 打开 UPF 状态页面 → 验证所有 PGW-U 对等体是否“关联”
2. 打开 Diameter 页面 → 验证所有 PCRF 对等体是否“连接”
3. 打开 PGW 会话 → 检查活动会话计数与容量

容量监控:

  • 观察 PGW 会话计数
  • 与许可/预期容量进行比较
  • 确定高峰使用时间
  • 监控各 APN 之间的分布

Web UI 与指标

使用 Web UI 进行:

  • 单个会话详细信息
  • 实时对等体状态
  • 快速健康检查
  • 故障排除特定用户
  • 验证配置

使用 Prometheus 指标进行:

  • 历史趋势
  • 报警和通知
  • 容量规划图
  • 性能分析
  • 长期监控

最佳实践: 同时使用两者 - Web UI 用于即时操作,Prometheus 用于趋势和警报。


监控与指标

除了 Web UI,OmniPGW 还公开了与 Prometheus 兼容的指标以供监控:

可用指标

  • 会话指标

    • teid_registry_count - 活动 S5/S8 会话
    • seid_registry_count - 活动 PFCP 会话
    • session_id_registry_count - 活动 Gx 会话
    • address_registry_count - 分配的 UE IP 地址
    • charging_id_registry_count - 活动计费 ID
  • 消息指标

    • s5s8_inbound_messages_total - 接收到的 GTP-C 消息
    • sxb_inbound_messages_total - 接收到的 PFCP 消息
    • gx_inbound_messages_total - 接收到的 Diameter 消息
    • 消息处理持续时间分布
  • 错误指标

    • s5s8_inbound_errors_total - S5/S8 协议错误
    • sxb_inbound_errors_total - PFCP 协议错误
    • gx_inbound_errors_total - Diameter 错误

访问指标

指标通过 HTTP 在配置的端点公开:

curl http://127.0.0.42:42069/metrics

请参见 监控与指标指南 以获取仪表板设置和警报。


详细文档

本节提供 OmniPGW 文档的全面概述。文档按主题和用例组织。

文档结构

OmniPGW 文档
├── OPERATIONS.md (本指南)

└── docs/
├── 配置与设置
│ ├── configuration.md 完整的 runtime.exs 参考
│ ├── ue-ip-allocation.md IP 池配置
│ └── pco-configuration.md DNS、P-CSCF、MTU 设置

├── 网络接口
│ ├── pfcp-interface.md Sxb/PFCP (PGW-U 通信)
│ ├── diameter-gx.md Gx (PCRF 通信)
│ ├── diameter-gy.md Gy/Ro (OCS 通信)
│ └── s5s8-interface.md S5/S8 (SGW-C 通信)

└── 操作
├── session-management.md PDN 会话生命周期
└── monitoring.md Prometheus 指标与警报

按主题分类的文档

🚀 入门

文档描述目的
OPERATIONS.md主要操作指南 (本文件)概述和快速入门

⚙️ 配置

文档描��行数
configuration.md完整的 runtime.exs 配置参考1,600+
ue-ip-allocation.mdUE IP 池管理和分配943
pco-configuration.md协议配置选项 (DNS、P-CSCF、MTU)344

🔌 网络接口

文档描述行数
pfcp-interface.mdPFCP/Sxb 接口到 PGW-U1,355
diameter-gx.mdDiameter Gx 接口到 PCRF (策略控制)941
diameter-gy.mdDiameter Gy/Ro 接口到 OCS (在线计费)1,100+
s5s8-interface.mdGTP-C S5/S8 接口到 SGW-C456

📊 操作与监控

文档描述行数
session-management.mdPDN 会话生命周期和操作435
monitoring.mdPrometheus 指标、Grafana 仪表板、警报807

文档特性

📈 Mermaid 图表

所有文档均包含 Mermaid 图表 以便于理解:

  • 架构图
  • 序列图 (消息流)
  • 状态机
  • 网络拓扑

💡 实用示例

每个文档包括:

  • 真实世界的配置示例
  • 可复制粘���的配置
  • 常见用例

🔍 故障排除

每个接口文档包括:

  • 常见问题及解决方案
  • 调试命令
  • 诊断指标

🔗 交叉引用

文档之间广泛交叉链接,便于导航。

阅读路径

对于网络操作员

  1. OPERATIONS.md - 概述 (本文件)
  2. configuration.md - 设置
  3. monitoring.md - 监控
  4. session-management.md - 日常操作

对于网络工程师

  1. OPERATIONS.md - 架构概述 (本文件)
  2. pfcp-interface.md - 用户平面控制
  3. diameter-gx.md - 策略控制
  4. diameter-gy.md - 在线计费
  5. s5s8-interface.md - 会话管理
  6. ue-ip-allocation.md - IP 管理

对于配置与部署

  1. configuration.md - 完整参考
  2. ue-ip-allocation.md - IP 池
  3. pco-configuration.md - 网络参数
  4. monitoring.md - 设置监控

文档统计

  • 文档总数: 10
  • 总行数: ~7,300+
  • 总大小: ~180 KB
  • Mermaid 图表: 65+
  • 代码示例: 120+

涵盖的关键概念

架构

  • ✅ 控制/用户平面分离
  • ✅ OTP/Elixir 架构
  • ✅ 过程监督
  • ✅ 基于 GenServer 的会话

协议

  • ✅ PFCP (数据包转发控制协议)
  • ✅ GTP-C v2 (通用分组无线服务隧道协议)
  • ✅ Diameter (RFC 6733)

3GPP 接口

  • ✅ Sxb (PGW-C ↔ PGW-U)
  • ✅ Gx (PGW-C ↔ PCRF)
  • ✅ Gy/Ro (PGW-C ↔ OCS)
  • ✅ S5/S8 (SGW-C ↔ PGW-C)

操作

  • ✅ 会话管理
  • ✅ IP 分配策略
  • ✅ QoS 执行
  • ✅ 计费集成
  • ✅ 监控与警报

附加资源

3GPP 规范

规范标题
TS 29.274GTP-C v2 (S5/S8 接口)
TS 29.244PFCP (Sxb 接口)
TS 29.212Diameter Gx 接口 (策略控制)
TS 32.299Diameter 计费应用 (Gy/Ro)
TS 32.251分组交换域计费
TS 23.401EPC 架构

相关文档


贡献

要更新文档:

  1. 编辑 docs/ 中的 Markdown 文件
  2. 包含 Mermaid 图表以说明视觉概念
  3. 添加实用示例
  4. 交叉引用相关文档
  5. 如果添加新文档,请更新 OPERATIONS.md

快速链接


支持

有关 OmniPGW 的问题或问题:

  • 查���本指南中的文档
  • 检查配置示例
  • 查阅接口文档中的故障排除部分
  • 参考项目仓库以获取贡献信息

OmniPGW - 运营级 LTE 数据包网关控制平面

由 Omnitouch 网络服务提供

文档版本: 1.0 最后更新: 2025-10-29