2021-04-27 SONiC: VXLAN的实现
SONiC VXLAN实现中几个Orchestration Agent的作用
在SONiC VXLAN的实现中,根据SONiC的框架结构,分别通过几个Orchestration Agent实现了Redis数据库中不同Table之间的信息的处理。在对应不同功能的数据库中的数据因为用户修改网络配置、拓扑状态变化等原因发生变化时,Orchestration Agent(编排代理)执行特定的操作,对变化做出反应。
VxlanOrch: 响应Vxlan的配置信息,创建隧道和封装、解封装。
VrfMgrD:根据VNET表格的配置信息创建内核中的L3mdev接口。更新APP_DB和STATE_DB。
VrfOrch:根据VrfMgrD对APP_DB的修改通过SAI接口创建VRF
VnetOrch/VnetRouteOrch:VNet应用中的一个重要部件,VnetOrch通过SAI接口为VNet创建Ingress/Egress VRF或Bridge,并通过VxlanOrch API创建封装、解封装。在VNet中app-route-table有更新的时候,VnetRouteOrch获取VNet中的VRF或Bridge对象,并通过SAI进行配置。
IntfMgrD:创建内核路由接口;IntfMgrD检测STATE_DB中VRF的创建,更新APP_DB INTF_TABLE
IntfsOrch:IntfsOrch根据INTF_TABLE创建路由接口,在VNet应用中,IntfOrch调用 VnetOrch API来创建路由接口。
FdbOrch:对于远端VTEP中学习到的FDB表项,更新app-fdb-table并通过SAI接口进行配置。
SAI接口提供了对交换芯片的配置接口,VXLAN也有对应的SAI Pipeline
结构,这里的内容从业务创建流程的角度介绍了各种Orchestration Agent之间的互动。