计算机
类型
可以朗读
语音朗读
332千字
字数
2018-01-01
发行日期
展开全部
主编推荐语
“SDN开发入门学习,掌握OpenDaylight基础与应用”。
内容简介
本书的目的是引导想从事SDN开发的IT人员进行OpenDaylight开发入门学习,通过本书的学习,读者能够掌握SDN的基础概念、控制器OpenDaylight的基础架构和应用、OpenDaylight的MD-SAL开发、OpenDaylight的北向开发的基本流程,熟悉使用Maven中OpenDaylight的原型利用YANG语言和Java语言进行MD-SAL插件开发、使用Java或python进行OpenDaylight的北向开发,掌握搭建SDN实验或工作网络方法等内容。
目录
- 封面页
- 书名页
- 版权页
- 作者简介
- 内容简介
- 前言
- 目录
- 第一篇 理论篇 SDN概述、OpenDaylight简介、Controller项目总述
- 第1章 什么是SDN
- 1.1 SDN的诞生
- 1.2 SDN的标准及组织机构
- 1.3 SDN的一些典型应用场景
- 1.3.1 SDN在数据中心的应用:Cisco的ACI和VMware的NSX
- 1.3.2 SDN在广域网的应用(SD-WAN):谷歌的B4
- 1.3.3 SDN与安全——一种基于SDN的云计算安全保护系统及方法
- 1.4 SDN的一些重要学习资源
- 1.5 本章总结
- 第2章 SDN架构简析
- 2.1 SDN架构总述
- 2.2 SDN控制器
- 2.3 SDN交换机
- 2.4 南向接口协议
- 2.4.1 OpenFlow 1.0
- 2.4.2 OpenFlow 1.3
- 2.5 北向接口协议
- 2.6 本章总结
- 第3章 现有SDN交换机简介
- 3.1 OVS简介
- 3.1.1 认识OVS
- 3.1.2 OVS常用的命令
- 3.1.3 OVS的学习参考
- 3.2 SDN硬件交换机简介
- 3.2.1 思科
- 3.2.2 博科
- 3.2.3 华为
- 3.2.4 瞻博网络
- 3.2.5 NEC
- 3.2.6 戴尔
- 3.2.7 Arista
- 3.2.8 新华三
- 3.2.9 锐捷网络
- 3.2.10 xNET网锐科技
- 3.2.11 盛科网络
- 3.3 本章总结
- 第4章 现有SDN控制器简述
- 4.1 OpenDaylight控制器
- 4.2 ONOS控制器
- 4.3 Floodlight控制器
- 4.4 Ryu控制器
- 4.5 思科的APIC控制器和Open SDN控制器
- 4.5.1 思科APIC控制器
- 4.5.2 思科Open SDN控制器
- 4.5.3 思科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.2.1 氢版本简介
- 5.2.2 氦版本简介
- 5.2.3 锂版本简介
- 5.2.4 铍版本简介
- 5.2.5 硼版本简介
- 5.3 OpenDaylight的子项目简介
- 5.3.1 子项目AAA(认证、授权、审计项目)简介
- 5.3.2 子项目Federation(联合体项目)简介
- 5.3.3 子项目Infrastructure Utilities(基础设施项目)简介
- 5.3.4 子项目MD-SAL(模块驱动项目)简介
- 5.3.5 子项目ODL Root Parent(父项目)简介
- 5.3.6 子项目OpenDaylight Controller(控制器项目)简介
- 5.3.7 子项目YANG Tools(YANG工具项目)简介
- 5.3.8 子项目BGP LS PCEP(BGP和PCEP项目)简介
- 5.3.9 NETCONF(NETCONF项目)子项目简介
- 5.3.10 子项目ODL Lisp Flow Mapping(LISP流映射项目)简介
- 5.3.11 子项目ODL OpenFlow Plugin(OpenFlow插件项目)简介
- 5.3.12 子项目OpenFlow Protocol Library(OpenFlow协议库项目)简介
- 5.3.13 子项目OVSDB Integration(OVSDB集成项目)简介
- 5.3.14 子项目USC(统一安全通道项目)简介
- 5.3.15 子项目FaaS(网络构造即服务项目)简介
- 5.3.16 子项目NeutronNorthbound(Neutron北向项目)简介
- 5.3.17 子项目ALTO(应用层流量优化项目)简介
- 5.3.18 子项目CAPWAP(无线接入点的控制和提供)简介
- 5.3.19 子项目Controller Core Functionality Tutorials(控制器核心功能向导项目)简介
- 5.3.20 子项目Controller Shield(控制器盾项目)简介
- 5.3.21 子项目DIDM(设备认证和驱动管理项目)简介
- 5.3.22 子项目Group Based Policy(GBP)/Project Facts(GBP项目)简介
- 5.3.23 子项目L2 Switch(L2层交换机项目)简介
- 5.3.24 子项目LACP(链接聚合控制协议项目)简介
- 5.3.25 子项目OF-CONFIG(OF-CONFIG项目)简介
- 5.3.26 子项目OpenDaylight DLUX(ODL的DLUX项目)简介
- 5.3.27 子项目Service Function Chaining(服务功能链项目)简介
- 5.3.28 子项目VTN(VTN项目)简介
- 5.4 OpenDaylight学习参考
- 5.5 本章总结
- 第6章 OpenDaylight的Controller项目综述
- 6.1 Controller简介
- 6.1.1 OpenDaylight项目的控制器能满足当今网络发展的需求
- 6.1.2 OpenDaylight项目的控制器及技术关键组成介绍
- 6.2 Controller架构
- 6.3 Controller项目的服务抽象层SAL
- 6.3.1 MD-SAL
- 6.3.2 AD-SAL
- 6.4 Controller项目的学习参考
- 6.5 本章总结
- 第二篇 实操篇 控制器的安装指南、操作指南、开发环境准备
- 第7章 SDN底层架构的搭建指南
- 7.1 OVS安装指南
- 7.1.1 使用系统内置命令直接安装OVS
- 7.1.2 下载包并手动安装OVS
- 7.2 仿真环境Mininet安装指南
- 7.2.1 Mininet的介绍
- 7.2.2 下载Mininet虚拟机文件进行安装
- 7.2.3 在本地下载源代码以安装Mininet
- 7.2.4 使用包安装Mininet
- 7.2.5 Mininet的升级
- 7.2.6 升级Mininet的OVS版本
- 7.2.7 Mininet常用命令
- 7.3 Xen环境部署SDN网络的安装指南
- 7.3.1 安装Xen
- 7.3.2 安装OVS
- 7.3.3 创建虚拟机
- 7.3.4 对虚拟机文件进行修改
- 7.3.5 启动虚拟机
- 7.4 KVM环境部署SDN网络的安装指南
- 7.4.1 安装KVM
- 7.4.2 安装OVS
- 7.4.3 在KVM上进行相关的配置
- 7.4.4 创建虚拟机并将其连接到OVS网桥上
- 7.5 OpenStack环境部署SDN网络的安装指南
- 7.5.1 在现有的OpenStack的基础上安装OpenDaylight
- 7.5.2 使用DevStack以同时安装OpenStack和OpenDaylight
- 7.6 硬件环境部署SDN网络的安装指南
- 7.6.1 配置硬件交换机
- 7.6.2 配置硬件交换机所连接的控制器
- 7.7 本章总结
- 第8章 控制器OpenDaylight安装指南、操作指南和开发环境准备
- 8.1 Controller项目的源码安装指南
- 8.1.1 基础安装环境要求
- 8.1.2 项目编译和运行的软件环境要求
- 8.1.3 下载Controller项目的源码
- 8.1.4 编译Controller子项目的源码
- 8.1.5 Controller项目更新
- 8.1.6 启动运行Controller项目
- 8.1.7 安装参考
- 8.2 Controller项目的快速安装指南
- 8.3 OpenDaylight的Controller项目的开发环境准备
- 8.3.1 设置Gerrit账户
- 8.3.2 Eclipse的安装和设置
- 8.3.3 参考链接
- 8.4 OpenDaylight的Controller项目的使用指南
- 8.4.1 使用Controller和Mininet搭建一个简单的SDN环境
- 8.4.2 控制器OpenDaylight之Controller控制台界面介绍
- 8.4.3 通过Postman下发、删除、更新流表的操作
- 8.4.4 相关参考
- 8.5 OpenDaylight的通用项目源码安装指南
- 8.5.1 下载OpenDaylight子项目的源码
- 8.5.2 编译OpenDaylight子项目的源码
- 8.5.3 编译OpenDaylight子项目更新
- 8.5.4 启动运行OpenDaylight子项目
- 8.5.5 安装参考
- 8.6 OpenDaylight的通用项目快速安装指南
- 8.7 OpenDaylight的通用开发环境准备
- 8.8 控制器OpenDaylight的学习参考
- 8.9 本章总结
- 第9章 控制器ONOS安装指南
- 9.1 控制器ONOS简介
- 9.1.1 ONOS简述
- 9.1.2 ONOS的使命
- 9.1.3 ONOS创建组织简介
- 9.2 控制器ONOS源码安装指南
- 9.2.1 安装前提环境的准备
- 9.2.2 ONOS源码的下载和安装
- 9.2.3 在本地的开发机器上运行控制器ONOS
- 9.2.4 安装参考
- 9.3 控制器ONOS下载包的安装指南
- 9.4 控制器ONOS通过下载虚拟机进行部署的安装指南
- 9.5 控制器ONOS的使用指南
- 9.5.1 控制器ONOS的控制台界面介绍
- 9.5.2 使用ONOS和Mininet搭建一个简单的SDN环境
- 9.6 控制器ONOS的学习参考
- 9.7 本章总结
- 第10章 控制器Floodlight安装指南
- 10.1 控制器Floodlight源码安装指南
- 10.1.1 安装前提环境的准备
- 10.1.2 安装Floodlight
- 10.1.3 Floodlight的更新升级
- 10.2 控制器Floodlight通过下载虚拟机进行部署的安装指南
- 10.3 控制器Floodlight的使用指南
- 10.3.1 控制器Floodlight的常用命令介绍
- 10.3.2 控制器Floodlight的启动
- 10.3.3 控制器Floodlight的界面介绍
- 10.3.4 使用Floodlight和Mininet搭建一个简单的SDN环境
- 10.3.5 使用Floodlight和硬件交换机连接以搭建一个简单的SDN环境
- 10.4 控制器Floodlight的学习参考
- 10.5 本章总结
- 第11章 控制器Ryu安装指南
- 11.1 控制器Ryu源码安装指南
- 11.1.1 安装前提环境的准备
- 11.1.2 安装Ryu
- 11.1.3 安装参考
- 11.2 使用系统内置命令直接安装控制器的安装指南
- 11.2.1 安装前提环境的准备
- 11.2.2 使用系统内置命令直接安装Ryu
- 11.2.3 安装参考
- 11.3 控制器Ryu通过下载虚拟机进行部署的安装指南
- 11.4 控制器Ryu连接Mininet的实验
- 11.4.1 实验环境设计
- 11.4.2 控制器Ryu的启动
- 11.4.3 启动Mininet创建仿真网络
- 11.5 控制器Ryu的学习参考
- 11.6 本章总结
- 第三篇 实操篇 OpenDaylight之MD-SAL开发指南
- 第12章 MD-SAL开发的一些必备知识
- 12.1 OSGi
- 12.2 Karaf
- 12.3 Maven
- 12.3.1 Maven的安装和配置
- 12.3.2 Maven常用的命令
- 12.3.3 POM及pom.xml文件的简要介绍
- 12.3.4 Maven项目的配置文件settings.xml介绍
- 12.3.5 Maven的学习参考
- 12.4 MD-SAL
- 12.4.1 MD-SAL的基本概念
- 12.4.2 MD-SAL的消息类型
- 12.4.3 MD-SAL的数据事务
- 12.4.4 MD-SAL的RPC路由
- 12.4.5 OpenDaylight控制器MD-SAL:RESTCONF
- 12.4.6 WebSocket变化事件通知订阅
- 12.4.7 配置子系统
- 12.4.8 MD-SAL的学习参考
- 12.5 YANG
- 12.5.1 YANG的重要术语说明
- 12.5.2 YANG的语法规则
- 12.5.3 YANG的声明介绍
- 12.5.4 YANG Java Binding:映射规则
- 12.5.5 YANG的学习参考
- 12.6 本章总结
- 第13章 从简单的Hello World开始
- 13.1 项目开发环境准备
- 13.2 使用Maven原型opendaylight-startup-archetype创建项目
- 13.3 实现Hello World功能
- 13.3.1 在API目录下编写YANG模型
- 13.3.2 在impl目录下写实现功能代码——实现HelloService接口
- 13.3.3 注册RPC
- 13.4 项目hello的测试
- 13.4.1 使用HTTP协议通过API浏览器进行测试
- 13.4.2 使用OpenDaylight自带的YANG UI工具进行测试
- 13.4.3 使用REST客户端工具Postman进行测试
- 13.4.4 使用REST客户端curl命令行工具进行测试
- 13.5 本章总结
- 第14章 创建一个简单的项目:myproject
- 14.1 创建项目
- 14.1.1 使用Maven原型创建项目
- 14.1.2 编译项目
- 14.1.3 将项目导入IDE中
- 14.2 项目创建的关键目录和文件介绍
- 14.2.1 子项目myproject-api介绍
- 14.2.2 子项目myproject-artifacts介绍
- 14.2.3 子项目myproject-features介绍
- 14.2.4 子项目myproject-impl介绍
- 14.2.5 子项目myproject-it介绍
- 14.2.6 子项目myproject-karaf介绍
- 14.3 YANG常用的定义及其自动转化的Java代码
- 14.3.1 identity声明实例及其生成的Java文件
- 14.3.2 container声明实例及其生成的Java文件
- 14.3.3 typedef声明实例及其生成的Java文件
- 14.3.4 leaf声明实例及其生成的Java文件
- 14.3.5 leaf-list声明实例及其生成的Java文件
- 14.3.6 list声明实例及其生成的Java文件
- 14.3.7 choice声明和case声明实例及它们生成的Java文件
- 14.3.8 grouping声明实例及其生成的Java文件
- 14.3.9 uses声明实例及其生成的Java文件
- 14.3.10 augment声明实例及其生成的Java文件
- 14.3.11 YANG创建模型的一些实验
- 14.4 本章总结
- 第15章 RPC的开发
- 15.1 RPC开发过程的简要说明
- 15.2 RPC的YANG文件定义
- 15.2.1 RPC的YANG文件示例
- 15.2.2 RPC的YANG文件映射的包和Java文件
- 15.2.3 运行测试
- 15.3 RPC的实现
- 15.4 注册RPC并处理相应的关闭工作
- 15.4.1 MyprojectProvider.java的初始代码
- 15.4.2 在MyprojectProvider类中完成注册工作
- 15.4.3 编译
- 15.5 项目测试
- 15.5.1 启动myproject项目测试
- 15.5.2 my-rpc0功能测试
- 15.5.3 my-rpc1功能测试
- 15.5.4 my-rpc2功能测试
- 15.5.5 my-rpc3功能测试
- 15.5.6 my-rpc4功能测试
- 15.6 本章总结
- 第16章 DataStore相关的开发
- 16.1 DataStore相关开发过程的简要说明
- 16.1.1 使用DataBroker实现对DataStore的操作
- 16.1.2 完成Data Change事件的实现
- 16.2 利用DataBroker实现对DataStore的操作
- 16.2.1 实现对DataStore的异步读写操作
- 16.2.2 传递DataBroker参数
- 16.2.3 测试验证
- 16.3 Data Change事件的实现
- 16.3.1 实现DataChangeListener接口完成onDataChange函数
- 16.3.2 将数据树变动的监听注册到MD-SAL
- 16.3.3 测试验证
- 16.4 本章总结
- 第17章 Notification的开发
- 17.1 Notification开发过程的简要说明
- 17.1.1 通知提供的实现
- 17.1.2 通知接收处理的实现
- 17.2 在Yang Model中实现定义
- 17.2.1 notification的YANG文件示例
- 17.2.2 notification的YANG文件映射的包和Java文件
- 17.3 通知提供的实现
- 17.3.1 实现通知的提供
- 17.3.2 注册提供通知并传递NotificationProviderService参数
- 17.4 通知接收处理的实现
- 17.4.1 实现通知的接收
- 17.4.2 注册接收通知
- 17.5 项目测试
- 17.6 本章总结
- 第18章 使用Eclipse进行项目开发的介绍
- 18.1 使用Eclipse创建项目
- 18.2 使用Eclipse导入项目
- 18.3 使用Eclipse编辑项目
- 18.3.1 使用Eclipse编辑YANG文件
- 18.3.2 使用Eclipse编辑其他普通文件
- 18.3.3 在Eclipse工具之外对项目进行修改后的处理
- 18.4 使用Eclipse调试运行项目
- 18.4.1 使用Eclipse调试在其中编辑的项目
- 18.4.2 使用其他工具调试在Eclipse中编辑的项目
- 18.5 一些可能出现的错误及其解决方法
- 18.5.1 新建项目中出现mavenarchiver相关错误及解决方法
- 18.5.2 Maven的Lifecycle Mapping相关问题的解决方法
- 18.5.3 项目导入Eclipse后无法显示的解决方案
- 18.4.4 其他的一些错误和解决方法
- 18.6 本章总结
- 第四篇 实操篇 OpenDaylight之北向开发指南
- 第19章 OpenDaylight北向开发的基础知识
- 19.1 RestConf协议简介
- 19.1.1 RestConf的HTTP方法
- 19.1.2 RestConf的工作原理
- 19.2 NetConf协议简介
- 19.2.1 NetConf的协议层
- 19.2.2 NetConf的内容层
- 19.2.3 NetConf的操作层
- 19.2.4 NetConf的消息层
- 19.2.5 NetConf的安全传输层
- 19.2.6 NetConf的参考资料
- 19.3 OpenDaylight主要的北向接口
- 19.4 北向开发的官方参考资料
- 19.5 本章总结
- 第20章 利用Java实现OpenDaylight北向下发流表的功能
- 20.1 OpenDaylight北向下发流表开发的基础依据
- 20.1.1 模块opendaylight-action-types介绍
- 20.1.2 模块opendaylight-match-types介绍
- 20.2 获取流表的功能实现
- 20.2.1 代码展示
- 20.2.2 实验验证
- 20.3 添加流表的功能实现
- 20.3.1 代码展示
- 20.3.2 实验验证
- 20.4 删除流表的功能实现
- 20.4.1 代码展示
- 20.4.2 实验验证
- 20.5 本章总结
- 第21章 使用OpenDaylight北向接口的通用应用
- 21.1 获取北向接口的信息并进行开发
- 21.2 使用API进行北向编程
- 21.3 本章总结
- 参考资料
- 推荐阅读
展开全部
出版方
清华大学出版社
清华大学出版社成立于1980年6月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。