ImageVerifierCode 换一换
格式:DOCX , 页数:41 ,大小:1.82MB ,
资源ID:20250699      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20250699.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(FlowVisor学习Word下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

FlowVisor学习Word下载.docx

1、目录FlowVisor学习 11. FlowVisor 21.1. FlowVisor介绍 21.1.1. FlowVisor基本概念 21.1.2. 切片 21.1.3. 流规则 31.1.4. 带宽 31.1.5. 拓扑结构 31.1.6. 转发表 41.2. FlowVisor安装过程 41.3. FlowVisor基本操作 51.3.1. 切片操作 51.3.1. 流规则操作 62. Mininet 72.1. SDN 与 Mininet 概述 72.2. Mininet的特性 72.3. 常用指令 83. Opendaylight 83.1. ODL概念 83.2. ODL的框架原则

2、 83.3. 框架概述 94. 建立连接 104.1. FlowVisor部分 104.2. Mininet部分 114.3. Opendaylight部分 134.4. 抓包看看tcp连接 145. 基于实验的flowspace细述 155.1. 全路径,单向数据通路 155.2. 全路径,双向数据通路 155.3. 指定路径,单向数据通路 165.4. 指定路径,双向数据通路 175.5. 流规则结论 181. FlowVisor1.1. FlowVisor介绍 FlowVisor是建立在OpenFlow之上的网络虚拟化平台,它可以将物理网络分成多个逻辑网络,从而实现开放软件定义网络(SD

3、N)。它为管理员提供了广泛定义规则来管理网络,而不是通过调整路由器和交换机来管理网络。 FlowVisor安装在商品硬件上,它是一个特殊的OpenFlow控制器,主要是作为OpenFlow交换机网络和其他标准OpenFlow控制器之间的透明代理。虽然FlowVisor仍被认为处于试验阶段,并且缺乏一些基本功能(例如命令行管理工具),但FlowVisor已经被部署在很多生产环境中,例如从2009年开始应用于斯坦福大学的校园网络。 FlowVisor通过抽象层来分割物理网络,它位于一组交换机和软件定义网络或多个网络之间,管理带宽、CPU利用率和流量表,这类似于管理程序位于服务器硬件和软件之间,以允

4、许多个虚拟操作系统运行。 正如管理程序依赖于标准x86指令来虚拟化服务器一样,FlowVisor使用标准OpenFlow指令集来管理OpenFlow交换机,这些指令设置了低级别规则,比如如何基于数据包表头中的特点来转发数据包。 由于所有这些规则都是通过流量表定义的,因此,无论是从带宽还是CPU使用率来看,网络虚拟化都没有增加很多开销或者几乎没有增加开销,不过另外需要设置和修改流量表规则的单独的带外物理控制器。1.1.1. FlowVisor基本概念1.1.2. 切片 FlowVisor网络的基本要素是网络切片(Slice),网络切片是由一组文本配置文件来定义的。文本配置文件包含控制各种网络活动

5、的规则,例如允许、只读和拒绝,其范围包括流量的来源IP地址、端口号或者数据包表头信息。 例如,网络管理员可以将安全的Telnet流量(默认端口992)分配到其自身的切片,将执行团队IP地址的流量分配到另一个切片。然后他可以创建第三个默认切片来管理所有其他流量,把它当做“只读”切片来监控其他三个切片,以达到诊断目的。网络管理员可以动态地重新分配和管理这些切片,以确保浏览YouTube的人不会对Telnet应用程序和执行团队带宽造成负面影响。1.1.3. 流规则 其英文名称Flowspace。表面上理解是流空间,但实际上切片定义了控制器的网络分区,不定义切片的匹配规则。需要创建的规则叫做FlowS

6、pace。所以其翻译成流规则更好些。Flowspace包含下面字段:字段名含义priority优先级,0-65535in_port进入端口dl_vlanVlan id, 0xffff表示匹配非vlan包,否则指定为 0 - 4095表示12位的vlan iddl_vpcpVlan优先级 最外层VLAN头的PCP域dl_srcEthernet 源Mac地址dl_dstEthernet 目的Mac地址dl_typeEthernet 协议类型,采用0 65535表示nw_src源IP地址nw_dst目的IP地址nw_protoIP协议类型,十进制数0-255nw_tosIP Tos位,采用0-255

7、表示tp_srcTCP/UDP 源端口tp_dstTCP/UDP 目的端口wildcards匹配规则actions切片行为,指的是slice对这个flowspace拥有的权限, DELEGATE=1, READ=2, WRITE=4.actions的值为这3个的组合,所有取值范围为1-71.1.4. 带宽 每个切片应该具有专门的总可用带宽百分比。1.1.5. 拓扑结构 每个切片对于网络节点(包括物理和虚拟交换机及路由器)应该有自己的“看法”.切片的组成部分应该是不知道切片的:对于控制器而言,FlowVisor看起来就是普通的交换机;从OpenFlow交换机的角度来看,FlowVisor就是一个

8、控制器。1.1.6. 转发表 由于转发表往往被限定在物理设备上,网络管理员应确保一个切片不会影响任何特定设备的转发表,迫使它放弃另一切片的规则。1.2. FlowVisor安装过程 好多前辈都写过相关的文档,我是按照前辈的文档来进行安装的。所以在这里我也不多说什么就写简要步骤。 环境搭建 安装JDK,之前很多前辈说FlowVisor不支持JDK1.6以上的版本。估计FlowVisor也改进过,亲测JDK1.7可以使用。安装JDK:sudo apt-get install openjdk-7-jdk 安装ant,不多说,比较简单,sudo apt get install Ant. 获取源码 下载

9、flowvisor-1.0-MAINT.zip git clone git:/ Make操作后然后你就会发现,成功了。 sudo make install 在输入完User和Group后,记得不要输入密码,不然每次操作都要输入密码,比较麻烦。 启动flowvisorflowvisor /usr/local/etc/flowvisor/flowvisor-config.xml1.3. FlowVisor基本操作1.3.1. 切片操作 创建切片命令格式:fvctl add-slice options admin-email具体命令: fvctl -p 8081 add-slice s1 tcp:1

10、27.0.0.1:6636 fv成功显示:查看切片 查看所有的切片 fvctl -p list-slices fvctl -p 8081 list-slices 查看具体切片 命令格式: fvctl -p list-slice-info update-slice option fvctl -p 8081 update-slice -disable-slice s1 关闭slice:s1 删除切片 fvctl remove-slice fvctl remove-slice s11.3.1. 流规则操作 添加flowspacefvctl add-flowspace options dpidprio

11、ritymatchslice-perm创建flowspacefvctl -p 8081 add-flowspace fs1 all 100 dl_dst=78:45:c4:2d:72:51 s1=5fvctl -p 8181 add-flowspace fs1 all 100 dl_src=78:fvctl -p 8181 add-flowspace fs2 all 100 dl_dst=78:29:fb:c4 s2=5fvctl -p 8181 add-flowspace fs2 all 100 dl_src=78:注:flowspace的名字可以重名。更多命令可以查看man fvctl2.

12、 Mininet2.1. SDN 与 Mininet 概述SDN 全名为(Software Defined Network)即软件定义网络,是现互联网中一种新型的网络创新架构,其核心技术 OpenFlow 通过网络设备控制面与数据面分离开来,从而实现网络流量的灵活控制,为网络及应用提供了良好的平台。而 Mininet 是一个轻量级软件定义网络和测试平台;它采用轻量级的虚拟化技术使一个单一的系统看起来像一个完整的网络运行想过的内核系统和用户代码,也可简单理解为 SDN 网络系统中的一种基于进程虚拟化平台,它支持 OpenFlow、OpenvSwith 等各种协议,Mininet 也可以模拟一个完

13、整的网络主机、链接和交换机在同一台计算机上且有助于互动开发、测试和演示,尤其是那些使用 OpenFlow 和 SDN 技术;同时也可将此进程虚拟化的平台下代码迁移到真实的环境中。2.2. Mininet的特性 支持 OpenFlow、OpenvSwitch 等软定义网路部件 支持系统级的还原测试,支持复杂拓扑,自定义拓扑等 提供 Python API, 方便多人协作开发 很好的硬件移植性与高扩展性 支持数千台主机的网络结构2.3. 常用指令名称作用nodes查看全部节点net查看链路信息dump输出各节点的信息h1 ping -c 4 h2测试主机之间的连通性iperf两个节点之间用指定简单的

14、 TCP 测试iperfudp两个节点之间用指定款单 udp 进行测试noecho运行交互窗口,关闭回应pingpair两个主机将互 pinghelp列出命令文档,查看命令帮助: help commanddpctl在所有叫交换机exit/quit退出 mininet 命令行hX ifconfig查看当前那主机的 ip 地址,如: h1 ifconfigpy/sh执行 python 表达式或运行外部 shell 程序3. Opendaylight3.1. ODL概念 Opendaylight是一个以模块化、可插拔、灵活的、基于Java的控制器为核心的开源平台。从北往南,它首先包括供上层应用和业务

15、逻辑使用的北向开放API,有OSGi和REST两类。上层应用程序利用这些北向API获得网络智能信息、运行算法处理分析以及组合新的网络策略;其次,它包括控制器平台本身,它是一组可动态组合的模块用于汇集网络信息,比如网络中有哪些元素、其统计信息如何等;最南边是能够支持多种协议的南向接口,如Openflow 1.0 1.3 BGP-LS等,这些南向接口可以调用设备上服务抽象层SAL。 在这里我们用的是ODL中的controller的部分,那controller部分的作用是什么呢,在这里controller为控制器,其控制着交换机的路由转发。3.2. ODL的框架原则Open Daylight Con

16、troller在设计的时候遵循了六个基本的架构原则:(1) 运行时模块化和扩展化(Runtime Modularity and Extensibility):支持在控制器运行时进行安装、删除和服务的更新。(2) 多协议的南向支持(Multiprotocol Southbound):南向支持多种协议。(3) 服务抽象层(Service Abstraction Layer):南向多种协议对上提供统一的北向服务接口。(4) 开放的可扩展北向API(Open Extensible Northbound API):提供可扩展的应API,通过REST或者函数调用方式。两者提供的功能要一致。(5) 支持多租

17、户、切片(Support for Multitenancy/Slicing):允许网络在逻辑上(或物理上)划分成不同的切片或租户。控制器的部分功能和模块可以管理指定切片。控制器根据所管理的分片来呈现不同的控制观测面。(6) 一致性聚合(Consistent Clustering):提供细粒度复制的聚合和确保网络一致性的横向扩展(scale-out)。3.3. 框架概述 上图所示,南向通过plugin的方式来支持多种协议,包括OpenFlow1.0、1.3,BGP-LS 等。这些模块被动态挂载到服务抽象层(SAL),SAL 为上层提供服务,将来自上层的调用封装为适合底层网络设备的协议格式。控制器

18、需要获取底层设备功能、可达性等方面的信息,这些信息被存放在拓扑管理器(Topology Manager)中。其他的组件,包括ARP handler、HostTracker、Device Manager和Switch Manager,则为Topology Manager生成拓扑数据。 控制器为应用(App)提供开放的北向API。支持OSGi 框架和双向的REST 接口。OSGi框架提供给与控制器运行在同一地址空间的应用,而REST API 则提供给运行在不同地址空间的应用。所有的逻辑和算法都运行在应用中。 控制自带了GUI,这个GUI 使用了跟应用同样的北向API,这些北向API 也可以被其他的

19、应用调用。4. 建立连接4.1. FlowVisor部分 启动FlowVisor在终端中输入命令:flowvisor /etc/flowvisor/config.json启动后界面如下: 在这里要注意的是FlowVisor的服务端口是8081.不要错误的认为监听端口是8081,然后连接到这个端口上。 创建slice 创建slice的命令格式为 fvctl add-slice options 执行fvctl -p 8081 add-slice s1 tcp:192.168.5.64:6633 sono命令,就可以创建切片。创建成功如下: 这里面要注意的是tcp条件后面的ip地址是你的控制器的ip

20、地址。我这里用的是opendaylight,端口就是opendaylight监听的端口。还有就是一个切片只能对应一个控制器,这算是flowsivor的不足之处吧。创建完后使用fvctl -p 8081 list-slices我们来看看创建的slice或者具体的看看slice里面的信息,使用fvctl -p 8081 list-slice-info s1,具体显示如下: 创建规则 在不创建规则的情况下,opendaylight是无法和flowsivor建立连接的。即使你创建了slice,并且提示是成功的,也无法连接。不多说具体创建操作fvctl -p 8081 add-flowspace fs1

21、 all 100 any s1=5,创建完,终端不会显示什么有效信息,但是opendaylight控制器的控制端可以看到以下信息: 证明flowvisor已经连接到控制器中。但是里面还没有交换机的任何信息。到这里我们flowvisor的操作部分已经完成。下面我们来操作mininet部分。4.2. Mininet部分 创建虚拟拓扑 创建拓扑可以直接在root下直接使用mn就可以创建默认的拓扑了,但是默认的拓扑也是只是连接到127.0.0.1上。所以我们要使用以下命令: sudo mn -topo=tree,3 -controller=remote,ip=192.168.217.128,port=

22、6644 解释下: mn后通过 -来加参数topo是指的你的拓扑结构,其中的tree,3是表示三层树形结构,-controller=remote表示拓扑网络的控制器控制方式是remote,其中的ip是指flowvisor所在主机的ip,端口就是flowvisor的监听端口,我这里改的是6644。创建后的效果如下: 查看flowvisor主机的net 当虚拟网络创建好了后,我们就可以看到flowvisor监听端口,建立的tcp连接。使用如下命令查看能看到我们创建了7个交换机,这七个交换机和flowvisor建立的tcp连接。 查看flowvisor中的datapaths 不多说使用datapat

23、hs可以查看连接进来的交换机,我们使用的查看命令是:fvctl -p 8081 list-datapaths4.3. Opendaylight部分 控制端显示 到这里就创建好了一个网络虚拟化实例,下面看看控制端现实的信息: 这里我们能看到七个虚拟交换机和控制器通过tcp相连。 Web端显示 这是web端的拓扑结构,当然这些交换机并不是真的存在,是通过mininet虚拟出来的突破结构。 这是交换机的节点信息信息,在这里我们发现我们创建的虚拟交换机是openflow交换机。其节点信息如下:4.4. 抓包看看tcp连接5. 基于实验的flowspace细述 Flowspace的概念上面已经讲过,Fl

24、owSpace defined by a collection of packet headers and assigned to “Slices”。 上述的实验连接中创建flowspace使用的是最近本的命令,具体命令如下:fvctl -p 8081 add-flowspace fs1 all 100 any s1=5 其中在链路这个参数上我们定义了all,即使用所用交换机,100为优先级,match匹配项中我们用的是any,即任何主机都可以成为消息的发送者和接受者。5.1. 全路径,单向数据通路 这次我们使用的链路还是all,只给定单向数据通通路。(1) 我们使用如下命令创建流规则: fv

25、ctl -p 8081 add-flowspace fs1 all 100 nw_src=10.0.0.1,nw_dst=10.0.0.0.2 (2)我们使用如下命令让其生效:(当发现你写改的规则无法生效时可以使用) fvctl -p 8081 update-slice -disable-slice s1让slice失效 fvctl -p 8081 update-slice -enable-slice s1让slice生效 (3)让我们查看下数据链路的ping情况我们会发现所有的都是ping不通的。5.2. 全路径,双向数据通路这次我们使用的链路还是all,给定双向的数据通路。 fvctl -

26、p 8081 add-flowspace fs1 all 100 nw_src=10.0.0.1,nw_dst=10.0.0.0.2 fvctl -p 8081 add-flowspace fs1 all 100 nw_src=10.0.0.2,nw_dst=10.0.0.0.1 我们会发现所有的都还是能ping通的。5.3. 指定路径,单向数据通路这次我们给定链路,但是只给定单向数据通通路。 fvctl -p 8081 add-flowspace fs1 00:00:03 100 nw_src=10.0.0.2,nw_dst=10.0.0.0.15.4. 指定路径,双向数据通路这次我们给定链路,但是只给定双向数据通通路。 f

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1