OpenFlow技术白皮书-V1.0
openflow协议1.3.0中文版 完整版
OpenFlow交换机规范(概要)Version1.3.0(June25,2012)1介绍本文档描述了对OpenFlow交换机的要求。
此规范内容包括交换机的组件和基本功能,和一个远程控制器管理一个OpenFlow交换机的协议:OpenFlow。
2交换机部件OpenFlow的交换机包括一个或多个流表和一个组表,执行分组查找和转发,和到一个外部控制器OpenFlow的信道(图1)。
该交换机与控制器进行通信,控制器通过OpenFlow协议来管理交换机。
控制器使用OpenFlow协议,可以添加、更新和删除流流表中的表项,主动或者被动响应数据包。
在交换机中的每个流表中包含的一组流表项;每个流表项包含匹配字段,计数器和一组指令,用来匹配数据包(见5.2)。
匹配从第一个流表开始,并可能会继续匹配其它流表(见5.1)。
流表项匹配数据包是按照优先级的顺序,从每个表的第一个匹配项开始(见5.3)。
如果找到一个匹配项,那么与流表项相关的指令就会去执行。
如果在流表中未找到匹配项,结果取决于漏表的流表项配置:(例如,数据包可能通过OpenFlow信道被转发到控制器、丢弃、或者可以继续到下一个的流表,见5.4)。
与流表项相关联的指令包含行动或修改流水线处理(见5.9)。
行动指令描述了数据包转发,数据包的修改和组表处理。
流水线处理指令允许数据包被发送到后面的表进行进一步的处理,并允许信息以元数据的形式在表之间进行通信。
当与一个匹配的流表项相关联的指令集没有指向下一个表的时候,表流水线停止处理,这时该数据包通常会被修改和转发(见5.10)。
流表项可能把数据包转发到某个端口。
这通常是一个物理端口,但它也可能是由交换机定义的一个逻辑端口或通过本规范中定义的一个保留的端口(见4.1)。
保留端口可以指定通用的转发行为,如发送到控制器、泛洪、或使用非OpenFlow的方法转发,如“普通”交换机转发处理(见4.5);而交换机定义的逻辑端口,可以是指定的链路汇聚组、隧道或环回接口(见4.4)。
OpenFlow协议1.0及1.3版本分析
OpenFlow协议1.0及1.3版本分析OpenFlow是SDN控制器和交换之间交流的协议,在SDN领域有着⼗分重要的地位。
OpenFlow协议发展到现在已经经过了1.0、1.3、1.4等版本。
其中1.0和1.3版本使⽤的是最为⼴泛的。
本篇博⽂主要分析1.0版本和1.3版本OpenFLow协议在控制器和交换机之间的交互流程。
OpenFlow1.0协议交互OpenFlow协议1.0的交互过程如下:交互过程:交换机或控制器⾸先发送hello报⽂,确定openflow通信版本。
交换机或控制器收到hello报⽂之后,回复⼀个hello报⽂,协商版本。
控制器发送feature_request报⽂,查询交换机具体信息。
交换机收到feature_request报⽂之后,回复feature_reply,报告⾃⼰的详细信息给控制器。
⼯作过程中控制器会不断发送echo_request给交换机,交换机回复echo_reply消息给控制器,确认连接。
OpenFlow协议1.0版本在交换机和控制器信息交互过程中,⼀共有如下的消息类型:1. Enum ofp_type {1. /* Immutable messages. */2. OFPT_HELLO, /* Symmetric message */3. OFPT_ERROR, /* Symmetric message */4. OFPT_ECHO_REQUEST, /* Symmetric message */5. OFPT_ECHO_REPLY, /* Symmetric message */6. OFPT_VENDOR, /* Symmetric message *//* Switch configuration messages. */7. OFPT_FEATURES_REQUEST, /* Controller/switch message */8. OFPT_FEATURES_REPLY, /* Controller/switch message */9. OFPT_GET_CONFIG_REQUEST, /* Controller/switch message10. OFPT_GET_CONFIG_REPLY, /* Controller/switch message *11. OFPT_SET_CONFIG, /* Controller/switch message *//* Asynchronous messages. */12. OFPT_PACKET_IN, /* Async message */13. OFPT_FLOW_REMOVED, /* Async message */14. OFPT_PORT_STATUS, /* Async message *//* Controller command messages. */15. OFPT_PACKET_OUT, /* Controller/switch message */16. OFPT_FLOW_MOD, /* Controller/switch message */17. OFPT_PORT_MOD, /* Controller/switch message *//* Statistics messages. */18. OFPT_STATS_REQUEST, /* Controller/switch message */19. OFPT_STATS_REPLY, /* Controller/switch message *//* Barrier messages. */20. OFPT_BARRIER_REQUEST, /* Controller/switch message */21. OFPT_BARRIER_REPLY, /* Controller/switch message *//* Queue Configuration messages. */22. OFPT_QUEUE_GET_CONFIG_REQUEST, /* Controller/switch m23. OFPT_QUEUE_GET_CONFIG_REPLY /* Controller/switch mess24. };其中红⾊为常⽤消息,整理如下:HelloFeature_requestFeature_replyStats_requestStats_replyFlow_modSet_configPacket_inPacket_out下⾯分别介绍以上报⽂信息。
OpenFlow协议1.0讲解
Openflow 1.0.0 报告
余显 2013年7月11日
YOUR LOGO
目录
1、SDN简介
2、openflow介绍
三、OF协议:控制器控制 流表修改的数据结构
• • • • • • • • • • • • • • • • 1、控制修改命令: enum ofp_flow_mod_command { OFPFC_ADD, /* New flow. */ OFPFC_MODIFY, /* Modify all matching flows. */ OFPFC_MODIFY_STRICT, /* Modify entry strictly matching wildcards */ OFPFC_DELETE, /* Delete all matching flows. */ OFPFC_DELETE_STRICT /* Strictly match wildcards and priority. */ }; 2、flags域的取值: enum ofp_flow_mod_flags { OFPFF_SEND_FLOW_REM = 1 << 0, /* Send flow removed message when flow * expires or is deleted. */ OFPFF_CHECK_OVERLAP = 1 << 1, /* Check for overlapping entries first. */ OFPFF_EMERG = 1 << 2 /* Remark this is for emergency. */ };
公共数据开放平台V1.0产品白皮书
公共数据开放平台V1.0产品白皮书公共数据开放平台产品白皮书第一章行业背景随着各行各业飞速迅猛的发展,信息资源也在日新月异的增长,信息掌握的多寡成为各国软实力和竞争力的重要标志。
2011年以来,美国、英国等国家在全球掀起了政府开放数据热潮,至今全球已有超过65个国家已加入公共信息资源开放的行列中,普遍建立了依托互联网面向社会提供开放数据的统一网站。
我国各省市也纷纷开始实施数据开放工作,继北京、上海之后,浙江、青岛等省市也纷纷开通了数据网站。
虽然国内各地的数据网站都在逐步建立,但都是各自为营、相对独立,缺少统一的标准、统一的格式、统一的目录等,使得国内没有一个统一的数据开放网站,对外缺少统一的面向世界的中国数据开放网站。
因此,我们设计实现的公共数据开放平台,在国家级、省级“两级建设”,在国家、省、市、县、乡镇“五级使用”,基于互联网,构成集中的、专用的信息资源开放共享平台。
第二章产品概述公共数据开放平台,能够为各级政府职能部门、企事业单位提供关于政府部门业务信息、公共事业服务信息等资源的发布、展示、下载、查询和交流等功能。
本产品是基于互联网的、专用的、集中的网站,是公共信息资源开放共享的载体。
信息资源形式包括结构化数据和非结构化数据,基于云计算技术,充分利用现有的电子政务公共平台,采用自主可控的软硬件设备进行构建,满足快速部署、安全可靠、易于扩展和多并发访问。
本产品作为管理机构、开放机构、社会公众的共用平台,能够起到四方面作用:1、渠道作用:通过数据网站开放公共信息资源;社会公众通过数据网站获取公共信息资源;管理机构通过数据网站对公共信息资源开放共享过程进行管理、对成效进行评估考核。
2、桥梁作用:通过数据网站建立起开放机构和社会公众交流互动的桥梁,社会公众可通过数据网站向开放机构提出数据开放需求,评价已开放数据的质量;开放机构则可以通过数据网站响应社会公众需求,不断扩大开放范围,提高数据质量。
3、窗口作用:数据网站是公共信息资源开放的宣传和监督窗口,公布公共信息资源开放共享相关要求、开放计划、开放机构的考核排名,接受社会各界监督;公布鼓励公共信息资源开放共享和再利用的政策、发布优秀信息服务产品,促进信息服务产业链形成。
openflow协议1.0中文版
第一章Openflow1.0第1.1节概述官方网站:。
本部分内容按照Openflow规范1.0版本撰写。
1.0之前版本都是草案,从1.0版本开始是正式版本,生产商们理论上应该都参照这个版本。
1.0版本的下载地址为http:// /documents/openflow-spec-v1.0.0.pdf。
目前最新规范版本为1.3,但现有实现多以1.0版本为主。
第1.2节交换机组成每个of交换机(switch)都有一张流表,进行包查找和转发。
交换机可以通过of 协议经一个安全通道连接到外部控制器(controller),对流表进行查询和管理。
图表一-1展示了这一过程。
图表一-1 of交换机通过安全通道连接到控制器流表中包括一些流表项,每个表项包括若干个域:包头域(header fileds,匹配包头多个域)、活动计数器(counters)、0个或多个执行行动(actions)。
交换机对每一个包在流表中进行查找,如果匹配则执行相关行动,否则通过安全通道将包转发到控制器,控制器来决策如何处理无匹配流表的网包,并添加或者删除流表项。
流表项可以将包转发到一个或者多个端口。
一般来说,可以指定物理端口,协议并没有预先规定一些抽象集合(包括端口聚合或vlan端口)。
of端口状态有限,包括up、down或是否生成树洪泛从此端口转发。
端口配置可以通过of配置协议进行处理。
of 虚拟端口包括洪泛和入口等。
第1.3节流表流表是交换机进行转发策略控制的核心数据结构。
交换芯片通过查找流表表项来决策对进入交换机的网络流量采取合适的行为。
每个表项包括三个域,包头域(header field),计数器(counters),行动(actions)。
如表格一-1所示。
表格一-1 流表项结构1.3.1包头域包头域包括12个域,如表格一-2所示,包括:进入接口,Ethernet源地址、目标地址、类型,vlan id,vlan优先级,IP源地址、目标地址、协议、IP ToS位,TCP/UD P目标端口、源端口。
OPENFLOW协议通信流程
OPENFLOW协议通信流程篇一:Openflow协议通信流程解读Openflow协议通信流程解读前言接触了这么久的SDN,Openflow协议前前后后也读过好多遍,但是一直没有时间总结一下自己的一些见解。
现在有时间了,就写一写自己对Openflow协议通信流程的一些理解。
SDN中Switch和controller在SDN中很重要的两个实体是Switch跟Controller。
Controller在网络中相当于上帝,可以知道网络中所有的消息,可以给交换机下发指令。
Switch就是一个实现Controller指令的实体,只不过这个交换机跟传统的交换机不一样,他的转发规则由流表指定,而流表由控制器发送。
switch组成与传统交换机的差异switch组成switch由一个Secure Channel和一个flow table组成,of1.3之后table变成多级流表,有256级。
而of1.0中table只在table0中。
? Secure Channel是与控制器通信的模块,switch和controller之间的连接时通过socket连接实现。
Flow table里面存放这数据的转发规则,是switch的交换转发模块。
数据进入switch之后,在table中寻找对应的flow进行匹配,并执行相应的action,若无匹配的flow则产生packet_in(后面有讲)of中sw与传统交换机的差异匹配层次高达4层,可以匹配到端口,而传统交换机只是2层的设备。
运行of协议,实现许多路由器的功能,比如组播。
求补充!!(如果你知道,请告诉我,非常感谢!) ? ?openflow的switch可以从以下方式获得实体of交换机,目前市场上有一些厂商已经制造出of交换机,但是普遍反映价格较贵!性能最好。
在实体机上安装OVS,OVS可以使计算机变成一个openflow 交换机。
性能相对稳定。
使用mininet模拟环境。
OpenFlow网络技术原理介绍
TABLE IN_PORT ANY LOCAL
NORMAL
FLOOD
代表传统的非OpenFlow交换机管道
代表传统的非OpenFlow交换机泛洪
14
15
OpenFlow Processing Pipeline
OpenFlow管道处理流程
Packet in
Ingress port
Action OpenFlow管道 Action set Set=0
Table 0
Packet+ Ingress port+ metadata
Table 1
Table Action n set
Discovery 仅仅是理论和功能建模 Data
2
5
Ethane架构
Ethane 中央控制器 Ethane交换机
中央控制器 ?
Ethane交换机
奠定OpenFlow 技术基础
2
6
SDN架构
SDN 应用层 控制层 基础设施层 应用层
API
应用程序
API API
控制层
SDN 控制软件
提取报文的 特征信息 (mac、ip等)
下发Flow-mode 消息到交换机, 添加流表项
yes 按照匹配的 流表项转发
下发packet out 报文,动作为 out到table
25
25
报文上送控制器的处理过程
25
26
单播报文流表转发
报文从 表0开始 yes
OpenFlow白皮书翻译
OpenFlow携手校园网创新译者:北邮-李呈Homepage: 摘要本白皮书提出OpenFlow:一种为研究人员提供的可以在日常网络中运行协议的方式。
OpenFlow基于拥有内部流表,并能通过标准接口添加和删除流表项的以太网交换机。
我们的目标是鼓励网络厂商将OpenFlow部署在大学校园骨干网和配线间的交换机产品上。
我们认为,OpenFlow的是一个有意义的折衷:一方面,它使研究人员能够以统一的方式在线速和高端口密度的交换机进行实验。
而另一方面,厂商不必暴露自己的交换机内部工作细节。
除了允许研究者在真实流量环境中评价他们的想法,在提出像GENI那样的大型测试平台的过程中OpenFlow还能是一个有用的校园组件。
不久的将来斯坦福的两栋大楼会在商用以太网交换机和路由器上部署OpenFlow。
我们会鼓励其他学校也部署OpenFlow,而且我们也会鼓励你考虑将OpenFlow部署到你的学校。
分类和主题描述C.2[互联网络]:路由器普通术语实验,设计关键词以太网交换机,虚拟化,流1、可编程网络的需求分析网络已经成为公司,家庭,学校的重要的基础设施。
这个成功对于网路研究者来说以一个福音也是一个诅咒。
他们的工作将更有相关性,但是做出影响的机会也越来越遥远。
在任何给定的网络中对现实世界的影响在减少的原因在于我们安装了大规模的设备和协议,而不愿对产生的流量做实验,这已经给创新设立了一个过高的门槛。
今天,在足够逼真的设置下(例如,大规模引入真实流量),几乎没有实用的方法去做网络新协议的实验(比如新的路由协议,或IP的替代协议),以获得将其广泛部署所需要的信心。
所以导致网络研究界的大部分想法都是没有尝试和测试过的,因此人们普遍认为当今的网络基础设施已经僵化。
意识到问题之后,网络研究一直在努力开发可编程网络,例如研究新的网络架构和分布式系统的全国性网络研究机构提出的GENI。
这些可编程的网络要求程控交换机和路由器(使用虚拟化技术)可以处理数据包的多个相互隔离的实验网络同时进行。
openflow_nox详细参考资料总结
这是我在学习中做的一个笔记文档,仅供大家参考目录目录 (1)第一章背景 (2)第二章理论基础 (3)2.1软件定义网络SDN (3)2.2 openflow网络架构 (4)2.2.1 openflow交换机 (4)2.2.2 openflow 控制器 (8)2.2.3 openflow 虚拟化 (8)2.3 安全通道 (9)2.3.1 OF协议 (9)2.3.2 建立连接 (10)2.3.3 连接中断 (11)2.3.4 加密 (11)2.3.5 生成树 (11)第三章实验环境搭建 (11)3.1 安装open vswitch (12)3.1.1 安装KVM (12)3.1.2 安装Openvswitch (13)3.1.3 配置网桥 (14)3.2 安装NOX网络操作系统及GUI (15)3.2.1 安装NOX (15)3.2.2 安装NOX-GUI (16)3.3 环境测试 (16)3.1.1 总体拓扑图展示 (16)3.3.2 运行controller (16)3.3.3 配置open vswitch (17)3.3.4 测试open switch 与controller 是否连通 (18)3.3.5 启动GUI监测 (19)第四章Open Flow分析 (19)4.1 重要的数据结构 (19)4.1.1 of协议头 (19)4.1.2交换机端口状态 (21)4.1.3 流匹配结构 (21)4.1.4 行为结构 (22)4.1.5流表操作 (22)4.1.6 表统计信息 (23)4.1.7 端口统计 (23)4.1.8 数据包进入 (24)4.1.9 发送数据包 (24)4.1.10 流表删除 (25)4.2 openflow设备定义以及基本操作 (25)4.3 OpenFow数据通路分析 (28)第五章NOX分析 (30)5.1 事件 (30)5.1.1 事件概念 (30)5.1.2 核心事件列表 (30)5.2 组件 (31)5.2.1 组件的概念 (31)5.2.2 基于python的组件实现原理 (31)5.2.3 流表创建实现原理 (32)5.2.4 组件的基本架构 (32)第六章python组件实例 (33)6.1 实例一解析packet_in 数据包 (33)6.2实例二数据通路重定向 (33)第七章GUI 组件实例 (36)7.1 GUI 简介 (36)7.2 NOX-GUI实现原理 (36)7.2.1 SNMP协议简介 (36)7.2.2 open vswitch SNMP实现 (36)7.2.3 NOX SNMP 实现 (39)第一章背景斯坦福大学的研究者于2008 年提出OpenFlow 技术,并逐渐推广SDN 概念。
OpenFlow技术白皮书
OpenFlow技术白皮书-V1.0神州数码网络有限公司目录1. 概述 (1)2. 缩写和术语 (2)3. 技术介绍 (2)3.1 O PEN F LOW交换机架构 (2)3.2 O PEN F LOW连接维护 (3)3.3 O PEN F LOW控制VLAN (3)3.4 规则处理 (3)3.4.1 规则匹配字段 (3)3.4.2 规则动作 (4)3.4.3 规则维护 (4)3.4.4 规则老化 (4)3.5 报文转发 (4)3.6 二层GRE隧道(L2OVERGRE) (4)3.7 Q O S (5)3.8 交换机信息收集 (5)3.8.1 端口信息 (5)3.8.2 统计信息 (5)4. 主要特性 (5)5. 技术特色与优势 (5)6. 典型应用指南 (5)6.1 OPENFLOW交换机基本配置举例 (5)6.1.1 组网需求 (6)6.1.2 配置思路 (6)6.1.3 配置步骤 .............................................................................................................. 错误!未定义书签。
6.2 OPENFLOW IP V4L2OVERGRE隧道配置举例 (7)6.2.1 组网需求 (7)6.2.2 配置思路 (7)6.2.3 配置步骤 .............................................................................................................. 错误!未定义书签。
1.概述OpenFlow是由斯坦福大学的Nick McKeown教授在2008年4月ACM Communications Review上发表的一篇论文OpenFlow: enabling innovation in campus networks首先详细论述了OpenFlow的原理。
OpenDaylight与Mininet应用实战之OpenFlow1.0协议分析
OpenDaylight与Mininet应用实战之OpenFlow1.0协议分析继本专题基本环境搭建(一)之后,本文在此基础上熟悉平台操作,以及通过wireshark 抓包工具分析OpenFlow(以下简写为OF)协议。
具体的OF官方协议及白皮书可在资料库栏目中下载阅读。
注:此文涉及的环境仅支持OF1.0版本,对于OF1.2、OF1.3版本可用其他平台测试,后续会另做专题讨论。
1打开wireshark并创建拓扑按照章节一搭建平台,启动ODL,并打开wireshark。
进入装有Mininet的VM,通过mn命令指定网络拓扑及指定此ODL控制器。
Mininet创建网络拓扑命令:此命令通过Mininet模拟创建一个含有两个交换机(Open vSwitch,以下简写为OVS)和两个主机的网络拓扑,其中192.168.5.203为ODL的IP,6633为ODL的默认端口,网络拓扑如下图所示:2查看网络在Mininet中通过操作网络命令,可以查看OVS间及OVS与主机间的连接关系,也可以查看Mininet是否远程连接控制器。
例如,通过nodes命令可以查看网络中所有的节点。
通过net命令可以查看并确认网络连接关系是否与预期一致以及节点信息,且可以了解具体的连接端口信息。
通过下面的dump命令可以看出,交换机通过远程方式连接到控制器,且能看到控制器的IP 和PORT。
3抓包并分析协议通过wireshark抓包可以直接看到控制器与OVS交换机的通信过程,下面分析该流程中的OF消息。
此专题应用的是直接支持OpenFlow协议的wireshark官网Stable Release(1.12.1)版本。
3.1建立连接控制器与交换机之间的OpenFlow协议是应用于TCP传输层上,所以解析应用层。
他们首先发送hello消息,建立初始化连接,协商使用的OpenFlow协议版本。
由下图可知,ODL与Mininet之间应用的是OpenFlow1.0版本协议(其他1.2、1.3协议会在协议OpenFlow 后面标识)。
OpenFlow技术及应用
下一代互联网体系结构创新平台 OpenFlow技术及应用NetMagic研究组时间:2010-09-15OpenFlow技术及应用摘要:OpenFlow是美国斯坦福大学于2007年提出的一种支持网络创新研究的新型网络交换模型,该模型通过开放的流表支持用户对网络处理行为进行控制,从而为新型互联网体系结构研究提供新的实验途径。
OpenFlow提出后得到学术界和工业界的广泛关注。
本文从技术内涵、设备模型和应用等多个角度对OpenFlow技术进行全面的分析,并对其发展趋势进行了预测。
关键词:OpenFlow ;交换机;网络创新Abstract:In 2007, Stanford University proposed a new network switch prototype named OpenFlow for the research of network innovation. By controlling the flow table, OpenFlow can support user to control the behavior of the network. So, OpenFlow provides a platform for the research of the network architecture. OpenFlow gets widely attention from academia and industry. This thesis introduces the components, classifications, application and influence to networks.Key words: OpenFlow;Switch; Networks innovation1、前言交换设备的商业化使得设备生产商为了各自利益而把网络设备封闭起来,这严重阻碍了网络的创新发展。
OpenFlow协议
OpenFlow协议OpenFlow是⼀种新型的⽹络协议,它是控制器和交换机之间的标准协议。
⾃2009年底发布1.0版本后,OpenFlow协议⼜经历了1.1、1.2、1.3及1.4版本的演进过程,⽬前使⽤和⽀持最多的是1.0和1.3版本。
OpenFlow1.3在1.0版的基础上进⼀步优化及升级,其中添加了很多新的特性及消息,如⽀持多个流表(flow table)、组表(group table),⽀持多控制器等。
⼀个流表中包含多个流表项,OpenFlow v1.3中流表项主要由7部分组成,分别是:匹配域(⽤来识别该条表项对应的flow)优先级(定义流表项的优先顺序)计数器(⽤于保存与条⽬相关统计信息)指令(匹配表项后需要对数据分组执⾏的动作)Timeouts、Cookie、Flags.流表项图与OpenFlow v1.0不同的是,OpenFlow v1.3协议中⼀台OF交换机会有多张流表。
具体匹配流程如下图所⽰。
当⼀个数据包到达交换机,从数据包中提取匹配字段从第⼀个流表开始查找匹配,匹配字段取决于数据包的类型。
通常包括各种数据包的头字段。
例如:以太⽹源地址或ipv4的地址等.此外,还可以对数据包关联的字段(如交换机14的⼊端⼝等)进⾏匹配。
如果数据包和流表项匹配成功,则更新计数器并执⾏流表项中的指令。
如果该流表项使⽤GOTO指令指向某⼀其他流表,则执⾏完本次指令的数据包以及动作集、元数据等信息转到GOTO指令指向的流表进⾏下⼀步的匹配(也就是图中的跳转到Table n?);若未指向另⼀流表则执⾏动作集,此时流⽔线处理成功。
如果在某个流表中并未匹配成功,则查找该流表中是否存在table-miss流表项(流表中的table-miss流表项指定如何处理未匹配成功的数据包).如果存在table-miss流表项,则按该流表项中的指令执⾏,如丢弃数据包、将数据包转到另外⼀个流表或者发送给控制器(即通过Packet_In消息传递给控制器,由控制器制定数据包的转发策略⽽后通过Packet_Out消息下发流表给交换机)等;如果在流表中并未匹配成功,并且该流表项中不存在table-miss流表项,那么交换机将会丢弃该数据包。
OpenFlow协议基础
• OF-CONFIG V1.1.1选用NETCONF作为传输协议
19
OpenFlow的演进
OpenFlow 1.0.0(2009.12)
OpenFlow 1.2(2011.12)
OF-CONFIG 1.1(2013.3)
必选 必选 必选 可选 可选
可选 可选
Output Drop Group Set-Queue Push-Tag Pop-Tag Set-Field Change-TTL
将报文转发到特性的OpenFlow端口 当满足特定条件时报文被丢弃 将报文转由组表处理,动作由组表类型定义 为报文指定队列ID,用于实施QOS 适用于对VLAN头、MPLS头、PBB头进行操 作 识别匹配字段类型并修改字段的值 修改IPv4、IPv6、MPLS中的TTL
Group Identier Group Type Counters Action Buckets
9
Meter表
• Meter表项用于关联流表项,对匹配流表项的报文实施QOS策略
Meter Identifier Meter Bands Counters
Bands Type
Rate
Counters Type Specific arguments
• 异步消息
– 由OpenFlow交换机发起,用来通知交换机上发生的某些异步事件。消息是单向的,不 需要控制器应答。主要用于交换机向控制器通知收到报文、状态变化、出现错误等事件 信息
– 包括Packet-in、Flow-removed、Port-status、Error四种子消息
• Controller-to-switch
《图解OpenFlow》第一章:OpenFlow概要
《图解OpenFlow》第⼀章:OpenFlow概要1.1 OpenFlow的历史ONF:Open Networking Foundation(ONF,开放⽹络基⾦会),继承OpenFlow交换机论坛活动的形式,制定OpenFlow规范。
OpenFlow1.2之后的规范由ONF制定。
1.2 有效运⽤现有硬件,实现⾼效设计OpenFlow的初期设计思想是:⽆需设计新的硬件,⽀队现有硬件更新其软件。
因此,OpenFlow是以⽹络设备中内置了TCAM(Ternary Content-Addressable Memory)存储器为前提来实现的。
TCAM是对每个位(bit)实施0、1和don’t care三种匹配的三态电⼦器件,搭载该存储器的⽬的是在⽹络中通过硬件⾼速处理⼦⽹掩码和访问控制列表(ACL)。
1.3 所谓OpenFlow,具体是指什么传统⼆层交换机采⽤以太⽹地址和VLAN标签进⾏交换处理,⽽OpenFlow作为构建⽹络的标准规范,将各数据包(或帧)持有的以太⽹地址、VLAN标签、IP地址、TCP/UDP端⼝号等特征作为“流”来处理,在此基础上进⾏交换,并可以灵活设置路由的路径。
在构建OpenFlow⽹络时,原则上需要将控制⾯和数据⾯作为不同的⽹络,这并⾮必须要构建另外的物理⽹络。
还可以采⽤覆盖(Overlay)⽅式、使⽤VLAN等对同⼀物理⽹络进⾏逻辑分割、或者利⽤能同时⽤于数据⾯和控制⾯的“In-band控制通道”技术。
分别构建物理⽹络的优势是便于区分发⽣故障的部分。
数据⾯的构建⽅法有3种,即直接连接OpenFlow交换机的“Hop-by-Hop⽅式”、通过覆盖⽹络连接OpenFlow交换机的“覆盖⽅式”、组合以上两种⽅案的“混合⽅式”。
Hop-by-Hop⽅式就是OpenFlow交换机直接物理直连,覆盖⽅式则采⽤IP通道等技术构建⽤于数据⾯的覆盖⽹络。
覆盖⽅式具有同时使⽤现有⽹络和OpenFlow⽹络的优点,但处理性能不如Hop-by-Hop,存在MTU变⼩的缺点。
OpenFlow协议(OVS)
OpenFlow协议(OVS)
⽩⽪书(版本):
功能(OpenFlow半年升级⼀次)
FlowTable流表:由很多个流表项组成,每个流表项就是⼀个转发规则。
进⼊的通过查询流表来获得转发的⽬的端⼝。
流表项由头域、计数器和操作组成;其中头域是个⼗元组,是流表项的标识;计数器⽤来计算流表项的统计数据;操作标明了与该流表项匹配的应该执⾏的操作。
Secure Channel:安全通道是连接OpenFlow到控制器的接⼝。
控制器通过这个接⼝控制和管理,同时控制器接收来⾃交换机的事件并向交换机发送。
和控制器通过安全通道进⾏通信,⽽且所有的信息必须按照OpenFlow协议规定的格式来执⾏。
OpenFlow协议:⽤来描述控制器和交换机之间交互所⽤信息的标准,以及控制器和交换机的接⼝标准。
协议的核⼼部分是⽤于OpenFlow协议信息结构的集合。
流表项1.0版本(查看流表项:dpclt dump-flows)
Action:
流表项1.3版本
对Action的集合操作(增加⼀部分对Action的逻辑操作指令)
基本上对应1.0版本的Action内容
按顺序执⾏:
注:TTL是 Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最⼤⽹段数量。
TTL是IPv4包头的⼀个8 bit字段。
总结:
TimeOuts和Cookies
流表的匹配(1.1版本)
1.3版本
如何⽣成流表的呢?
连接的流程(通过抓包画出来的图⽚)
可以⽤WireShark来抓包分析
三类包信息
还有hello包(同步信息)等等
⽹络协议的交互。
Openvswitch研发白皮书v1.4
技术文件技术文件名称:OVS安装部署维护使用说明书技术文件编号:版本:V1.4共XX页(包括封面)拟制审核批准修改记录目录(包括封面) (1)1引言 (3)1.1编写目的 (3)1.2术语、定义 (3)1.3缩略语 (3)1.4参考资料 (3)1.4.1きりんさん日記: / (3)1.4.2Openvswitch-1.4.1中README.RHEL (3)1.4.3《Network Warrior》中文版 (3)2安装 (3)2.1安装概述 (3)2.2环境配置 (3)2.3部署流程 (4)2.3.1 CentOS 6.2编译环境的安装及部署 (4)2.3.2 CentOS6.2 下Openvswitch编译安装及部署 (4)2.3.3 Ubuntu12.04 下Openvswitch编译安装及部署 (7)2.3.4 NoX 的编译与安装部署 (8)3常用虚机操作 (9)3.1创建和启动虚拟机 (9)3.1.1 创建虚拟机 (9)3.1.2 启动虚拟机 (9)3.2VLAN配置 (9)3.2.1 Host VLAN配置(以vlan 号61为例) (9)3.2.2 虚机VLAN配置 (10)3.2.3 虚机VLAN测试 (11)3.3GRE配置与测试 (13)3.3.1 Host 上的GRE配置 (13)3.3.2 GRE隧道的测试 (14)3.4GRE+VLAN配置与测试 (14)4疑难问题 (15)1引言1.1编写目的本文档编写目的是详细描述产品OVS安装部署方法,预期的读者和阅读建议预期的读者和阅读建议参见表1.1。
表1.11.2术语、定义本文使用的专用术语、定义见表1.2。
表1.2 术语1.3缩略语本文使用的专用缩略语见表1.3,缩略语已按其第1个字母顺序排列。
1.4参考资料1.4.1きりんさん日記: /1.4.2Openvswitch-1.4.1中README.RHEL1.4.3《Network Warrior》中文版2安装2.1安装概述本安装教程主要涉及在CentOS6.2环境下对Openvswitch1.4.1进行编译以及安装,并用Openvswitch(简称OVS)接管Linux系统的网络服务,同时配置VLAN,并对虚拟机进行VLAN划分。
全球 SDN 测试认证中心OpenFlow 一致性认证指南
5
Global SDN Certified Testing Center
全球 SDN 测试认证中心
2.3 OpenFlow 一致性测试认证流程
OpenFlow 一致性测试认证流程如图 2.3.1 所示:
认证前准备
认证流程
结果输出及查询
开始
开始
OpenFlow一致性测试报告 OpenFlow一致性认证证书 OpenFlow一致性Logo标识
3.2 全球 SDN 测试认证中心简介
全球 SDN 测试认证中心()是第三方中立的 SDN/NFV 测试认证机构,致力于 SDN/NFV 技 术研发、测试认证和部署推广。全球 SDN 测试认证中心与 ONF 等 SDN/NFV 国际标准组织合作,承担其测试 规范制订、认证体系建设以及测试工具研发等工作,同时面向全球提供权威中立的测试与认证服务,推动技术与 产品的完善,保障 SDN/NFV 商业部署。 作为第三方中立的测试机构,全球 SDN 测试认证中心提供以下技术服务:
ONF Open Flow 一致性认证 SDN Control/Switch/APP 性能、可扩展性、安全测试 SDN/NFV 解决方案和第三方测试报告 SDN/NFV 大型国际测试活动 SDN/NFV 测试方案和技术咨询
7
GlobaLeabharlann SDN Certified Testing Center
OpenFlow 标准定义了控制层面与转发层面之间的交互协议,及一组转发操作。OpenFlow 协议运行在安全传 输层协议(TLS)或无保护 TCP 连接之上。应用基于 OpenFlow 的 SDN 技术,在应对网络高带宽、业务需求不 断变化的同时,更将显著降低运营和管理的复杂性。 开放网络基金会(ONF)致力于加速发展 SDN(软件定义网络)技术。2013 年,ONF 发布 OpenFlow 协议一 致性认证。 ONF OpenFlow 一致性认证是目前 SDN 领域检测设备是否符合 OpenFlow 协议标准的顶级认证,全球 SDN 测试认证中心作为 ONF 授权的国际第三方认证机构将严格遵循 OpenFlow 协议标准,面向全球网络设备商提 供权威的 OpenFlow 一致性认证。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
OpenFlow技术白皮书-V1.0神州数码网络有限公司目录1.概述 (1)2.缩写和术语 (2)3.技术介绍 (2)3.1O PEN F LOW交换机架构 (2)3.2O PEN F LOW连接维护 (3)3.3O PEN F LOW控制VLAN (3)3.4规则处理 (3)3.4.1规则匹配字段 (3)3.4.2规则动作 (4)3.4.3规则维护 (4)3.4.4规则老化 (4)3.5报文转发 (4)3.6二层GRE隧道(L2OVERGRE) (4)3.7Q O S (5)3.8交换机信息收集 (5)3.8.1端口信息 (5)3.8.2统计信息 (5)4.主要特性 (5)5.技术特色与优势 (5)6.典型应用指南 (6)6.1OPENFLOW交换机基本配置举例 (6)6.1.1组网需求 (6)6.1.2配置思路 (6)6.1.3配置步骤 .............................................................................................................. 错误!未定义书签。
6.2OPENFLOW IP V4L2OVERGRE隧道配置举例 (7)6.2.1组网需求 (7)6.2.2配置思路 (8)6.2.3配置步骤 .............................................................................................................. 错误!未定义书签。
1.概述OpenFlow是由斯坦福大学的Nick McKeown教授在2008年4月ACM Communications Review上发表的一篇论文OpenFlow: enabling innovation in campus networks首先详细论述了OpenFlow的原理。
由该论文课题可知OpenFlow提出的最初出发点是用于校园内网络研究人员实验其创新网络架构、协议,考虑到实际的网络创新思想需要在实际网络上才能更好地验证,而研究人员又无法修改在网的网络设备,故而提出了OpenFlow的控制转发分离架构,将控制逻辑从网络设备盒子中引出来,研究者可以对其进行任意的编程从而实现新型的网络协议、拓扑架构而无需改动网络设备本身。
该想法首先在美国的GENI研究项目中得到应用,实现了一个从主机到网络的端到端创新实验平台。
OpenFlow的架构见下图:图1 OpenFlow概念架构OpenFlow的思路很简单,网络设备(OpenFlow交换机)维护一个FlowTable并且只按照FlowTable 进行转发,Flowtable本身的生成、维护、下发完全由外置的Controller来实现,注意这里的FlowTable并非是指IP五元组,事实上OpenFlow 1.0定义了包括端口号、VLAN、L2/L3/L4信息的12个关键字,但是每个字段都是可以通配的,网络的运营商可以决定使用何种粒度的流,比如运营商只需要根据目的IP进行路由,那么流表中就可以只有目的IP字段是有效的,其它全为通配。
这种控制和转发分离的架构对于L2交换设备而言,意味着MAC地址的学习由Controller来实现,V-LAN和基本的L3路由配置也由Controller下发给交换机。
对于L3设备,各类IGP/EGP路由运行在Controller之上,Controller根据需要下发给相应的路由器。
流表的下发可以是主动的,也可以是被动的,主动模式下,Controller将自己收集的流表信息主动下发给网络设备,随后网络设备可以直接根据流表进行转发;被动模式是指网络设备收到一个报文没有匹配的FlowTable记录时,将该报文转发给Controller,由后者进行决策该如何转发,并下发相应的流表。
被动模式的好处是网络设备无需维护全部的流表,只有当实际的流量产生时才向Controller获取流表记录并存储,当老化定时器超时后可以删除相应的流表,故可以大大节省TCAM空间。
2.缩写和术语GRE (Generic Routing Encapsulation):通用路由封装L2overgre(layer 2 Generic Routing Encapsulation):二层报文路由封装OpenFlow控制端:OpenFlow实现了数据层和控制层的分离,其中OpenFlow交换机进行数据层的转发,而Controller实现了控制层的功能。
Controller通过OpenFlow协议这个标准接口对OpenFlow交换机中的流表进行控制,从而实现对整个网络进行集中控制。
OpenFlow交换机:OpenFlow交换机是整个OpenFlow网络的核心部件,主要管理数据层的转发。
OpenFlow交换机接收到数据包后,首先在本地的流表上查找转发目标端口,如果没有匹配,则把数据包转发给Controller,由控制层决定转发端口。
OpenFlow协议:OpenFlow协议用来描述控制器和交换机之间交互所用信息的标准,以及控制器和交换机的接口标准。
Diffserve(Differentiated Service):差分服务。
3.技术介绍3.1OpenFlow交换机架构OpenFlow交换机是整个OpenFlow网络的核心部件,主要管理数据层的转发。
OpenFlow交换机接收到数据包后,首先在本地的流表上查找转发目标端口,如果没有匹配,则把数据包转发给Controller,由控制层决定转发端口。
OpenFlow交换机由流表、安全通道和OpenFlow协议三部分组成。
图2 OpenFlow交换机的构成和分类流表由很多个流表项组成,每个流表项就是一个转发规则。
进入交换机的数据包通过查询流表来获得转发的目的端口。
流表项由头域、计数器和操作组成;其中头域是个十二元组,是流表项的标识;计数器用来计数流表项的统计数据;操作标明了与该流表项匹配的数据包应该执行的操作。
OpenFlow协议用来描述控制器和交换机之间交互所用信息的标准,以及控制器和交换机的接口标准。
协议的核心部分是用于OpenFlow协议信息结构的集合。
OpenFlow协议支持三种信息类型:Controller-to-Switch,Asynchronous和Symmetric,每一个类型都有多个子类型。
Controller-to-Switch信息由控制器发起并且直接用于检测交换机的状态。
Asynchronous信息由交换机发起并通常用于更新控制器的网络事件和改变交换机的状态。
Symmetric信息可以在没有请求的情况下由控制器或交换机发起。
按照对OpenFlow的支持程度,OpenFlow交换机可以分为两类:专用的OpenFlow交换机和支持OpenFlow的交换机。
专用的OpenFlow交换机是专门为支持OpenFlow而设计的。
它不支持现有的商用交换。
机上的正常处理流程,所有经过该交换机的数据都按照OpenFlow的模式进行转发。
专用的OpenFlow交换机中不再具有控制逻辑,因此专用的OpenFlow交换机是用来在端口间转发数据包的一个简单的路径部件。
支持OpenFlow的交换机是在商业交换机的基础上添加流表、安全通道和OpenFlow协议来获得了OpenFlow特性的交换机。
其既具有常用的商业交换机的转发模块,又具有OpenFlow的转发逻辑,因此支持OpenFlow的交换机可以采用两种不同的方式处理接收到的数据包。
3.2OpenFlow连接维护支持照协议规范定义的HELLO、ECHO_REQUEST、ECHO_REPLY消息, 维护交换机与OpenFlow控制端之间的连接。
3.3OpenFlow控制vlan(1)由于DCN目前实现支持OpenFlow的交换机,所以提供命令配置OpenFlow控制的VLAN,这样OpenFlow下发的规则等只会在OpenFlow控制的VLAN内生效,不会影响其他VLAN的流量。
(2)与OpenFlow控制器连接的交换机端口不包含在启用OpenFlow的VLAN中,由用户自行控制。
3.4规则处理受交换机硬件芯片的限制,交换机不能通过硬件实现OpenFlow协议定义的所有action,为此引入了多业务卡,通过软件实现硬件不能支持的这部分action。
当OpenFlow控制端下发一个规则的时候,交换机上的OpenFlow任务把规则下发到主控卡和多业务卡两个地方,其中多业务卡由于支持所有的action,所以上面下发了所有规则;主控卡由于只支持部分action,所以可以成功下发部分规则,其他规则下发到主控硬件上时都把动作改为转发到多业务卡,由多业务卡对匹配规则的报文进行处理。
3.4.1规则匹配字段(1)支持二层字段的匹配, 包括入端口、源MAC、目的MAC、以太网协议类型、VLAN_ID、VLAN PRIORITY六个基本字段和源MAC掩码、目的MAC掩码两个扩展字段,共8个字段。
(2)支持三层字段的匹配, 包括源IP地址、目的IP地址、源端口、目的端口、传输层协议号、TOS六个基本字段和源IP地址掩码、目的IP地址掩码两个扩展字段, 共8个字段。
3.4.2规则动作(1)支持向指定端口发包动作。
(2)支持向启用OpenFlow的VLAN所有端口发包, 协议中定义为ALL和FLOOD动作。
(3)支持向OpenFlow控制器发包,如果报文原来没有Vlan Tag,则发给控制器的包也不带Vlan Tag,协议中定义为CONTROLLER动作。
(4)支持向入端口发包,协议中定义为IN_PORT动作。
(5)支持丢弃报文的动作。
协议中定义为DROP动作。
(6)支持数据包入队列动作。
协议中定义为QUEUE动作。
(7)支持修改报文字段动作。
.3.4.3规则维护(1)OpenFlow规则的增加, 支持OFPFF_CHECK_OVERLAP标志,在加入规则时检查是否存在冲突。
如果增加操作不设置OFPFF_CHECK_OVERLAP标志,规则匹配后的行为由OpenFlow控制器负责。
(2)支持规则的删除,包括带_STRICT后缀及不带后缀两个类型.3.4.4规则老化(1)提供规则的定期老化, 用户可以通过设置hard-timeout时间, 让规则在hard-timeout时间到的时候老化删除.(2)提供规则的不活跃老化, 用户可以通过设置idle-timeout时间, 如果规则在idle-timeout时间内没有匹配报文, 则老化删除.3.5报文转发主控收到一个报文,首先进行规则匹配,如果匹配上规则,并且actions是主控支持的,则在主控进行处理,否则,主控上虽然有规则,但是action是送往多业务卡处理,则把报文转发到多业务卡上,报文到多业务卡上重新进行规则匹配,找到对应的处理action,进行处理。