光猫注册协议详解
核心协议栈
┌─────────────────────────────────────────┐
│ 应用层配置管理 │
│ OMCI协议 │
├─────────────────────────────────────────┤
│ 注册/激活/测距 │
│ PLOAM消息 │
├─────────────────────────────────────────┤
│ PON传输层 │
│ GPON (G.984) / EPON (802.3ah) │
├─────────────────────────────────────────┤
│ 物理层 │
│ 光纤传输 │
└─────────────────────────────────────────┘
PON技术标准对比
| 技术 | 标准 | 下行速率 | 上行速率 | 运营商使用 |
| EPON |
IEEE 802.3ah |
1Gbps |
1Gbps |
较老小区 |
| GPON |
ITU-T G.984 |
2.5Gbps |
1.25Gbps |
最常见 |
| XG-PON |
ITU-T G.987 |
10Gbps |
2.5Gbps |
逐步部署 |
| XGS-PON |
ITU-T G.9807 |
10Gbps |
10Gbps |
新建网络 |
国内主流:GPON(G.984标准)
关键协议1:PLOAM(物理层OAM消息)
全称:Physical Layer Operation, Administration and Maintenance
作用:光猫注册、激活、测距的核心协议
PLOAM消息类型
┌──────────────────────────────────────────────────────┐
│ OLT → ONU 方向(下行消息) │
├──────────────────────────────────────────────────────┤
│ 0x01 Upstream_Overhead 上行开销配置 │
│ 0x03 Serial_Number_Request 请求ONU上报SN │
│ 0x04 Assign_ONU-ID 分配ONU-ID │
│ 0x05 Ranging_Time 下发测距结果 │
│ 0x06 Deactivate_ONU-ID 去激活ONU │
│ 0x07 Disable_Serial_Number 禁用某SN │
│ 0x09 Request_Password 请求密码 │
│ 0x0A Assign_Alloc-ID 分配带宽标识 │
│ ... │
└──────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────┐
│ ONU → OLT 方向(上行消息) │
├──────────────────────────────────────────────────────┤
│ 0x01 Serial_Number_ONU 上报SN序列号 │
│ 0x02 Password 上报密码/LOID │
│ 0x09 REI 误码上报 │
│ 0x0B Acknowledgement 确认消息 │
│ ... │
└──────────────────────────────────────────────────────┘
GPON注册完整流程
ONU(光猫) OLT(运营商设备)
│ │
│ ←───── Serial_Number_Request ─────── │ 步骤1: OLT广播请求SN
│ │
│ ────── Serial_Number_ONU ──────────→ │ 步骤2: ONU上报SN
│ (包含8字节序列号) │
│ │
│ ←───── Assign_ONU-ID ────────────── │ 步骤3: 分配临时ID
│ (分配ONU-ID: 0-253) │
│ │
│ ←───── Ranging_Request ──────────── │ 步骤4: 测距请求
│ │
│ ────── Ranging_Response ───────────→ │ 步骤5: 测距响应
│ │
│ ←───── Ranging_Time ─────────────── │ 步骤6: 下发延时补偿值
│ (均衡传输延时) │
│ │
│ ←───── Request_Password ─────────── │ 步骤7: 请求密码/LOID
│ │
│ ────── Password ───────────────────→ │ 步骤8: 上报认证信息
│ (LOID或PON密码) │
│ │
│ [OLT验证密码] │
│ │
│ ←───── Assign_Alloc-ID ──────────── │ 步骤9: 分配带宽资源
│ │
│ [注册完成,开始OMCI配置] │
│ │
关键协议2:OMCI(配置管理协议)
全称:ONT Management and Control Interface
标准:ITU-T G.988
作用:OLT远程管理和配置光猫
OMCI能做什么
┌────────────────────────────────────────────────────┐
│ OMCI 管理功能 │
├────────────────────────────────────────────────────┤
│ 📡 业务配置 │
│ - 创建VLAN │
│ - 配置PPPoE账号密码 │
│ - 设置网速限制 │
│ - 开通IPTV/VoIP │
├────────────────────────────────────────────────────┤
│ 🔧 设备管理 │
│ - 远程重启光猫 │
│ - 固件升级 │
│ - 读取设备状态 │
│ - 修改配置参数 │
├────────────────────────────────────────────────────┤
│ 📊 性能监控 │
│ - 光功率监测 │
│ - 误码率统计 │
│ - 流量统计 │
└────────────────────────────────────────────────────┘
OMCI消息格式
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
├─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┤
│ Transaction ID │ Message Type │ Device │
├───────────────────────────────────┴───────────────┴──────────┤
│ Managed Entity Class │ Managed Entity ID │
├──────────────────────────────────────────────────────────────┤
│ │
│ Message Contents │
│ (32 bytes) │
│ │
├──────────────────────────────────────────────────────────────┤
│ Trailer/MIC │
└──────────────────────────────────────────────────────────────┘
OMCI消息类型
# 常见操作类型
0x04 Create 创建实体
0x06 Delete 删除实体
0x08 Set 设置属性
0x09 Get 获取属性
0x0D MIB Upload 上传MIB数据库
0x10 Alarm 告警上报
关键管理实体(ME)
┌─────────────────────────────────────────────────────┐
│ ME Class ID │ 名称 │ 作用 │
├───────────────┼──────────────────────┼──────────────┤
│ 0x0002 │ ONU Data │ ONU基础信息 │
│ 0x0005 │ Cardholder │ 槽位管理 │
│ 0x0006 │ Circuit Pack │ 板卡信息 │
│ 0x000B │ PPTP Ethernet UNI │ 以太网端口 │
│ 0x002D │ MAC Bridge Port │ 桥接端口 │
│ 0x0054 │ GEM Port │ GEM端口 │
│ 0x0084 │ VLAN Tagging Filter │ VLAN过滤 │
│ 0x0158 │ ONU-G │ ONU全局信息 │
│ 0x0159 │ ONU2-G │ ONU扩展信息 │
└───────────────┴──────────────────────┴──────────────┘
认证信息在协议中的位置
SN序列号结构(8字节)
┌────────────────┬────────────────────────┐
│ Vendor ID │ Vendor Specific │
│ (4 bytes) │ (4 bytes) │
├────────────────┼────────────────────────┤
│ 48 57 54 43 │ 12 34 56 78 │
│ (H W T C) │ (设备编号) │
└────────────────┴────────────────────────┘
完整SN: HWTC-12345678(华为设备示例)
Password/LOID字段(10字节)
PLOAM Password消息格式:
┌──────────────────────────────────────────┐
│ ONU-ID (1 byte) │
│ Message-ID: 0x02 │
│ Password (10 bytes) │
│ - 可填入LOID │
│ - 或填入PON认证密码 │
└──────────────────────────────────────────┘
实际抓包示例
使用光猫调试获取PLOAM消息
# 华为光猫 Telnet 调试
telnet 192.168.1.1
# 查看PON状态
WAP> display pon status
# 查看注册状态
WAP> display gpon onu state
# 典型输出
PON State: O5 (正常工作状态)
ONU ID: 12
SN: 48575443-ABCD1234
LOID: 021012345678901234
PON状态机
┌─────────────────────────────────────────────────────────────┐
│ 状态 │ 名称 │ 说明 │
├──────────┼────────────────────┼──────────────────────────────┤
│ O1 │ Initial │ 初始状态,等待接收 │
│ O2 │ Standby │ 收到上行参数 │
│ O3 │ Serial Number │ SN获取阶段 │
│ O4 │ Ranging │ 测距阶段 │
│ O5 │ Operation │ 正常工作 ✓ │
│ O6 │ POPUP │ 掉电重启恢复 │
│ O7 │ Emergency Stop │ 紧急停止 │
└──────────┴────────────────────┴──────────────────────────────┘
正常注册流程: O1 → O2 → O3 → O4 → O5
协议安全分析
认证弱点
┌────────────────────────────────────────────────────────┐
│ 问题1: SN可被读取和克隆 │
│ - SN存储在光猫Flash中 │
│ - 通过UART/Telnet可读取 │
│ - 部分设备允许修改SN │
├────────────────────────────────────────────────────────┤
│ 问题2: LOID传输未加密 │
│ - PLOAM消息明文传输 │
│ - 理论上可被窃听(需物理接入) │
├────────────────────────────────────────────────────────┤
│ 问题3: OMCI配置可被篡改 │
│ - 获取超级管理员后可修改配置 │
│ - 部分光猫OMCI实现有漏洞 │
└────────────────────────────────────────────────────────┘
运营商防护措施
1. SN绑定
└─ 后台记录合法SN,陌生SN拒绝注册
2. LOID + 密码双重认证
└─ 部分省份要求同时验证
3. MAC地址绑定
└─ 额外绑定WAN口MAC
4. 光功率检测
└─ 异常光功率告警(检测非法接入)
5. 设备定位
└─ 通过测距值确定物理位置
协议标准文档
| 协议 | 标准号 | 内容 |
| GPON总体 |
ITU-T G.984.1 |
系统架构 |
| GPON物理层 |
ITU-T G.984.2 |
PMD规范 |
| GPON传输层 |
ITU-T G.984.3 |
TC层,含PLOAM |
| OMCI |
ITU-T G.988 |
ONT管理接口 |
| EPON |
IEEE 802.3ah |
以太网PON |
| XG-PON |
ITU-T G.987 |
10G PON |
总结
光猫注册 = PLOAM消息交互(底层握手)
│
├── SN上报
├── 测距校准
├── LOID/密码认证
│
▼
OMCI配置下发(业务层管理)
│
├── 创建VLAN
├── 配置PPPoE
├── 开通业务
│
▼
正常上网