设为首页 收藏本站
查看: 1551|回复: 0

[经验分享] Open VSwitch简介

[复制链接]

尚未签到

发表于 2017-6-24 22:59:54 | 显示全部楼层 |阅读模式
  OVS简介
  OpenvSwitch,简称OVS是一个虚拟交换软件,主要用于虚拟机VM环境,作为一个虚拟交换机,支持Xen/XenServer, KVM, and VirtualBox多种虚拟化技术。虽然是虚拟交换机,但是其工作原理与物理交换机类似。在虚拟交换机的实现中,其两端分别连接着物理网卡和多块虚拟网卡,同时虚拟交换机内部会维护一张映射表,根据MAC地址寻找对应的虚拟机链路进而完成数据转发。
  OpenvSwitch是实现虚拟化网络的重要基础组件,在OpenStack中利用OpenvSwitch作为底层部件来完成虚拟网络提供和租户网络管理。OpenvSwitch可以实现访问控制功能,通过转发规则,可以实现简单的安全行为,包括通过、禁止等。
  OVS组件
   DSC0000.png
  ovsdb-sever: OVS的数据库服务器,用来存储虚拟交换机的配置信息。它于manager和ovs-vswitchd交换信息使用了OVSDB(JSON-RPC)的方式。
  ovs-vswitchd: OVS的核心部件,实现switch的daemon,包括一个支持流交换的Linux内核模块;和上层controller通信遵从OPENFLOW协议,与ovsdb-server通信使用OVSDB协议,和内核模块通过netlink通信,支持多个独立的datapath(网桥)。
  ovs kernel module: OVS的内核模块,处理包交换和隧道,缓存flow,如果在内核的缓存中找到转发规则则转发,否则发向用户空间去处理。
  ovs-vsctl: 查询和更新ovs-vswitchd的配置(通过对ovsdb进行配置)。
  ovs-ofctl: 查询和控制OpenFlow交换机。
  ovs-appctl: 发送命令消息,对daemon进行控制、查询ovs-dpctl 用来配置switch内核模块,一些Scripts and specs 辅助OVS安装在Citrix XenServer上,作为默认switch;
  ovs-brcompatd 让ovs-vswitch替换Linuxbridge,包括获取bridge ioctls的Linux内核模块。
  ovsdbmonitor GUI工具: 可以远程获取OVS数据库和OpenFlow的流表。
  此外,OVS也提供了支持OpenFlow的特性实现,包括
  ovs-openflowd:一个简单的OpenFlow交换机。
  ovs-controller:一个简单的OpenFlow控制器。
  ovs-pki:OpenFlow交换机创建和管理公钥框架。
  ovs-tcpundump:tcpdump的补丁,解析OpenFlow的消息。
  工作流程
    支持OpenFlow的OVS核心架构主要包括OpenFlow协议支持和数据转发通路等两个部分。OVS的数据转发通路(datapath)主要用于执行数据交换工作,即负责从设备入端口接收数据包并依据流表信息对其进行管理,例如将其转发至出端口、丢弃或者进行数据包修改。而OVS的OpenFlow协议支持则用于实现交换策略,即通过增加、删除、修改流表项的方式告诉数据转发通路针对不同的数据流采用不同的动作。
   DSC0001.png
    报文从端口上来(1),在datapatch中转发,查询Flow Table(6),如果查到了直接转出去(7)。
    如果未查询到,送到用户态(2),在vswitchd中查询软表,生成精确的flow table下发到kernel(4),然后报文被送回kernel继续转发(5),此时会再查询flow table(6),然后转发出去(7)。
  ·Datapath是在kernel mode。
  ·Datapath里是精确匹配,计算报文头的hash与流表进行匹配,匹配到了进行转发。
  ·Datapath里未匹配时,送到userspace进行软件查找转发,并在datapath里添加精确匹配流表。
  ·Datapath里的流会老化。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-387750-1-1.html 上篇帖子: Linux磁盘管理:lvcreate 常用命令 下篇帖子: 破解Linux系统root用户密码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表