3. Infinera网管与自动化接口概览
在Infinera光网络中,DNA(Digital Network Administrator)是面向网络运维与自动化的核心管理平台。它承担设备纳管、拓扑发现、告警采集、性能监控、配置下发与业务开通等职责,并通过北向接口(Northbound Interface,NBI)向外部OSS/BSS、编排器、控制器或自研自动化平台开放能力。理解DNA的层次结构与北向接口的差异,是后续编写自动化脚本、对接监控系统与设计运维流程的前提。
DNA的分层架构与数据流
从工程视角看,DNA可划分为四层:南向适配层、核心服务层、数据存储层与北向开放层。南向适配层通过SNMP、TL1、CORBA或私有协议与Infinera光传输设备(如GX、FlexILS系列)通信,完成网元发现、告警上报与性能数据采集。核心服务层负责拓扑计算、告警关联、性能门限判定、配置模板管理与任务调度。数据存储层保存网元清单、历史性能、告警日志与配置基线。北向开放层则把上述能力封装为CORBA、REST、gRPC或SNMP/TL1接口,供外部系统调用。
数据流方向可以这样理解:设备产生的告警与PM(Performance Monitoring)数据经南向协议进入DNA,经核心服务归一化、关联与存储后,由北向接口以查询或订阅方式输出给上层系统;反向的配置与业务开通指令则从北向接口进入,经核心服务校验、编排后由南向协议下发到设备。这一“南向采集、核心处理、北向开放”的链路,是自动化闭环的基础。
北向接口的四种主要形态
CORBA接口是Infinera传统网管体系中成熟度最高的北向方式。它基于IDL定义对象模型,通过IIOP协议通信,适合需要强类型、事务性操作与大规模告警订阅的场景。其优势在于模型稳定、支持事件推送;不足是客户端依赖较重,跨语言开发与调试成本较高,通常需要厂商提供的Java/C++库。
REST接口以HTTP+JSON为主,资源化建模,易于被Python、Go、JavaScript等语言调用,适合快速开发自动化脚本、对接现代编排平台与可视化看板。REST通常提供拓扑查询、告警列表、性能数据拉取与配置下发等端点。其局限在于部分实现为轮询模式,实时性不如订阅机制,且批量操作时需注意分页与限流。
gRPC接口基于HTTP/2与Protobuf,支持双向流、服务端推送与高效二进制编码,适合高频性能数据采集、大规模网元状态同步与低延迟控制场景。gRPC的强契约(.proto文件)有利于多团队协作,但需要生成客户端桩代码,对运维人员的开发能力要求更高。
SNMP与TL1更偏向传统网管协议。SNMP以MIB+OID方式提供设备级指标读取与Trap告警,TL1则以命令行式消息完成配置与查询。二者在DNA中通常作为南向采集手段,也可在特定场景下作为北向补充,例如通过SNMP Trap接收设备告警,或通过TL1脚本执行批量配置。其优点是设备支持广泛、工具链成熟;缺点是语义表达能力有限、批量效率低、缺乏现代API的版本管理与鉴权体系。
API选型依据与决策要点
选型时不应只看“新旧”,而应围绕业务目标、数据特征、团队能力与运维约束四个维度评估。以下决策表可作为工程参考:
| 评估维度 | CORBA | REST | gRPC | SNMP / TL1 |
|---|---|---|---|---|
| 典型用途 | 告警订阅、事务性配置 | 脚本自动化、看板对接 | 高频PM采集、实时控制 | 设备级指标、Trap告警 |
| 实时性 | 高(事件推送) | 中(轮询为主) | 高(流式推送) | 中(Trap/轮询) |
| 开发门槛 | 高 | 低 | 中高 | 低至中 |
| 批量效率 | 中 | 中(受分页限制) | 高 | 低 |
| 适用团队 | 传统OSS集成商 | 自动化运维/DevOps | 平台研发团队 | 网管/传输工程师 |
实际工程中常见组合策略是:用REST完成日常查询与配置下发,用gRPC承载高频性能流,用CORBA或SNMP Trap接收告警事件,用TL1处理少量设备特有命令。选型前应确认DNA版本所支持的接口矩阵、鉴权方式(如OAuth2、Token、LDAP)、并发连接数与速率限制,并在实验室环境用真实网元验证端到端时延与数据完整性。
接口调用示例与结果判读
以REST接口查询某网元当前告警为例,典型请求如下(示例参数,非实测):
GET https://dna.example.com/api/v1/alarms?neId=GX-001&severity=critical
Headers:
Authorization: Bearer <token>
Accept: application/json
返回示例(节选):
{
"neId": "GX-001",
"alarms": [
{"alarmId": "A1001", "severity": "critical",
"type": "LOS", "port": "OTU2-1-1",
"raisedAt": "2025-01-15T08:22:10Z"}
],
"total": 1
}
判读要点:先看HTTP状态码(200表示成功,401为鉴权失败,429为限流),再检查返回体中的total与alarms数组是否与预期一致。若total为0但设备面板有红灯,应检查neId是否正确、告警是否已被确认或抑制。对于gRPC流式接口,则需关注流是否建立、消息序号是否连续、是否有UNAVAILABLE状态返回,以判断连接健康度。