源码下载

https://github.com/openvswitch/ovs/releases/tag/v2.5.8
源码说明:https://blog.csdn.net/PeterBupt/article/details/73740111

openvswitch的架构原理

https://blog.csdn.net/weixin_42175752/article/details/139848133
https://blog.csdn.net/qq_20817327/article/details/106199237

包括ovsdb-server、ovs-vswitchd和datapath三个主要组件

  • ovsdb-server
    ovsdb-server是OVS的数据库服务器,负责操作OVSDB(Open vSwitch Database),即OVS的数据库。OVSDB是一个轻量级的数据库,用于存储OVS的配置信息、状态信息等。ovsdb-server通过提供API接口,允许其他组件对OVSDB进行读写操作。

  • ovs-vswitchd
    ovs-vswitchd是OVS的核心守护进程,负责实现OpenFlow交换机功能。它与controller进行通信,接收并处理来自controller的指令。同时,ovs-vswitchd还负责处理用户态的数据包转发逻辑,与内核态的datapath模块进行交互。

  • datapath
    datapath是OVS的内核模块,负责数据包的快速处理和转发。它运行在Linux内核空间中,利用内核的高效性和稳定性来保证数据包的快速转发。datapath模块会根据流表进行数据包的匹配和转发操作,实现数据包的快速处理。
    需要加载openvswitch.ko模块,可以直接集成到内核源码,也可单独加载集成。

网络包的转发流程

https://blog.51cto.com/u_15049782/2561850

组件源码分析

内核模块

在datapath/datapath.c中会调用module_init(dp_init);来初始化内核模块。

ovs-vswitchd组件

https://zhuanlan.zhihu.com/p/620243453

ovs-vsctl与ovsdb交互源码

https://blog.csdn.net/u010710985/article/details/115744870


0 条评论

发表回复

您的电子邮箱地址不会被公开。