CLI+SNMP不够用?AsterNOS SONiC 现已支持基于YANG的网络管理新范式
截至2025年底,运行最新版本AsterNOS的星融元交换机已支持新一代的基于 YANG 数据模型的运维管理接口,包括 NETCONF,RESTCONF(REST API)和 gNMI,覆盖数据中心、园区和边缘智能网关/路由等场景。
快速回顾: CLI 和 SNMP
CLI(命令行接口) 是一种基于文本的交互界面,用户通过键盘输入文字指令,由命令解析器完成解析之后向被管理设备下发指令。
CLI 作为最广泛最基础的管理手段用来管理小规模简单网络基本够用,一旦组网规模扩大,业务复杂化,其管理效率的下降显而易见。
SNMP(简单网络管理协议) 开发于上世纪 80 年代末,是第一个被广泛部署的互联网网络管理标准。
SNMP 基于服务器/客户端架构,被管理网络设备作为 SNMP Agent,向网管系统(NMS)提供各种信息,NMS 则通过 SNMP 协议向设备进行查询和配置,两者的交互过程主要是 NMS 和 Agent 一问一答的 Pull 模式,也可以由 Agent 主动上报信息(比如告警)。
尽管 SNMP 最初是为网络设备配置而设计的,但由于其缺乏更复杂的网络配置任务所需的灵活性和可靠性,目前主要用于采集呈现监控指标——通过整合不同设备厂家的管理信息库(MIB, Management Information Base),从中拿到所需指标的 OID 值由NMS完成对多厂商设备的统一集中监控。
MIB 是一个树型结构的数据库,定义网络设备中可管理资源,包括变量名称、数据类型、访问权限等,通过对象标识符 OID(object identifier)确定与被管理对象的对应关系;每个支持 SNMP 管理的设备都有自己的 MIB。
可以看到 SNMP 在定义监控参数方面的确有效,但也存在诸多缺陷,例如 SNMP 仅支持分钟级的监控精度,无法反映微突发流量,以及大规模监控需求下的 Server 资源占用问题等等。
什么是 YANG (数据建模语言)?
无论是CLI还是SNMP,在应对现代网络复杂、动态的需求时,逐渐显现出其在效率、精确性和一致性方面的局限性,这种局限性的本质在于它们是面向被管理对象单独配置的,而不是面向业务。
为了解决以上问题并应对现代网络环境中日益增长的配置管理需求,IETF 提出了 YANG(Yet Another Next Generation)作为描述网络配置数据的建模语言,正如其名,YANG 定义了一种适用于新一代网络管理的数据结构,其上是新一代的网管协议如NETCONF、RESTCONF、gRPC 等等。
相较于SNMP 使用的 MIB,YANG 模型更有层次,可扩展性更强。
MIB 使用平铺的表结构,难以区分配置和状态数据,用唯一的OID(如 1.3.6.1.2.1.4.3)来访问对象,而 YANG 模型支持用更灵活丰富的数据结构去描述设备的配置(configuration)和运行状态(state)信息,甚至是操作。
有了结构良好的 YANG 建模语言,网络运维工程师依照设备厂商所支持的 YANG 模型文件(厂商私有或开放标准,用于具体定义设备状态/配置数据的层次化结构)编写YANG 数据实例,并将其用 XML 或 JSON 编码后下发到设备用以执行各类配置管理操作。
发送方式可以是基于 SSH 的 NETCONF,也可以是基于 HTTP 的 RESTCONF(RESTful API),或是基于HTTP/2的 gRPC。
设备的配置管理
设备供应商使用原生的 YANG 模型或 IETF/OpenConfig 提供的标准 YANG 模型来描述其所有配置层次结构和所有支持的功能。网络工程师若需对设备进行配置,仅需要拿到对应设备的YANG文件并按照它的定义向设备下发即可。
以下是使用 NETCONF 在星融元园区交换机的eth1上创建静态ARP的示例。
<config><top>
<interfaces>
<interface>
<name>Ethernet1</name>
<ipv4>
<address operation=“create”>
<ip-prefix>20.1.1.1/20</ip-prefix>
</address>
<address operation=“create”>
<ip-prefix>30.1.1.1/20</ip-prefix>
</address>
<neighbor operation=“create”>
<ip>20.1.1.2</ip>
<mac-address>00:0e:c6:56:9d:35</mac-address>
</neighbor>
<neighbor operation=“create”>
<ip>30.1.1.2</ip>
<mac-address>00:0e:c6:56:9d:35</mac-address>
</neighbor>
</ipv4>
</interface>
</interfaces>
</top></config>
设备的运行状态
设备供应商使用 YANG 模型描述设备上当前运行的各种接口和协议的所有运行状态,这些信息可以通过以下两种方式获取。
- 使用 NETCONF 的 GET RPC (远程过程调用)和或供应商支持的其他管理接口的 RPC,与 SNMP 非常相似
- 使用网络遥测技术(Telemetry)来定义需要监控的字段,并将遥测信息发送到指定的收集器,采集精度可达纳秒级
可见, YANG 数据模型适用于各种现代化的网络管理场景,包括但不限于:
- 网络配置管理:自动配置和同步网络配置,减少人为错误,提高运营效率
- 网络状态监控:利用 YANG 模型对网络状态进行实时监控和验证,从而实现主动管理和故障排除
- 网络服务编排:支持 NFV 和 SDN 架构中的复杂服务定义和编排,从而实现动态的、按需的网络服务
基于 YANG 模型的几种主流管理协议
NETCONF
NETCONF 定义了基于 YANG 的现代网络管理范式,管理应用通过安全可靠的连接,使用基于XML的数据编码对网络设备进行精准的配置操控与数据获取,有明确的连接建立、会话和关闭过程,适用于电信级网络、核心路由器/交换机等对配置可靠性和精确性要求极高的组网环境。
以下是一个典型的数据中心带外管理网拓扑:
在带外管理网络内部部署一台管理服务器,使其能与所有交换机进行网络通信,即可对所有交换机进行集中管理,例如配置变更和状态检查。
NETCONF 和 YANG 提供了相对统一的操作接口来管理跨厂商的设备,同时具备强大的配置事务机制,配置失败时可以自动回滚。尽管不同厂商的设备支持的YANG模型可能不同,但管理应用可以建立在相同的底座上对所有设备执行相同的操作(如<edit-config>)。当具体的操作数据不同,可能需要网络管理员针对不同厂商设备编写不同的配置数据模板,而配置数据的语法又是相同的。
RESTCONF
RESTCONF 是 NETCONF 面向 RESTful API 的“简化版”,2017年融合了 NETCONF 和 HTTP 协议的 RESTCONF 悄然诞生,为用户提供高效开发 Web 化运维工具的能力,提供的编程接口符合IT业界流行RESTful风格,与现代云原生应用和 DevOps 工具链(如 Ansible, Python脚本)集成度极高,学习成本低。
与 NETCONF相比,RESTCONF 提供基本的 CRUD 操作,使用标准的 HTTP 方法(GET, POST, PUT, PATCH, DELETE),通常不用来实现复杂的事务配置。
OPENCONFIG/gRPC
gRPC(google Remote Procedure Calls)是Google于2015年发布的高性能通用RPC开源软件框架,基于HTTP/2协议实现,支持以Protocol Buffers格式定义接口,并以二进制编码传输数据,此外还具备跨平台等特性。通信双方都基于该框架进行二次开发,gRPC承担了传输、安全、编码等工作,使得开发者可以专注于应用层的接口定义和实现。
gNMI(gRPC Network Management Interface)是基于gRPC定义的一套用于管理目标设备的开源接口协议,gNMI 由谷歌发起,并得到 OpenConfig 社区大力推动,是未来发展方向,尤其在需要实时可视性和自动闭环控制的云原生网络中优势明显。
gNMI定义了以下四种服务:
- Capabilities:获取目标设备的能力。
- Get:获取目标设备当前的状态和配置数据。
- Set:向目标设备下发/修改配置。
- Subscribe:订阅/高速采集目标设备的数据。
在常规的状态查询和配置修改方面,gNMI 和 NETCONF 的能力相差无几;但对于大型数据中心、云网络、5G 核心网等需要海量、实时监控数据和高频配置的场景,gNMI 性能卓越,通过单一协议解决了配置与监控需求,并且原生支持流式遥测,推送模式效率远高于轮询,是云原生/可编程网络的首选。
以下是一个典型的数据中心云网场景组网拓扑,使用遥测方式对网络进行监控:
通过连接星融元数据中心网络交换机提供的额外 10G 接口并辅以隔离性配置,监控服务器可在不干扰业务流量的情况下对所有设备发起gNMI订阅请求,持续高频获取网络设备的各类信息,只要是设备支持的YANG模型有建模的数据均可。
gNMI 可采集的数据十分丰富,可用于监控设备状态、监控流量计数,配合 Prometheus 和 Grafana 等可视化工具,以上时序数据可被转化为直观的统计图表,并进一步实现系统异常告警、流量分析等功能。
星融元目前的支持情况
截至2025年底,运行最新版本AsterNOS的星融元交换机,包含数据中心、园区和边缘智能网关/路由产品系列,已支持新一代的基于 YANG 数据模型的运维管理接口,其中包括 NETCONF,RESTCONF(RESTful API)和 gNMI ,提供设备配置(如路由协议配置)、系统状态(如CPU负载、内存使用量、主板温度、风扇转速)以及端口转发计数、ACL命中计数、关键资源使用量在内的丰富统计信息。





