一、VTN简介及架构分析:


 

具体详见开发人员指南wiki:https://wiki.opendaylight.org/view/Release/Lithium/VTN/developer_Guide

这里有两篇很好的初学者文章作为入门:

《OpenDaylight VTN 简单介绍及部署》

《Opendaylight VTN虚拟网功能验证与开发环境搭建》

《OpenDaylight VTN源码及架构分析》

1. VTN Coordinator:

VTN Coordinator是外置的一个网络应用,通过ODL上的VTN Manager提供的北向REST接口,向上层VTN Application用户提供虚拟网络功能。Coordinator架构如下:

 

Web Server 子模块负责与上层VTN应用通过REST API进行交互,并将上层的REST API向下转换成对应的Java API。其主要功能包括:

-通过catalina.sh启动

-VTN 应用以XML或者JSON格式发送HTTP请求给Web Server

-创建会话和获取读写锁定

-根据url调用下层对应的java API library

-向上层vtn应用返回响应消息

VTN Service JAVA API Library 提供java api library来与coordinator的下层模块进行通信。其主要功能包括:

-创建一个对下层的进程间通信客户端会话

-将应用请求转换成进程间通信框架格式

-调用下层API(比如UPPL API, UPLL API, TC API)

-将下层响应消息返回给上层web服务器

-vtn service java library详细类

* 需要注意的是,vtn coordinator并不具有karaf特性。更多rest api相关信息请登录wiki

* coordinator向上提供有限的获取底层物理网络信息的api。

*详见官方文档:https://wiki.opendaylight.org/view/OpenDaylight_Virtual_Tenant_Network_(VTN):VTN_Coordinator

2. VTN Manager:

ODL控制器上的一个功能插件。通过控制器上的其他功能模块进行交互从而部署vtn功能。它同样提供rest api接口来配置控制器上的vtn组件(增加、更新、删除vtn)。用户命令被coordinator处理后通过coordinator底层的odc driver驱动组件转换为rest api发送给vtn manager。它同样可以与著名的openstack进行整合。详见相关文档:

https://wiki.opendaylight.org/view/OpenDaylight_Virtual_Tenant_Network_(VTN):VTN_Manager:Specification

3. 用例实验

这里是一些基本的配置和用例实验:

Coordinator的 Web UI 和 CLI:http://plvision.eu/blog/opendaylight-vtn-coordinator-enabling-webui-and-cli/

Manager:How to:Provision virtual L2 network:https://wiki.opendaylight.org/view/VTN:Manager:How_to:Provision_virtual_L2_network

Coordinator:RestApi:How to configure L2 Network with Single Controller:https://wiki.opendaylight.org/view/OpenDaylight_Virtual_Tenant_Network_(VTN):VTN_Coordinator:RestApi:How_to_configure_L2_Network_with_Single_Controller

更多请访问本人博客地址:https://jiang-hao.com

OpenDaylight虚拟租户网络(VTN)详解及开发环境搭建的更多相关文章

  1. 超全详解Java开发环境搭建

    摘自:https://www.cnblogs.com/wangjiming/p/11278577.html 超全详解Java开发环境搭建   在项目产品开发中,开发环境搭建是软件开发的首要阶段,也是必 ...

  2. Linux网络配置文件详解

    --Linux网络配置文件详解----------------------2013/10/03 目前在企业级服务器的Linux系统中,RHEL占有绝对的优势,不管是曾经在互联网公司还是在目前测试Vir ...

  3. Docker:网络模式详解

    Docker作为目前最火的轻量级容器技术,牛逼的功能,如Docker的镜像管理,不足的地方网络方面. Docker自身的4种网络工作方式,和一些自定义网络模式 安装Docker时,它会自动创建三个网络 ...

  4. Vmware在NAT模式下网络配置详解

    Vmware在NAT模式下网络配置详解 Linux中的网络配置对于接触Linux不久的小白菜来说,还是小有难度的,可能是不熟悉这种与windows系列迥然不同的命令行操作,也可能是由于对Linux的结 ...

  5. Docker网络模式详解

    一.Docker四种工作模式 安装Docker时,它会自动创建三个网络,bridge(创建容器默认连接到此网络). none .hosthost:容器将不会虚拟出自己的网卡,配置自己的IP等,而是使用 ...

  6. docker 网络概述及网络模式详解

    docker 网络概述及网络模式详解 1.网络概述 2.网络模式详解 1.网络概述: Docker 网络实现原理 Docker使用Linux桥接,在宿主机虚拟一个Docker容器网桥(docker0) ...

  7. 用netstat查看网络状态详解

    --用netstat查看网络状态详解 -----------------------------2014/06/11 一.Linux服务器上11种网络连接状态:                     ...

  8. Docker基础 :网络配置详解

    本篇文章将讲述 Docker 的网络功能,包括使用端口映射机制来将容器内应用服务提供给外部网络,以及通过容器互联系统让多个容器之间进行快捷的网络通信,有兴趣的可以了解下. 大量的互联网应用服务包含多个 ...

  9. 【转】Linux 网络工具详解之 ip tuntap 和 tunctl 创建 tap/tun 设备

    原文:https://www.cnblogs.com/bakari/p/10449664.html -------------------------------------------------- ...

随机推荐

  1. Android sdcard文件读写操作

    这次演示以,安卓原生操作系统 Nexus_6手机进行操作: AndroidManifest.xml配置相关权限: <!-- 增加权限 --> <uses-permission and ...

  2. lr中错误解决方法19种

    一.Error -27727: Step download timeout (120 seconds)has expired when downloading resource(s). Set the ...

  3. [LeetCode 题解]:Palindrome Number

    前言   [LeetCode 题解]系列传送门:  http://www.cnblogs.com/double-win/category/573499.html   1.题目描述 Determine ...

  4. 设计模式之外观模式(Facade Pattern)

    一.什么是外观模式? 简单的说,外观模式是用来简化接口的. 通常,我们觉得一个子系统不好用,可能是因为它提供的外部接口太接近低层组件,让我们用起来感到很麻烦. 因为我们不需要知道内部细节,我们只想要一 ...

  5. c# 将一个长耗时任务改成task

    public Task<ObservableCollection<WaterFallDataSource2>> InitalrenderSourceandBrush2(int ...

  6. C# AutoMapper 了解一下

    什么是AutoMapper? 简单来说就是将一个对象映射到另一个对象的代码. 摆脱了繁琐的赋值过程 (最常见也就是Model -——ViewModel) AutoMapper安装 我使用的是VS201 ...

  7. 登录状态保持Session/Cookie

    登录成功: 1.Session保存User对象. 2.Cookie保存唯一值UserID(或者usercode)和加密Sign(生成规则自己定义,MD5用户名,用户ID,私有串等),并设置过期时间. ...

  8. mybatis的dao向mapper.xml传入多参数

    https://www.cnblogs.com/super-chao/p/7722411.html 如果两种不同类型的参数传入,parameterType可以不写,直接获取#{0},#{1}就可以传入 ...

  9. 程序媛计划——mysql索引

    定义: 索引是一种单独的.物理的对数据库表中一列或多列的值进行排序的一种存储结构   #为字段创建索引 #在表中的字段中创建索引mysql> create index ind_score on ...

  10. js处理url中的请求参数(编码/解码)

    在处理 a 链接跳转其他页面时,总会遇到需要传递一些当前页面的信息到其他页面,然后其他页面利用这些信息进行相关操作.利用 get 请求或 hash 传递是常见的方式. 首先,需要对传递的参数进行编码, ...