其他分享
首页 > 其他分享> > VPP Agent 简介

VPP Agent 简介

作者:互联网

文章目录

VPP Agent Overview

VPP Agent 是为 VPP 基于云原生虚拟网元、 GO 语言实现的控制面/管理面 Agent,该 Agent 构建于云原生基础架构平台(CN-Infra)上。 VPP Agent 可以用做为基于 VPP 开发的虚拟网元的控制或管理的 Agent。

代码仓库: https://github.com/ligato/vpp-agent.git
wiki: https://ligato-docs.readthedocs.io
文档: https://docs.ligato.io

VPP Agent 功能

VPP Agent Features

VPP 配置和管理

通过 CLI 设置 VPP 并不总是方便的。 VPP CLI 命令主要反映二进制 API 调用,这有几个缺点,特别是必须按特定顺序调用它们(因为某些配置项可能依赖于其他配置项),或者单个命令通常只设置配置项的一部分(例如接口,set int state GigabitEthernet0/3/0 up -> set int mtu ip4 9000 GigabitEthernet0/3/0 -> set int ip address GigabitEthernet0/3/0 192.168.40.91/24)。
VPP Agent 解决了许多这样的问题:一方面定义易于阅读的原始定义 API,另一方面定义高级依赖项解决机制。经常被引用的项使用逻辑名称(而不是生成的索引),以确保更好的可读性和更方便的设置。
另一个重要特性是能够检索现有的 VPP 配置。 数据读取不仅用于状态报告,更重要的是用于重新同步。
我们还经常遇到这样的情况,即已配置的 VPP 按预期工作,重新启动/重新配置后,VPP 状态看起来完全相同,但没有像以前那样工作。这种行为的原因是二进制 API 调用在重新启动期间遵循了错误的顺序,配置 VPP 只是表面上正确的。这也可以通过 VPP 代理解决——插件确保所有 API 调用都以正确的顺序调用,以使其正常工作。

重新同步

重新同步是 Agent 的主要功能之一—它确保从外部源提供的配置、内部代理状态和实际 VPP 状态之间的一致性。自动重新同步从任何连接的持久数据存储中获取所有数据,并解释对VPP 的更改。同步还针对 Linux 主机执行。默认情况下,重新同步在代理启动时启动,但也可以在某些事件( VPP 重新启动、重新连接到数据库)时自动启动。

插件概念

Agent 是基于插件的。它允许构建只执行基本任务(基本配置)的简单 Agent,或者使用各种插件构建通用解决方案。许多插件的行为可以在启动时使用特定的配置文件进行设置或修改。插件定义在 Agent 中是标准化的,因此可以使用自定义的用户定义插件轻松扩展插件,并与其他自定义插件或任何预定义插件一起启动,以满足用户需求。

说明

VPP Agent 是管理平面,提供配置和监控服务。它不会决定如何处理到达任何接口的数据包,也不会根据实际 VPP 状态更改任何配置参数(路由、FIB)。

CN-Infra

Plugins

VPP Agent 有如下插件

配置插件

GoVPPMux

对 GOVPP 的封装,提供对 VPP 的访问,每个插件都可以使用 GoVPP mux 与 VPP 交互,GoVPP mux 为 VPP 实例提供独立的通信通道。通信通过共享内存段前缀完成,插件还支持自定义前缀,以连接到多 VPP 环境中的正确 VPP 实例。

Orchestrator

在单个代理实例从多个源(KV data store、GRPC 等)接收配置数据的场景中,orchestrator 用于同步检索到的数据并解决来自各个源的冲突。然后,数据处理插件将数据视为来自单个源。

Rest API

一个核心插件,对外暴露 REST API,可用于传递 VPP CLI命令、检索现有 VPP 配置或代理北向 API 对象。

Telemetry

对 VPP 收集统计数据用于监控

KVScheduler

KV 调度器是任何 VPP 或 Linux 相关数据处理的第一步。它验证配置项依赖项的存在,处理本地缓存,并在可能或基础插件允许的情况下执行重试。KV 调度器不直接处理数据(不调用任何 VPP 二进制 API),只确定实现所需结果所需的操作。数据被处理成其他插件中的低级对象。

默认提供的 VPP 核心功能插件

ACL plugin,Interface plugin,IPSec plugin,L2 plugin,L3 plugin,NAT plugin,Punt plugin,STN plugin

Linux 插件

Linux Interface plugin,Linux L3 plugin,Namespace plugin

CN-Infra 提供的 Plugin

日志管理,监控管理,Kfaka

VPP-Agent-ctl

VPP Agent ctl 是一种实用工具,其主要目的是测试和排除 VPP 代理故障。该工具允许将 Agent 中当前支持的任何类型的预定义配置放入 ETCD,使用自定义数据指定键和值(作为JSON),或读取当前 ETCD 配置。

标签:插件,VPP,plugin,简介,配置,Agent,API
来源: https://blog.csdn.net/mr1jie/article/details/119716700