OpenStack之网络虚拟化介绍

  • OSI七层模型
    下面一张图简单的罗列出了OSI七层模型结构以及每一层的主要功能。


    OpenStack之网络虚拟化介绍_第1张图片
    OSI七层模型
  • 软件定义网络(SDN)
    SDN(Software Defined Network)即软件定义网络,是一种网络设计理念,或者一种推倒重来的设计思想。它的基本思路是将网络的控制平面和数据平面进行分离,从而通过集中地控制器的软件平台去实现可编程化控制底层硬件,实现对网络资源灵活的按需配置。
    SDN按照功能可以分为3层:
  1. 应用层
    包括各种不同的业务和应用
  2. 控制层
    主要负责处理数据平面资源的编排,维护网络拓扑、状态信息
  3. 基础设施层
    负责基于流表的数据处理、转发和状态收集
    其基本架构图如下所示


    OpenStack之网络虚拟化介绍_第2张图片
    sdn架构图
  • Open vSwitch
  1. 定义
    Open vSwitch,简称OVS,是一个虚拟交换软件,主要用于虚拟化平台,为虚拟机提供二层交换功能。支持Xen/XenServer,KVM和VirtualBox多种虚拟化技术
    支持openflow协议,可以使用任何支持openflow协议的控制器对OVS进行远程管理控制
  2. 相关概念
    Bridge:Bridge代表一个以太网交换机(Switch),一个主机中可以创建一个或者多个Bridge设备
    Port:端口和物理交换机的端口概念类似,每个Port都隶属于一个Bridge
    Interface:连接到Port的网络接口设备
    Controller:OpenFlow控制器
    datapath:负责执行数据交换,也就是把从接收端口收到的数据包在流表中进行匹配,并且执行匹配到的动作
    Flow table:每一个datapath都和一个flow table关联,当datapath接收到数据以后,OVS会在flow table中查找可以匹配的flow,执行对应的操作,诸如转发数据到另外的端口
    ovs-vswitchd:守护程序,实现交换功能,和Linux内核兼容模块一起,实现基于流的交换flow-based switching
    ovsdb-server:轻量级的数据库服务,主要保存了整个OVS的配置信息,包括接口、交换内容,VLAN等等。ovs-vswitchd会根据数据库中的配置信息工作
  3. 架构介绍
    OVS的整体框架如下图所示


    OpenStack之网络虚拟化介绍_第3张图片
    Open vSwitch模块结构图

    主要包括外部控制器(Off-box)、用户态部分(User)和内核态部分(Kernel)三大模块。

  4. 常用组件及操作
    ovs-dpctl:命令行工具,用来配置交换机内核模块,可以控制转发规则
# ovs-dpctl dump-flows br0    #查看指定bridge上面的datapath信息

ovs-vsctl:主要获取或者更改ovs-vswitchd的配置信息,此工具操作的时候会更新ovsdb-server中的数据库

# ovs-vsctl add-br br0                                          #添加网桥
# ovs-vsctl list-br                                             #列出所有网桥
# ovs-vsctl set-controller ovs-switch tcp:9.181.137.182:6633    #指定controller控制器

ovs-ofctl:用来控制OVS作为OpenFlow交换机工作时候的流表内容

ovs-ofctl add-flow ovs-switch "table=0 dl_src=01:00:00:00:00:00/01:00:00:00:00:00,actions-drop"    #屏蔽所有进入OVS的以太网广播数据包

你可能感兴趣的:(OpenStack之网络虚拟化介绍)