在OVN(Open Virtual Network)架构中,中央节点(主要包括ovn-northd 和OVN Southbound DB 、OVN Northbound DB )与数据节点(主要是运行ovn-controller的计算节点)之间的通信,主要依赖以下两种核心协议:
1. OVSDB协议(Open vSwitch Database Protocol)
- 作用 :用于中央节点的数据库(南北向数据库)与数据节点的
ovn-controller
之间的配置同步 。- 中央节点的
ovn-northd
会将北向数据库(定义逻辑网络)的配置翻译为南向数据库(具体流表规则),数据节点的ovn-controller
通过OVSDB协议监听南向数据库的变化,获取本地需要执行的网络规则。
- 中央节点的
- 特点 :
- 基于JSON-RPC,运行在TCP之上,默认端口为6642 (南向数据库通信)和6643(北向数据库通信,较少直接用于数据节点)。
- 采用"发布-订阅"模式,数据节点会主动订阅数据库的变更,实现配置的实时同步。
2. Geneve协议(Generic Network Virtualization Encapsulation)
- 作用 :用于数据节点之间(以及数据节点与网关节点)的隧道通信 ,承载虚拟网络流量。
- 虽然Geneve主要用于数据平面的流量转发,但中央节点通过OVSDB配置的隧道规则(如端点IP、VNI等),最终依赖Geneve实现跨节点的虚拟网络包封装/解封装。
- 特点 :
- 一种通用的网络虚拟化封装协议,基于UDP,默认端口为6081。
- 支持灵活的元数据携带,适合多租户场景。
总结
- 控制平面(配置同步):OVSDB协议(TCP 6642/6643)。
- 数据平面(流量转发):Geneve协议(UDP 6081)。
这两种协议共同支撑了OVN从中央节点到数据节点的完整通信链路。