ovn的架构简介

参考文献:
https://www.cnblogs.com/liuhongru/p/11121731.html

1、OVN的功能?

  • L2 叫Logical switches 逻辑交换机
  • L3 叫Logical Router 逻辑路由器
  • ACL,就像我们物理交换机可以配置ACL, OVN可以针对逻辑交换机添加ACL
  • NAT, SNAT, DNAT都支持
  • Load Balancer, 支持面向内部的负载均衡和提供外部访问的负载均衡

2、OVN的架构

image

这幅架构图描绘了OVN的整体架构和进程分布,为了讨论方便我们把OVN中承担“管理”任务的节点成为ovn-central;把承担实际数据转发的节点成为ovn-host(可以类比成controller node、compute node)。

OVN引入了两个全新的OVSDB,

  • 一个叫Northbound DB(北向数据库,NB),
  • 一个叫Southbound DB(南向数据库,SB);

两个库都可以导出远程接口,允许用户通过OVSDB协议对数据库进行操作(不必担心OVSDB只是叫DB而已,其实它更像etcd、zookeeper这种中间件)。

NB存放的是我们定义的逻辑交换机逻辑路由器之类的数据,
我们可以通过ovn提供的命令行(ovn-nbctl)完成添加删除修改查询等操作;
当然可以写代码通过OVSDB协议完成类似动作。
OVN的NB是面向“上层应用”的或者叫“云管平台(Cloud Management System,CMS)”所以叫“北向接口”。

SB进程比较特殊它同时接受两边的“写入”,
首先是运行在ovn-host上的ovn-controller启动之后

  • 会去主动连接到ovn-central节点上的SB进程

  • 把自己的IP地址(Chassis)

  • 本机的`OVS状态(Datapath_Binding)

写入到SB数据库中(所以叫南向接口)。 ovn-controller还“监听”(etcd、zookeeper类似的功能)SB数据库中流表变化(Flow)去更新本地的OVS数据库,这叫“流表下发`”。

SB中的流表是由运行在ovn-central节点上的ovn-northd进程修改的,ovn-northd会“监听”NB的改变,把逻辑交换机路由器的定义转换成流表(Flow)写入到SB数据库

整个架构非常简单
OVN仅仅提供了一组网络模型(逻辑交换机、逻辑路由器等),
提供了一个OVSDB数据库用来存放这些模型同时把数据库的访问权限开放给最终用户
让最终用户通过OVSDB协议来直接“写入”这些模型(北向)。

3、ovn-northd的作用?

通过一个叫ovn-northd的进程

  • 网络模型转换成流表, 放入另一个数据库
  • ovn-host自己来“”流表(南向),
    以此完成
    流表下发

你可能感兴趣的:(ovn的架构简介)