作品简介

本书主要介绍SDN的基础原理,包括SDN的定义、架构、应用,涵盖SDN主流控制器的基础知识,包括概念、架构、主要模块说明;介绍虚拟交换机OVS、SDN仿真环境、SDN主流控制器的安装指南、操作指南、开发环境准备;介绍OpenDaylight的MD-SAL开发流程,以示例详解的方式使用YANG建模语言和Java语言进行MD-SAL相关开发;介绍使用OpenDaylight北向API接口进行北向开发的过程。书中利用大量的具体示例和实际案例来说明OpenDaylight的开发步骤,读者在阅读学习后既能够掌握基本的开发流程,又能够理解其框架原理。

本书适合所有SDN的爱好者和从业者,尤其是对OpenDaylight感兴趣的开发者,也适合培训机构及大中专院校教学使用。

程丽明,中山大学计算机软件与理论硕士,目前就职于蓝盾信息安全技术股份有限公司,担任前沿技术高级研究员一职,主要从事软件定义网络、云安全、虚拟化领域的研究和产品开发工作,拥有多年的项目开发经验,研究兴趣包括SDN、虚拟化、云计算、移动办公安全等,发表国内外专利和论文十余篇。

作品目录

  • 作者简介
  • 内容简介
  • 前言
  • 第一篇 理论篇 SDN概述、OpenDaylight简介、Controller项目总述
  • 第1章 什么是SDN
  • 1.1 SDN的诞生
  • 1.2 SDN的标准及组织机构
  • 1.3 SDN的一些典型应用场景
  • 1.4 SDN的一些重要学习资源
  • 1.5 本章总结
  • 第2章 SDN架构简析
  • 2.1 SDN架构总述
  • 2.2 SDN控制器
  • 2.3 SDN交换机
  • 2.4 南向接口协议
  • 2.5 北向接口协议
  • 2.6 本章总结
  • 第3章 现有SDN交换机简介
  • 3.1 OVS简介
  • 3.2 SDN硬件交换机简介
  • 3.3 本章总结
  • 第4章 现有SDN控制器简述
  • 4.1 OpenDaylight控制器
  • 4.2 ONOS控制器
  • 4.3 Floodlight控制器
  • 4.4 Ryu控制器
  • 4.5 思科的APIC控制器和Open SDN控制器
  • 4.6 OpenContrail控制器
  • 4.7 NOX控制器
  • 4.8 POX控制器
  • 4.9 Beacon控制器
  • 4.10 Big Network控制器
  • 4.11 博科的Brocade SDN控制器
  • 4.12 Maestro控制器
  • 4.13 IRIS控制器
  • 4.14 Extreme公司的OneController控制器
  • 4.15 本章总结
  • 第5章 OpenDaylight综述
  • 5.1 OpenDaylight项目介绍
  • 5.2 OpenDaylight版本介绍
  • 5.3 OpenDaylight的子项目简介
  • 5.4 OpenDaylight学习参考
  • 5.5 本章总结
  • 第6章 OpenDaylight的Controller项目综述
  • 6.1 Controller简介
  • 6.2 Controller架构
  • 6.3 Controller项目的服务抽象层SAL
  • 6.4 Controller项目的学习参考
  • 6.5 本章总结
  • 第二篇 实操篇 控制器的安装指南、操作指南、开发环境准备
  • 第7章 SDN底层架构的搭建指南
  • 7.1 OVS安装指南
  • 7.2 仿真环境Mininet安装指南
  • 7.3 Xen环境部署SDN网络的安装指南
  • 7.4 KVM环境部署SDN网络的安装指南
  • 7.5 OpenStack环境部署SDN网络的安装指南
  • 7.6 硬件环境部署SDN网络的安装指南
  • 7.7 本章总结
  • 第8章 控制器OpenDaylight安装指南、操作指南和开发环境准备
  • 8.1 Controller项目的源码安装指南
  • 8.2 Controller项目的快速安装指南
  • 8.3 OpenDaylight的Controller项目的开发环境准备
  • 8.4 OpenDaylight的Controller项目的使用指南
  • 8.5 OpenDaylight的通用项目源码安装指南
  • 8.6 OpenDaylight的通用项目快速安装指南
  • 8.7 OpenDaylight的通用开发环境准备
  • 8.8 控制器OpenDaylight的学习参考
  • 8.9 本章总结
  • 第9章 控制器ONOS安装指南
  • 9.1 控制器ONOS简介
  • 9.2 控制器ONOS源码安装指南
  • 9.3 控制器ONOS下载包的安装指南
  • 9.4 控制器ONOS通过下载虚拟机进行部署的安装指南
  • 9.5 控制器ONOS的使用指南
  • 9.6 控制器ONOS的学习参考
  • 9.7 本章总结
  • 第10章 控制器Floodlight安装指南
  • 10.1 控制器Floodlight源码安装指南
  • 10.2 控制器Floodlight通过下载虚拟机进行部署的安装指南
  • 10.3 控制器Floodlight的使用指南
  • 10.4 控制器Floodlight的学习参考
  • 10.5 本章总结
  • 第11章 控制器Ryu安装指南
  • 11.1 控制器Ryu源码安装指南
  • 11.2 使用系统内置命令直接安装控制器的安装指南
  • 11.3 控制器Ryu通过下载虚拟机进行部署的安装指南
  • 11.4 控制器Ryu连接Mininet的实验
  • 11.5 控制器Ryu的学习参考
  • 11.6 本章总结
  • 第三篇 实操篇 OpenDaylight之MD-SAL开发指南
  • 第12章 MD-SAL开发的一些必备知识
  • 12.1 OSGi
  • 12.2 Karaf
  • 12.3 Maven
  • 12.4 MD-SAL
  • 12.5 YANG
  • 12.6 本章总结
  • 第13章 从简单的Hello World开始
  • 13.1 项目开发环境准备
  • 13.2 使用Maven原型opendaylight-startup-archetype创建项目
  • 13.3 实现Hello World功能
  • 13.4 项目hello的测试
  • 13.5 本章总结
  • 第14章 创建一个简单的项目:myproject
  • 14.1 创建项目
  • 14.2 项目创建的关键目录和文件介绍
  • 14.3 YANG常用的定义及其自动转化的Java代码
  • 14.4 本章总结
  • 第15章 RPC的开发
  • 15.1 RPC开发过程的简要说明
  • 15.2 RPC的YANG文件定义
  • 15.3 RPC的实现
  • 15.4 注册RPC并处理相应的关闭工作
  • 15.5 项目测试
  • 15.6 本章总结
  • 第16章 DataStore相关的开发
  • 16.1 DataStore相关开发过程的简要说明
  • 16.2 利用DataBroker实现对DataStore的操作
  • 16.3 Data Change事件的实现
  • 16.4 本章总结
  • 第17章 Notification的开发
  • 17.1 Notification开发过程的简要说明
  • 17.2 在Yang Model中实现定义
  • 17.3 通知提供的实现
  • 17.4 通知接收处理的实现
  • 17.5 项目测试
  • 17.6 本章总结
  • 第18章 使用Eclipse进行项目开发的介绍
  • 18.1 使用Eclipse创建项目
  • 18.2 使用Eclipse导入项目
  • 18.3 使用Eclipse编辑项目
  • 18.4 使用Eclipse调试运行项目
  • 18.5 一些可能出现的错误及其解决方法
  • 18.6 本章总结
  • 第四篇 实操篇 OpenDaylight之北向开发指南
  • 第19章 OpenDaylight北向开发的基础知识
  • 19.1 RestConf协议简介
  • 19.2 NetConf协议简介
  • 19.3 OpenDaylight主要的北向接口
  • 19.4 北向开发的官方参考资料
  • 19.5 本章总结
  • 第20章 利用Java实现OpenDaylight北向下发流表的功能
  • 20.1 OpenDaylight北向下发流表开发的基础依据
  • 20.2 获取流表的功能实现
  • 20.3 添加流表的功能实现
  • 20.4 删除流表的功能实现
  • 20.5 本章总结
  • 第21章 使用OpenDaylight北向接口的通用应用
  • 21.1 获取北向接口的信息并进行开发
  • 21.2 使用API进行北向编程
  • 21.3 本章总结
  • 参考资料
  • 推荐阅读
展开全部