目录
源码下载
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
0 条评论