展开全部

主编推荐语

“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月,是由教育部主管、清华大学主办的综合出版单位。植根于“清华”这座久负盛名的高等学府,秉承清华人“自强不息,厚德载物”的人文精神,清华大学出版社在短短二十多年的时间里,迅速成长起来。清华大学出版社始终坚持弘扬科技文化产业、服务科教兴国战略的出版方向,把出版高等学校教学用书和科技图书作为主要任务,并为促进学术交流、繁荣出版事业设立了多项出版基金,逐渐形成了以出版高水平的教材和学术专著为主的鲜明特色,在教育出版领域树立了强势品牌。