1. CLI(命令行接口)管控
概述:
- CLI主要通过命令行对网络设备进行管控,分为带内和带外两种方式。
- 带内接口:通过插网线与设备数据传输共用一条线路。
- 带外接口(console口):专用于设备控制,通常为蓝色线。
存在问题: - 网络环境复杂时,自动化编程难度加大。
- 不同设备命令支持不一致,可能导致部分命令执行失败。
- 监控性较差,命令输出解析成本高。
2. SNMP协议
原理:
- 每台设备配置代理,通过SNMP实现网络设备管理。
主要组件: - NMS(网络管理系统)
- Agent(代理进程)
- 被管理对象
- MIB(管理信息库)
工作模式: - Polling/Get:NMS与代理一问一答,基于UDP传输。
- TRAP:代理主动上报告警。
- Set:NMS向代理下达指令,管理设备。
MIB管理信息库: - 采用树形结构,每个指标用OID标识,包含权限、数据类型、含义等。
问题分析: - UDP传输不安全,且set命令事务性无法保障。
3. 广义遥测
结构划分:
- 管理系统分为采集器、控制器、分析器、设备。
数据流: - 控制器向设备发送订阅请求,设备主动向采集器推送数据,再传递至NMS。
4. YANG数据模型
作用:
- 用于描述网络设备模型,类似表格结构,便于编程和数据管理。
示例:
list user { key "name"; leaf name { type string; } leaf full-name { type string; } }
数据格式: - 管理员查询设备数据时返回XML格式。
- XML标签可自定义,相较于JSON更为规范,但冗余较多。
XML示例:
<user> <name>zhangsan</name> <full-name>张三</full-name> </user> <user> <name>lisi</name> <full-name>李四</full-name> </user>
5. NETCONF协议
特点:
- 与SNMP类似,均为网络设备管理协议。
- SNMP数据存储和组织复杂,基于UDP协议,安全性和一致性不足。
工作流程:
- 设备开启NETCONF服务。
- 客户端通过SSH创建会话,互发标签交换功能集。
- 客户端发送RPC请求,设备响应。
- 优雅关闭SSH连接。
技术细节:
- 全过程采用XML格式传输。
- YANG数据模型用于标准化数据建模。
- XML命名空间指定后,可使用对应YANG模板标签。
6. RESTCONF协议
优势:
- 无需记忆复杂XML标签,通过API即可配置设备。
- 基于HTTP协议访问设备资源,支持JSON格式传输。
工作流程:
- 设备配置RESTCONF支持。
- 构建HTTP请求,设置请求头、请求体。
- 根据响应码处理请求结果。
7. OpenConfig数据模型
说明:
- OpenConfig不是协议,而是一套用YANG编写的厂商无关数据模型。
- 解决不同运营商对同一设备YANG模型不一致的问题。
内容包含: - 通用数据模型
- 流式遥测(设备主动持续推送数据)
- 管理协议
- 测试与合规
流式遥测特点: - 主动推送与持续流式传输结合,提升远程数据采集效率。
8. GPB(Google Protocol Buffers)
原理:
- 通过.proto文件定义数据结构,将传输内容加密为二进制格式。
- 每个字段有编号,接收方通过密码本解码。
流程举例:
- 编写.proto文件定义结构。
- 数据编码为二进制流。
- 接收方解码,生成对象。
示例:
message WebLog { required int32 srcIP = 1; required int32 srcPort = 2; required string url = 3; optional string agent = 4; }
数据编码示例:
字段编号1, 类型=整型\] \[值3232235777\] \[字段编号2, 类型=整型\] \[值8080\] \[字段编号3, 类型=字符串\] \[长度8\] \[sina.com\] \[字段编号4, 类型=字符串\] \[长度...\] \[Mozilla/5.0...
解码过程:
- 按编号查密码本,读取对应字节,生成对象。
工具支持: - Protobuf库可生成多语言代码工具库(如Java类及get/set方法)。
9. gNMI(gRPC Network Management Interface)
定位:
- 标准化接口,支持RPC风格远程调用。
与RESTCONF区别: - RESTCONF适合Web开发者,侧重API管理网络。
- gNMI创建统一接口,支持高效性能指标推拉结合。
应用思考: - 设备监控指标推送需合理决策,按需拉取与条件触发推送结合。
- 华为案例:设备默认30秒推送基本指标,检测到错误时提升频率至1秒,持续30秒。运维人员可通过gNMI临时拉取数据。