没有合适的资源?快使用搜索试试~ 我知道了~
首页openvswitch的原理分析.docx
资源详情
资源评论
资源推荐

OpenvSwitch 的原理分析
参考:
https://www.cnblogs.com/wanstack/p/7606416.html
https://www.cnblogs.com/bakari/p/8097478.html
https://blog.csdn.net/qq_15437629/article/details/74858832
https://my.oschina.net/tantexian/blog/648965?fromerr=C7Pp6sMs
OpenvSwitch 简介
openvSwitch 是一个高质量的、多层虚拟交换机,使用开源 Apache2.0
许可协议,由 Nicira Networks 开发,主要实现代码为可移植的 C 代码。它的
目的是让大规模网络自动化可以通过编程扩展,同时仍然支持标准的管理接口和
协议(例如 NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag)。此外,
它被设计位支持跨越多个物理服务器的分布式环境,类似于 VMware 的
vNetwork 分布式 vswitch 或 Cisco Nexus 1000 V。Open vSwitch 支持多
种 linux 虚拟化技术,包括 Xen/XenServer, KVM 和 VirtualBox。
openvswitch 是一个虚拟交换软件,主要用于虚拟机 VM 环境,作为一个
虚拟交换机,支持 Xen/XenServer,KVM 以及 virtualBox 多种虚拟化技术。

在这种虚拟化的环境中,一个虚拟交换机主要有两个作用:传递虚拟机之间的
流量,以及实现虚拟机和外界网络的通信。
内核模块实现了多个“数据路径”(类似于网桥),每个都可以有多个
“vports”(类似于桥内的端口)。每个数据路径也通过关联一下流表( ;ow
table)来设置操作,而这些流表中的流都是用户空间在报文头和元数据的基础
上映射的关键信息,一般的操作都是将数据包转发到另一个 vport。当一个数
据包到达一个 vport,内核模块所做的处理是提取其流的关键信息并在流表中
查找这些关键信息。当有一个匹配的流时它执行对应的操作。如果没有匹配,
它会将数据包送到用户空间的处理队列中(作为处理的一部分,用户空间可能
会设置一个流用于以后碰到相同类型的数据包可以在内核中执行操作)。
简单来看,OVS 由这三大部分构成:

ovsdb-sever: OVS 的数据库服务器,用来存储虚拟交换机的配置信
息。它与 manager 和 ovs-vswitchd 交换信息使用了 OVSDB(JSON-
RPC)的方式。
ovs-vswitchd: OVS 的核心部件,它和上层 controller 通信遵从
open;ow 协议,它与 ovsdb-server 通信使用 OVSDB 协议,它和内
核模块通过 netlink 通信,它支持多个独立的 datapath(网桥),它
通过更改 ;ow table 实现了绑定,和 VLAN 等功能。
ovs kernel module: OVS 的内核模块,处理包交换和隧道,缓存
;ow,如果在内核的缓存中找到转发规则则转发,否则发向用户空间
去处理。

术语与逻辑概念
在 Openvswitch 的使用中,为了能全面地理解 Openvswitch 的内部原
理,我们需要对其中的术语和概念有所了解。
Bridge:即网桥,在 Openvswitch 中每个虚拟交换机(vswitch)都可
以认为是一个网桥,因为 Openvswitch 在底层的通信是借助了网桥模块来实
现的,同时我们通过 brctl 也能查看到 ovs 所创建的网桥设备。
Datapath:即数据通路,在 Openvswitch 中每个 Bridge 我们都可以
理解为 Datapath,也就是说 Datapath 就是虚拟交换机。
每个 Datapath 项中我们都能看到存在几个 Port 项,它们其实就是虚拟交
换机(datapath)上的端口。如上 br-tun 项中,port2 就与远端的端口建立
了 gre 隧道。
Flowtable:即数据流表,根据之前对 OpenFlow 的介绍,我们已经了
解了 Openvswitch 中利用 open;ow 协议在实现虚拟交换机,而数据流表就
是提供给 Bridge/Datapath 做数据操作的指令。
Port:即端口,这里的端口是指虚拟交换机逻辑上的接口,我们可以通过

ovs-vsctl 命令查看各个网桥(即虚拟交换机)上的接入的端口。
Patch:即连线,我们可以理解为传统交换机的 Trunk,在这里就是网络
节点和运算节点间 ovs 虚拟交换的联结。
Tun/Tap:它们是 Linux/Unix 系统中的虚拟网络设备,TAP 等同于以太
网设备,操作 L2 层数据链路层的数据帧;TUN 则是模拟 L3 网络层的设备,操
作网络层的 IP 数据包。
在 OVS 中,其 GRE 隧道模式在底层的实现是由 TUN 支持的,而 TAP 设
备则是用来分隔 openvswitch 中不同的 subnet。
Vnet:即虚拟机的虚拟网卡,在运算节点上可以看到 OVS 对于 vnet 的
管理和传统的网桥模式不同,根据对设备物理地址的判断,应该是 OVS 采用了
相应的 tunneling 技术。
剩余30页未读,继续阅读

















闲人1970
- 粉丝: 24
- 资源: 15
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- Xilinx SRIO详解.pptx
- Informatica PowerCenter 10.2 for Centos7.6安装配置说明.pdf
- 现代无线系统射频电路实用设计卷II 英文版.pdf
- 电子产品可靠性设计 自己讲课用的PPT,包括设计方案的可靠性选择,元器件的选择与使用,降额设计,热设计,余度设计,参数优化设计 和 失效分析等
- MPC5744P-DEV-KIT-REVE-QSG.pdf
- 通信原理课程设计报告(ASK FSK PSK Matlab仿真--数字调制技术的仿真实现及性能研究)
- ORIGIN7.0使用说明
- 在VMware Player 3.1.3下安装Redhat Linux详尽步骤
- python学生信息管理系统实现代码
- 西门子MES手册 13 OpcenterEXCR_PortalStudio1_81RB1.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0