OmniPGW 操作指南
OmniPGW - 数据包网关控制平面 (PGW-C)
由 Omnitouch 网络服务提供
目录
概述
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
- 在
config/runtime.exs中配置运行时设置 - 编译应用程序:
mix deps.get
mix compile - 启动应用程序:
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 中定义。配置结构分为几个部分:
配置概述
快速配置参考
| 部分 | 目的 | 文档 |
|---|---|---|
| metrics | Prometheus 指标导出器 | 监控指南 |
| diameter | Gx 接口到 PCRF | Diameter Gx 配置 |
| s5s8 | GTP-C 接口到 SGW-C | S5/S8 配置 |
| sxb | PFCP 接口到 PGW-U | PFCP 配置 |
| ue | UE 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.md | UE IP 池管理和分配 | 943 |
| pco-configuration.md | 协议配置选项 (DNS、P-CSCF、MTU) | 344 |
🔌 网络接口
| 文档 | 描述 | 行数 |
|---|---|---|
| pfcp-interface.md | PFCP/Sxb 接口到 PGW-U | 1,355 |
| diameter-gx.md | Diameter Gx 接口到 PCRF (策略控制) | 941 |
| diameter-gy.md | Diameter Gy/Ro 接口到 OCS (在线计费) | 1,100+ |
| s5s8-interface.md | GTP-C S5/S8 接口到 SGW-C | 456 |
📊 操作与监控
| 文档 | 描述 | 行数 |
|---|---|---|
| session-management.md | PDN 会话生命周期和操作 | 435 |
| monitoring.md | Prometheus 指标、Grafana 仪表板、警报 | 807 |
文档特性
📈 Mermaid 图表
所有文档均包含 Mermaid 图表 以便于理解:
- 架构图
- 序列图 (消息流)
- 状态机
- 网络拓扑
💡 实用示例
每个文档包括:
- 真实世界的配置示例
- 可复制粘���的配置
- 常见用例
🔍 故障排除
每个接口文档包括:
- 常见问题及解决方案
- 调试命令
- 诊断指标
🔗 交叉引用
文档之间广泛交叉链接,便于导航。
阅读路径
对于网络操作员
- OPERATIONS.md - 概述 (本文件)
- configuration.md - 设置
- monitoring.md - 监控
- session-management.md - 日常操作
对于网络工程师
- OPERATIONS.md - 架构概述 (本文件)
- pfcp-interface.md - 用户平面控制
- diameter-gx.md - 策略控制
- diameter-gy.md - 在线计费
- s5s8-interface.md - 会话管理
- ue-ip-allocation.md - IP 管理
对于配置与部署
- configuration.md - 完整参考
- ue-ip-allocation.md - IP 池
- pco-configuration.md - 网络参数
- 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.274 | GTP-C v2 (S5/S8 接口) |
| TS 29.244 | PFCP (Sxb 接口) |
| TS 29.212 | Diameter Gx 接口 (策略控制) |
| TS 32.299 | Diameter 计费应用 (Gy/Ro) |
| TS 32.251 | 分组交换域计费 |
| TS 23.401 | EPC 架构 |
相关文档
- 项目自述文件: README.md
- 配置文件: config/runtime.exs
贡献
要更新文档:
- 编辑
docs/中的 Markdown 文件 - 包含 Mermaid 图表以说明视觉概念
- 添加实用示例
- 交叉引用相关文档
- 如果添加新文档,请更新 OPERATIONS.md
快速链接
支持
有关 OmniPGW 的问题或问题:
- 查���本指南中的文档
- 检查配置示例
- 查阅接口文档中的故障排除部分
- 参考项目仓库以获取贡献信息
OmniPGW - 运营级 LTE 数据包网关控制平面
由 Omnitouch 网络服务提供
文档版本: 1.0 最后更新: 2025-10-29