网络 API 与 gRPC 技术详解
1. 网络 API 基础
在网络设备管理中,操作状态建模是一个重要的概念。当讨论网络元素的操作状态时,需要注意应用状态和派生状态的区别。应用状态指的是当前设备的活动配置,反映了操作员已经应用的设置;而派生状态是一组只读值,由设备的内部操作(如 CPU 或内存利用率)以及与外部元素的交互(如数据包计数器或 BGP 邻居状态)产生。
历史上,在 YANG 中对设备操作状态进行建模有不同的方法:
- 可以将所有内容封装在顶级容器中,或者从单独的状态数据存储中读取,该数据存储与用于配置管理的配置容器/数据存储完全不同。
- 另一种方法是为每个 YANG 子树创建一个单独的状态容器,与配置容器并列。
根据所使用的方法,可能需要调整 RPC 请求的构造方式。例如,srl 设备需要显式引用状态数据存储。
2. 操作状态处理与验证
配置管理工作流通常涉及处理一些输入数据以生成特定于设备的配置。但同样重要的是,操作员从网络设备检索状态数据并进行处理和验证的工作流。状态检索工作流的步骤如下:
1. 查询由一组 URL 和 HTTP 查询参数表示的远程 API 端点。
2. 接收带有二进制负载的 HTTP 响应。
3. 将此负载解组为遵循设备数据模型的 Go 结构体。
4. 在该结构体中,查看可以提取和评估的相关状态部分。
以下是一个具体的代码示例,展示了如何从 Arista 的 cEOS 实验室设备检索路由表内容:
func (r CEOS) GetRoutes(wg
超级会员免费看
订阅专栏 解锁全文

486

被折叠的 条评论
为什么被折叠?



