目录

VTN简述

VTN Manager

REST API

VTN Coordinator

网络功能虚拟化

虚拟网络功能构建

物理网络资源映射

vBridge 功能

vRouter功能

流过滤功能


VTN简述

OpenDaylight虚拟租户网络(VTN)是在SDN控制器上的一个应用程序,旨在提供多租户虚拟网络。

传统上,由于网络被配置为每个部门和系统的“竖井”,所以需要在网络系统和运行费用上投入大量资金。因此,必须为每个租户安装各种网络设备,并且不能与其他租户共享这些设备。整个复杂网络的设计、实现和运行都是一项繁重的工作。

VTN的唯一性是一个逻辑抽象平面。这使逻辑平面与物理平面完全分离。用户可以在不知道物理网络拓扑或带宽限制的情况下设计和部署所需的任何网络。VTN允许用户使用传统的L2/L3网络的外观和感觉来定义网络。一旦在VTN上设计了网络,它将自动映射到底层物理网络,然后利用SDN控制协议在单个交换机上配置。逻辑平面的定义不仅可以隐藏底层网络的复杂性,还可以更好地管理网络资源。它实现了减少网络服务的重新配置时间和最小化网络配置错误。

VTN Overview

VTN应用程序包含两个组件:

  • VTN Manager:VTN管理器
  • VTN Coordinator:VTN协调器

VTN Manager

1.一个OpenDaylight插件通过与其他模块交互可以实现VTN模型的组件功能。OpenDaylight插件还提供了一个REST接口来配置OpenDaylight中的VTN组件。

2.VTN管理器作为一个OpenDaylight的插件被实现。VTN管理器提供了一个REST接口来创建/更新/删除VTN组件。

3.VTN协调器中的用户命令被OpenDaylight驱动程序组件转换为REST API到VTN管理器。

4.VTN管理器还提供了OpenStack L2网络函数API的实现。

VTN管理器功能介绍

          1.odl-vtn-manager 提供vtn管理器的JAVA API

          2.odl-vtn-manager-rest 提供vtn管理器的REST API

          3.odl-vtn-manager-neutron 提供与neutron集成的接口

REST API

VTN管理器通过提供REST API实现虚拟网络功能,如下两个例子:

1.创建虚拟网络:

    curl --user "admin":"admin" -H "Accept: application/json" -H "Content-type: application/json" -X POST \
http://localhost:8181/restconf/operations/vtn:update-vtn -d '{"input":{"tenant-name":"vtn1"}}'

2.获取所有虚拟网络:

   curl --user "admin":"admin" -H "Accept: application/json" -H "Content-type: application/json" -X GET \
http://localhost:8181/restconf/operational/vtn:vtns

VTN Coordinator

VTN协调器是一个外部应用程序,它为使用OpenDaylight VTN虚拟化的用户提供了一个REST接口。它与VTN管理器插件交互来实现用户配置。它还可以进行多个OpenDaylight编配。它实现了OpenDaylight实例中的虚拟租户网络(VTN)配置。在OpenDaylight体系结构中,VTN协调器是网络应用程序、编排和服务层的一部分。VTN协调器将使用VTN管理器公开的REST接口,使用OpenDaylight实现虚拟网络。它使用OpenDaylight api (REST)在OpenDaylight实例中构建虚拟网络。它为北向的VTN应用提供REST api,支持跨OpenDaylight跨多个OpenDaylight跨越多个OpenDaylight的虚拟网络。VTN协调器的REST API请参考:https://wiki.opendaylight.org/view/OpenDaylight_Virtual_Tenant_Network_%28VTN%29:VTN_Coordinator:RestApi

网络功能虚拟化

1.用户首先定义VTN。

2.用户将VTN映射到一个物理网络,该网络允许根据VTN定义进行通信。

3.使用VTN定义,L2和L3传输函数和基于流的流量控制函数(过滤和重定向)是可能的。

虚拟网络功能构建

下表显示了构成VTN的元素。在VTN中,使用虚拟节点(vBridge、vRouter)和虚拟接口和链接构建虚拟网络。通过连接虚拟链接上的虚拟节点的虚拟接口,可以配置具有L2和L3传输功能的网络。

vBridge l2层交换功能的逻辑表示
vRouter 路由功能的逻辑表示
vTep 隧道端点TEP的逻辑表示
vTunnel  Tunnel隧道的逻辑表示
vBypass 控制网络之间连通性的逻辑表示
Virtual interface 虚拟节点上端点的表示
Virtual Linkv(vLink) L1连接在虚拟接口之间的逻辑表示

下图显示了构造的虚拟网络的一个示例。VRT定义为vRouter, BR1和BR2定义为vBridges。vRouter和vbridge的接口使用vlink连接。

VTN  构建

物理网络资源映射

将物理网络资源映射到构造的虚拟网络。映射标识由虚拟网络和虚拟接口决定,该虚拟网络的数据包被openflow交换机接受和转发,该虚拟接口被映射到openflow交换机上进行接受或者转发数据包的功能。有两种映射方法。当从OFS接收数据包时,首先搜索端口映射,查找对应的映射定义,然后搜索VLAN映射,根据第一个匹配映射将数据包映射到相应的vBridge。

port mapping 使用传入l2层帧的交换机ID、端口ID和VLAN ID将物理网络资源映射到vBridge的接口。也支持无标记的帧映射。
vlan mapping 使用传入L2层帧的VLAN ID将物理网络资源映射到vBridge。使用传入L2帧的交换机ID和VLAN ID将特定交换机的物理资源映射到vBridge。
mac mapping 使用传入L2帧的MAC地址将物理资源映射到vBridge的一个接口

VTN可以从连接到VTN的交换机上的终端学习终端信息。此外,还可以引用VTN上的终端信息。

1.VTN学习属于VTN的终端信息。它将存储终端的MAC地址和VLAN ID与交换机端口的关系。
       2.由VTN学习的终端信息终端信息的老化会一直被维护,直到终端的数据包在VTN中继续流动。如果终端与VTN断开连接,则老化计时器将开始运行,终端信息将保持直到超时。

下图显示了一个映射示例。使用端口映射将BR1的一个接口映射到OFS1的端口GBE0/1。从OFS1的GBE0/1接收的数据包视为来自BR1对应接口的数据包。BR2使用VLAN映射映射到VLAN 200。从任意OFSs的任何端口接收到的VLAN标记200的数据包都被视为来自BR2接口的数据包。

vBridge 功能

vBridge提供桥功能,根据目标MAC地址将包传输到预期的虚拟端口。vBridge查找MAC地址表,并在学习目标MAC地址时将数据包传输到相应的虚拟接口。当目标MAC地址没有被了解时,它将数据包传输到除接收端口(泛流)之外的所有虚拟接口。MAC地址通过如下所示来学习:

1.mac学习:vBridge学习连接主机的MAC地址。每个接收帧的源MAC地址被映射到接收虚拟接口,这个MAC地址存储在每 个vbridge基础上创建的MAC地址表中

2.mac老化:只要主机返回ARP应答,存储在MAC地址表中的MAC地址将被保留。在主机断开连接后,将保留地址,直到老化计时器超时。要让vBridge静态地学习MAC地址,您可以手动注册MAC地址。

vRouter功能

该功能尚未被实现

vRouter在vbridge之间传输IPv4数据包。vRouter支持路由、ARP学习和ARP老化功能,下面概述了这些功能。

1.路由功能:当一个IP地址注册到vRouter的虚拟接口时,将注册该接口的默认路由信息。还可以静态地为虚拟接口注册路由信息。

2.ARP学习功能:vRouter根据对其主机的ARP请求或对ARP请求的应答包将目标IP地址、MAC地址和虚拟接口关联起来,并将这些信息保存在为每个路由域准备的ARP表中。注册的ARP条目被保留到老化计时器(稍后描述)超时。vRouter根据单个老化计时器发送一个ARP请求,如果不返回应答,则从ARP表中删除相关条目。对于静态ARP学习,您可以手动注册ARP条目信息。

3.DHCP中继代理功能:vRouter也提供DHCP中继代理功能。

流过滤功能

流过滤器功能类似于ACL。允许或禁止仅与满足特定条件的某种数据包通信是可能的。此外,它还可以执行一种称为重定向-路径点路由的处理,这与现有ACL不同。流过滤器可以应用于VTN中vNode的任何接口,并且可以控制传递接口的数据包。可以在流过滤器中指定的匹配条件如下所示。也可以指定多个的组合条件。

  • Source MAC address
  • Destination MAC address
  • MAC ether type
  • VLAN Priority
  • Source IP address
  • Destination IP address
  • DSCP
  • IP Protocol
  • TCP/UDP source port
  • TCP/UDP destination port
  • ICMP type
  • ICMP code

下表给出了可以应用于与流过滤器条件匹配的包的操作类型。只有那些与特定条件相匹配的数据包,才能通过指定动作中的重定向通过特定的服务器。例如,可以根据目标IP地址对从特定终端发送的每个数据包更改流的路径。还支持VLAN优先级控制和DSCP标记。

操作 功能
通过 传递与指定条件相匹配的特定数据包
丢弃 丢弃与指定条件匹配的特定数据包
转发 将数据包重定向到所需的虚拟接口。支持透明重定向(不更改MAC地址)和路由器重定向(更改MAC地址)

下图显示了流过滤器函数如何工作的示例。
       如果在虚拟网络中传输的数据包通过虚拟接口时,流过滤器指定了任何匹配条件,则该函数将计算匹配条件,以查看数据包是否与它匹配。如果包与条件匹配,函数将应用流过滤器指定的匹配操作。在图中所示的示例中,函数计算BR1上的匹配条件,并在与该条件匹配的情况下丢弃数据包。

上面所述多为参考官网翻译过来,如有影响阅读理解,建议直接阅读官网:https://docs.opendaylight.org/en/stable-nitrogen/user-guide/virtual-tenant-network-(vtn).html#vtn-overview。

以上讲述了vtn的功能以及作用方式,后期文章将会针对每个功能做详细介绍以及实践测试。

ODl之VTN详解-VTN概述相关推荐

  1. MP4文件格式详解——结构概述

    MP4文件格式详解(ISO-14496-12/14) 一.基本概念 1. 文件,由许多Box和FullBox组成. 2. Box,每个Box由Header和Data组成. 3. FullBox,是Bo ...

  2. Javadoc (Java API 文档生成器)详解 [Javadoc 概述][Javadoc 标签][Javadoc 命令][Javadoc 生成 API 文档]

    您的"关注"和"点赞",是认可,是支持,是动力. 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 文章目录 1 Javad ...

  3. java jdbc 详解_JDBC概述及详解各个对象

    JDBC(Java DataBase Connectivity)详解 一.概念: JDBC是一种可执行SQL语句的JavaAPI,Java数据库链接,Java语言操做数据库mysql 二.本质: JD ...

  4. OSPF报文详解——LSA概述

    目录 一.OSPF报文详解: (1)---OSPF头部分析: (2)---hello字段分析: 二.LSA报文--链路状态通告 (1)---简介: (2)---头部信息: (3)---数据部分: 一. ...

  5. 设计模式学习,23种设计模式详解:概述

    设计模式学习:概述 首先,别把程序设计不当设计! 程序的框架就是建筑物的骨架,内部实现不过是装修改造.只要骨架设计没有问题,装修起来也是得心应手.一个糟糕的程序框架,对于接下来的Debug和程序的更新 ...

  6. JAVA基础初探(十二)Map接口及其常用实现类(HashMap)、File类详解(概述、创建、删除、重命名、文件属性读取/设置、遍历文件夹)

    该篇博客目录 1.Map接口及其常用实现类(HashMap.Hashtable) 2.File类(概述.创建.删除.重命名.文件属性读取/设置.遍历文件夹) 一.Map接口及其常用实现类(HashMa ...

  7. Java8 Stream详解~Stream概述

    Java 8 是一个非常成功的版本,这个版本新增的Stream,配合同版本出现的 Lambda ,给我们操作集合(Collection)提供了极大的便利. 那么什么是Stream? Stream将要处 ...

  8. atitit.mp4 视频文件多媒体格式结构详解

    atitit.mp4 视频文件多媒体格式结构详解 1. 一.基本概念1 2. MP4文件概述2 3. mp4是由一个个"box"组成的,2 4. 典型简化mp43 5. Fragm ...

  9. Fragment详解之五——Fragment间参数传递

    相关文章: 1.<Fragment详解之一--概述> 2.<Fragment详解之二--基本使用方法> 3.<Fragment详解之三--管理Fragment(1)> ...

  10. Fragment详解之四——管理Fragment(2)

    相关文章: 1.<Fragment详解之一--概述> 2.<Fragment详解之二--基本使用方法> 3.<Fragment详解之三--管理Fragment(1)> ...

最新文章

  1. vs2005不能找到ASP.NET网站之郁闷
  2. linux 有用的命令,linux有用命令(持续更新)
  3. 【mysql】时间戳
  4. 基于Netty的http服务器
  5. element的滚动去掉横向_textarea去掉滚动条 textarea横向或纵向滚动条的去掉方法
  6. Android application project 各个文件夹作用
  7. iOS- 快速实现展示布局
  8. Python画等高线以及标注
  9. java bean参数清空_给bean的属性赋值
  10. linux运维脚本编写,Linux运维基础技能: 脚本编程与Linux命令
  11. 今日头条android+x86,GitHub - teajoyus/TouTiao: 今日头条 For Android
  12. 【产品】电池容量简介
  13. Desktop no head
  14. Unite之夜|千人派对开启狂欢周末,多重惊喜为你呈现!
  15. 百度地图如何拾取经纬度
  16. CVE PoC的精选列表(二)
  17. 树莓派 Pico Clion开发
  18. Keras loss函数
  19. ffmpeg源码分析与应用示例(一)——H.264解码与QP提取
  20. 《以道御术》荣耀上市,高管书评

热门文章

  1. 苹果平板做ppt方便吗_“你不是大学生吗,怎么连PPT都做不好?”
  2. 互联网后端的主流编程语言是啥?不是Python?
  3. 短视频剪辑入门技巧,简单却重要
  4. linux清理磁盘空间的脚本,使用 shell 自动释放磁盘空间
  5. Endnote使用——参考文献的插入及引用
  6. 机器人领域的SCI期刊和会议
  7. word2016自动目录样式修改
  8. WIN7安装打印机时提示“打印机无法安装,打印处理器不存在”处理方法
  9. ANSYS静力学分析的主要操作步骤
  10. 小麦苗的常用代码--常用命令(仅限自己使用)--上