logo资料库

Ryuebook简体中文pdf.pdf

第1页 / 共166页
第2页 / 共166页
第3页 / 共166页
第4页 / 共166页
第5页 / 共166页
第6页 / 共166页
第7页 / 共166页
第8页 / 共166页
资料共166页,剩余部分请下载后查看
Using OpenFlow 1.3 RYU SDN Framework RYU project team
前言 Contents 1 1 交换器(Switching Hub ) 3 1.1 Switching Hub ....................................................................................................................... 3 1.2 OpenFlow 实作的交换器 ..................................................................................................... 3 1.3 在 Ryu 上实作交换器 ........................................................................................................... 6 1.4 执行 Ryu 应用程序 ............................................................................................................. 14 1.5 本章总结 ........................................................................................................................ 20 2 流量监控(Traffic Monitor ) 21 2.1 定期检查网络状态 ........................................................................................................ 21 2.2 安装 Traffic Monitor ............................................................................................................ 21 2.3 执行 Traffic Monitor ............................................................................................................ 27 2.4 本章总结 ........................................................................................................................ 29 3 REST API 31 3.1 整合 REST API ................................................................................................................... 31 3.2 安装包含 REST API 的 Switching Hub ........................................................................... 31 3.3 安装 SimpleSwitchRest13 class ...................................................................................... 33 3.4 安装 SimpleSwitchController Class ................................................................................. 34 3.5 执行包含 REST API 的 Switching Hub ........................................................................... 36 3.6 本章总结 ........................................................................................................................ 38 4 网络聚合(Link Aggregation ) 39 4.1 网络聚合(Link Aggregation ) ....................................................................................... 39 4.2 执行 Ryu 应用程序 ............................................................................................................. 39 4.3 实作 Ryu 的网络聚合功能 ................................................................................................. 50 4.4 本章总结 ........................................................................................................................ 59 5 生成树(Spanning Tree ) 61 5.1 Spanning Tree .................................................................................................................... 61 5.2 执行 Ryu 应用程序 ............................................................................................................. 63 5.3 使用 OpenFlow 完成生成树 .............................................................................................. 74 5.4 使用 Ryu 实作生成树 ......................................................................................................... 75 5.5 本章总结 ........................................................................................................................ 84 6 OpenFlow 通讯协议 85 6.1 Match ................................................................................................................................... 85 i
6.2 Instruction .................................................................................................................................. 86 6.3 Action ......................................................................................................................................... 87 7 ofproto 函式库 89 7.1 简单说明..................................................................................................................................... 89 7.2 相关模块..................................................................................................................................... 89 7.3 基本使用方法 ............................................................................................................................. 90 8 封包函式库 93 8.1 基本使用方法 ............................................................................................................................. 93 8.2 应用程序范例 ............................................................................................................................. 95 9 OF-Config 函式库 99 9.1 OF-Config 通讯协议 ................................................................................................................. 99 9.2 函式库架构 ................................................................................................................................. 99 9.3 使用范例................................................................................................................................... 100 10 防火墙(Firewall ) 103 10.1 Single tenant 操作范例 .................................................................................................... 103 10.2 Multi tenant 操作范例....................................................................................................... 112 10.3 REST API 列表 ........................................................................................................................ 116 11 路由器(Router ) 119 11.1 Single Tenant 的操作范例 ................................................................................................ 119 11.2 Multi-tenant 的操作范例 ................................................................................................... 129 11.3 REST API 列表 ........................................................................................................................ 141 12 OpenFlow 交换器测试工具 143 12.1 测试工具概要 ............................................................................................................... 143 12.2 使用方法 ....................................................................................................................... 145 12.3 测试工具使用范例 ............................................................................................................. 148 13 组织架构 157 13.1 应用程序开发模型(Application programming model ) ............................................. 157 14 协助项目开发 159 14.1 参与项目 ....................................................................................................................... 159 14.2 开发环境 ....................................................................................................................... 159 14.3 送交更新的程序代码 ......................................................................................................... 160 15 应用案例 161 15.1 Stratosphere SDN Platform (Stratosphere)....................................................................... 161 15.2 SmartSDN Controller(NTT COMWARE ) ........................................................................ 161 ii
前言 本书是给那些使用 Ryu 作为开发的框架,而目的是为了实现软件定义网络(Software Defined Networking,SDN )而写的一本参考书。 那么为什么要选择 Ryu 作为开发平台呢? 我们衷心的希望您可以在 本书中找到解答。 建议您依照本书的章节,依序的阅读第 1 章至第 5 章。首先第 1 章是 Simple Switch 的实作, 接着后面的章节是流量监控(Traffic Monitor )以及网络聚合(Link Aggregation )。透过实际的 例子,我们将介绍 Ryu 的程序是如何运作的。 第 6 章到第 9 章,我们将详细的说明 OpenFlow 通讯协议(OpenFlow Protocol )以及封包函数 的使用方法。接着第 10 章到第 12 章,我们会讨论如何使用 Ryu 内建的防火墙(Firewall )和 测试工具(test tool )来开发应用程序。第 13 到 15 章将介绍 Ryu 的架构(architecture )及 实际应用案例。 最后,我们非常感谢您对于 Ryu 项目的青睐及支持,特别对于 Ryu 的使用者而言。希望在不久 的将来能有机会在 Mailing List 上得到来自于您的宝贵意见,让我们一起加入 Ryu 项目并进行 开发吧。 繁体中文版本是由台湾信息工业策进会- SDN 团队协助整理及翻译,除了不吝批评与指教之 外也欢迎更多朋友加入,让中文读者可以更快更实时的了解 Ryu 这个优秀的开放原始码的框 架。 5
Contents 2
CHAPTER 1 交换器(Switching Hub ) 本章将会用简单的 Switching hub 安装做为题材,说明 Ryu 如何安装一个应用程序。 1.1 Switching Hub 在交换器中有许许多多的功能。在这边我们将看到拥有下列简单功能的交换器。 . 学习连接到端口的 host 之 MAC 地址,并记录在 MAC 地址表当中。 . 对于已经记录下来的 MAC 地址,若是收到送往该 MAC 地址的封包,则转送该封包到相 对应的端口。 . 对于未指定目标地址的封包,则执行 Flooding。 让我们使 用 Ryu 来实现这样一个交换器吧。 1.2 OpenFlow 实作的交换器 OpenFlow 交换器会接受来自于 controller 的指令并达到以下功能。 . 对于接收到的封包进行修改或针对指定的端口进行转送。 . 对于接收到的封包进行转送到 Controller 的动作(Packet-In )。 . 对于接收到来自 Controller 的封包转送到指定的端口(Packet-Out )。 上述的功能所组合 起来的就是一台交换器的实现。 首先,利用 Packet-In 的功能来达到 MAC 地址的学习。Controller 使用 Packet-In 接收来自交换 器的封包之后进行分析,得到端口相关数据以及所连接的 host 之 MAC 地址。 在学习之后,对所收到的封包进行转送。将封包的目的地址,在已经学习的 host 数据中进行检 索, 根据检索的结果会进行下列处理。 . 如果是已经存在记录中的 host:使用 Packet-Out 功能转送至先前所对应的端口 . 如果是尚未存在记录中的 host:使用 Packet-Out 功能来达到 Flooding 下面将一步一步的 说明并附上图片以帮助理解。 1. 初始状态 3
Chapter 1. 交换器(Switching Hub ) Flow table 为空白的状况。 将 host A 接到端口 1,host B 接到端口 4,host C 接到端口 3。 1 2 3 4 MAC address table Flow table Host A Host C Host B 2. host A → host B 当 host A 向 host B 发送封包。这时后会触发 Packet-In 讯息。host A 的 MAC 地址会被端口 1 给记录下来。由于 host B 的 MAC 地址尚未被学习,因此会 进行 Flooding 并将封包往 host B 和 host C 发送。 1 2 3 4 MAC address table Host A: Port 1 Flow table Host A Host C Host B Packet-In: in-port: 1 eth-dst: host B eth-src: host A Packet-Out: action: OUTPUT: Flooding 3. host B → host A 封包从 host B 向 host A 返回时,在 Flow table 中新增一笔 Flow Entry,并将封 包转送到端口 1。因此该封包并不会被 host C 收到。 4
分享到:
收藏