OVS 学习(一)

来源:互联网 发布:hype pro mac 编辑:程序博客网 时间:2024/05/16 15:19

一、ovs、openflow简介

为什么会有ovs和openflow的出现:

传统的交换路由厂商是将数据包转发和控制(包括路由协议、转发路径)功能集成在交换和路由设备中,这样不利于使用者对控制逻辑进行扩展和修改,路由交换算法效率不高。openflow协议是一种将控制逻辑和转发模块进行分离的新型协议。转发模块依旧运行在旧有网络设备上,而我们可以通过对控制逻辑的修改来定制我们需要的转发规则。

ovs的全称是open vswitch,也就是运行在xen,kvm等虚拟平台上的多层虚拟交换机,主要实现代码为C。多层的意思是指,不像普通的二层交换机只能运行在二层,而是对二层和三层的包都能够做操作。设计的目的是为了通过编程来对大规模的网络进行自动化扩展,即实现SDN。ovs支持openflow,可以通过支持openflow的控制器来对ovs进行远程控制。

综合来看,ovs是一个能够运行openflow协议的虚拟交换机,他可以创建openflow规则,也可以连接到网络控制设备来对openflow进行控制。


二、组成部分

ovs中的几个主要模块

  • ovs-vswitchd   主要模块,实现switch的daemon,包括一个支持流交换的Linux内核模块;
  • ovsdb-server   轻量级数据库服务器,提供ovs-vswitchd获取配置信息
  • ovs-brcompatd   让ovs-vswitch替换Linux bridge,包括获取bridge ioctls的Linux内核模块
  • ovs-dpctl   用来配置switch内核模块
  • ovs-vsctl    查询和更新ovs-vswitchd的配置
  • ovs-appctl    发送命令消息,运行相关daemon
  • ovsdbmonitor    GUI工具,可以远程获取OVS数据库和OpenFlow的流表


此外,OVS也提供了支持OpenFlow的特性实现,包括

  • ovs-openflowd    一个简单的OpenFlow交换机;
  • ovs-controller    一个简单的OpenFlow控制器;
  • ovs-ofctl    查询和控制OpenFlow交换机和控制器;
  • ovs-pki    为OpenFlow交换机创建和管理公钥框架;tcpdump的补丁,解析OpenFlow的消息;


三、OVS重要概念
  • Bridge: Bridge 代表一个以太网交换机(Switch),一个主机中可以创建一个或者多个 Bridge 设备。
  • Port: 端口与物理交换机的端口概念类似,每个 Port 都隶属于一个 Bridge。
  • Interface: 连接到 Port 的网络接口设备。在通常情况下,Port 和 Interface 是一对一的关系, 只有在配置 Port 为 bond 模式后,Port 和 Interface 是一对多的关系。
  • Controller: OpenFlow 控制器。OVS 可以同时接受一个或者多个 OpenFlow 控制器的管理。
  • datapath: 在 OVS 中,datapath 负责执行数据交换,也就是把从接收端口收到的数据包在流表中进行匹配,并执行匹配到的动作。
  • Flow table: 每个 datapath 都和一个“flow table”关联,当 datapath 接收到数据之后, OVS 会在 flow table 中查找可以匹配的 flow,执行对应的操作, 例如转发数据到另外的端口。



0 0