openflow测试案例-pox

合集下载

Openflow新型网络交换模型

Openflow新型网络交换模型

Openflow新型网络交换模型——校园网络的创新1.互联网的现状互联网的应用迅速发展, 由于一开始的设计并没有考虑到后来互联网的规模会如此庞大、承载的应用会如此复杂、地位会变得如此重要,现代的互联网在过重的压力下已经凸显出太多亟待解决的问题:互联网太危险,恶意攻击、病毒、木马每年造成上千亿刀的损失;互联网太脆弱,无标度(Scale-free)的特性让整个网络可以在精心设计的少数攻击下即告崩溃;互联网太随意,p2p等应用的出现一度造成各大ISP网络堵塞,严重影响传统正常的访问;互联网太迟钝,现代臃肿的路由机制不能支持快速的更新,即便发现问题也无法快速反应。

运营商只得忙于扩容。

这一切的问题都隐隐的指向了互联网这个庞然大物最关键的软肋——可控性。

缺乏有效的控制措施让互联网这个为服务人类而设计的机器。

因此,业界希望能够有提高网络有效性的机制出现,目前学术界斯坦福大学、伯克利大学、麻省理工学院等牵头的研究组正在推动OpenFlow技术的发展。

2.openflow应运而生2006年到2014年分三个阶段主要致力于五个问题:是否继续采用分组交换、是否要改变端对端原理、是否要分开路由和包转发、拥塞控制跟资源管理、身份认证和路由问题。

FIND计划最主要的成果之一就是GENI——一套网络研究的基础平台OpenFlow的前世今生很自然的想法,如果我能控制整个Internet就好了,而网络中最关键的节点就是交换设备。

控制了交换设备就如同控制了城市交通系统中的红绿灯一样,所有的流量就可以乖乖听话,为我所用。

所以,自然而然的想法诞生,如果能有一套开放接口、支持控制的交换标准该多好?无论是交换机还是路由器,最核心的信息都存放在所谓的flow table里面,用来实现各种各样的功能,诸如转发、统计、过滤等。

flow table结构的设计很大程度上体现了各个厂家的独特风格。

OpenFlow就是试图提出这样一个通用的flow table设计,能够满足大家不同的需求,同时这个flow table支持远程的访问和控制,从而达到控制流量的目的。

openflow应用场景

openflow应用场景

1. 网络虚拟化– FlowVisor[11]网络虚拟化的本质是要能够抽象底层网络的物理拓扑,能够在逻辑上对网络资源进行分片或者整合,从而满足各种应用对于网络的不同需求。

为了达到网络分片的目的,FlowVisor实现了一种特殊的OpenFlow Controller,可以看作其他不同用户或应用的Controllers与网络设备之间的一层代理。

因此,不同用户或应用可以使用自己的Controllers来定义不同的网络拓扑,同时FlowVisor又可以保证这些Controllers之间能够互相隔离而互不影响。

下图展示了使用FlowVisor可以在同一个物理网络上定义出不同的逻辑拓扑。

FlowVisor不仅是一个典型的OpenFlow应用案例,同时还是一个很好的研究平台,目前已经有很多研究和应用都是基于FlowVisor做的。

2. 负载均衡– Aster*x[12]传统的负载均衡方案一般需要在服务器集群的入口处,通过一个gateway或者router来监测、统计服务器工作负载,并据此动态分配用户请求到负载相对较轻的服务器上。

既然网络中所有的网络设备都可以通过OpenFlow进行集中式的控制和管理,同时应用服务器的负载可以及时地反馈到OpenFlowController那里,那么OpenFlow就非常适合做负载均衡的工作。

Aster*x通过Host Manager和Net Manager来分别监测服务器和网络的工作负载,然后将这些信息反馈给FlowManager,这样Flow Manager就可以根据这些实时的负载信息,重新定义网络设备上的OpenFlow规则,从而将用户请求(即网络包)按照服务器的能力进行调整和分发。

3. 绿色节能的网络服务– ElasticTree[13]在数据中心和云计算环境中,如何降低运营成本是一个重要的研究课题。

能够根据工作负荷按需分配、动态规划资源,不仅可以提高资源的利用率,还可以达到节能环保的目的。

Openflow Switch 测试方法学

Openflow Switch 测试方法学

Contents1. Test case 1:测试Openflow 交换机的流表容量 (1)2. Test case 2:测试Openflow 交换机的流表学习速率 (5)3. Test case 3:测试Openflow 交换机的吞吐量,时延,抖动和丢包率 (12)4. Test case 4:测试Openflow 交换机的流表震荡 (14)1.Test case 1:测试Openflow交换机的流表容量∙测试目的:测试Openflow交换机最多能支持的流表数量∙测试拓扑:∙预配置(请注意,预配置部分是写本文需要,在OpenvSwitch上所做的配置。

读者在用OVS做实验时候可参考此配置,实际测试则不需要进行此部分)设置br1 的flow table 0 表项容量为100Step 1:在OVS 的ovsdb中,在Bridge 表中,把br1 条目的flow_tables列中关联br1 的flow_table 0, 并且在Flow_Table表中创建一行。

ovs-vsctl set Bridge br1 flow_tables:0=@table0 -- --id=@table0 create Flow_Table name=table0 查看Bridge表和Flow_Table表:[root@localhostmrzhao]# ovs-vsctl list bridge_uuid : c5601237-6574-465b-843f-ac52c61d5badController : [bca3710d-1280-44eb-8436-20bbe5c8161c]datapath_id : "0000000c2992086a"datapath_type : ""external_ids : {}fail_mode : []flood_vlans : []flow_tables : {0=bebe5b02-6216-4a8a-af5d-27f1dde2bf48}ipfix : []mirrors : []name : "br1"netflow : []other_config : {}ports : [358480c2-0709-476d-8446-3020584454d0, 4f1a7238-d611-4345-8b06-83a62d414952,5dd30471-07c4-4eac-90a1-0cf7d96e7b07, a4c3be4c-bda5-4686-af08-4e59d51040bd, eaf6eb05-0d95-4775-9abb-1b139469a9b9]protocols : []sflow : []status : {}stp_enable : false[root@localhostmrzhao]# ovs-vsctl list Flow_table_uuid : bebe5b02-6216-4a8a-af5d-27f1dde2bf48external_ids : {}flow_limit : []groups : []name : "table0"overflow_policy : []prefixes : []Step 2:设置br1 的table0 的流表大小是100条流表项ovs-vsctl set Flow_Table table0 flow_limit=100查看流表项设置:[root@localhostmrzhao]# ovs-vsctl list Flow_table_uuid : bebe5b02-6216-4a8a-af5d-27f1dde2bf48external_ids : {}flow_limit : 100groups : []name : "table0"overflow_policy : []prefixes : []测试步骤1.查看初始流表,显示只有一条流表(对应LLDP 报文转发控制器的流表):[root@localhostmrzhao]# ovs-ofctl dump-flows br1NXST_FLOW reply (xid=0x4):cookie=0x0, duration=3.937s, table=0, n_packets=0, n_bytes=0, idle_age=3, dl_type=0x88cc actions=CONTROLLER:50002.创建 50条流表(初始值, Initial flow number), 下发。

OPENFLOW协议通信流程

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网络技术原理介绍

OpenFlow网络技术原理介绍
代表OpenFlow控制器的控制信道 代表OpenFlow管道的起点 代表报文的进入端口 用于某些命令的特殊值, 出入端口不能设为any 代表交换机本地网络的堆栈和管理堆栈
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

SDN实验三:OpenFlow协议分析实践

SDN实验三:OpenFlow协议分析实践

SDN实验三:OpenFlow协议分析实践实验三:OpenFlow协议分析实践⼀、实验⽬的能够运⽤ wireshark 对 OpenFlow 协议数据交互过程进⾏抓包;能够借助包解析⼯具,分析与解释 OpenFlow协议的数据包交互过程与机制。

⼆、实验环境下载虚拟机软件Oracle VisualBox;在虚拟机中安装Ubuntu 20.04 Desktop amd64,并完整安装Mininet;三、实验要求(⼀)、基本要求搭建下图所⽰拓扑,完成相关 IP 配置,并实现主机与主机之间的 IP 通信。

⽤抓包软件获取控制器与交换机之间的通信数据包。

主机IP地址h1192.168.0.101/24h2192.168.0.102/24h3192.168.0.103/24h4192.168.0.104/241. 搭建拓扑配置IP地址2. 运⾏wireshark,选择any模式进⾏抓包,开启另⼀个终端,命令⾏运⾏031902241.py⽂件,运⾏pingall3. 查看抓包结果,分析OpenFlow协议中交换机与控制器的消息交互过程(截图以其中⼀个交换机为例)OFPT_HELLO 源端⼝6633 -> ⽬的端⼝51212,从控制器到交换机OFPT_HELLO 源端⼝51212-> ⽬的端⼝6633,从交换机到控制器,此处协议为openflow1.5控制器与交换机建⽴连接,并使⽤OpenFlow 1.0OFPT_FEATURES_REQUEST 源端⼝6633 -> ⽬的端⼝51212,从控制器到交换机控制器请求交换器的特征信息OFPT_SET_CONFIG 源端⼝6633 -> ⽬的端⼝51212,从控制器到交换机控制器要求交换机按照所给出的信息进⾏配置OFPT_PORT_STATUS 源端⼝51212-> ⽬的端⼝6633,从交换机到控制器当交换机端⼝发⽣变化时,交换机告知控制器相应的端⼝状态OFPT_FEATURES_REPLY 源端⼝51212-> ⽬的端⼝6633,从交换机到控制器交换机告知控制器它的特征信息OFPT_PACKET_IN 源端⼝51212-> ⽬的端⼝6633,从交换机到控制器交换机告知控制器有数据包进来,请求控制器指⽰OFPT_PACKET_OUT 源端⼝6633 -> ⽬的端⼝51212,从控制器到交换机控制器要求交换机按照所给出的action进⾏处理OFPT_FLOW_MOD 源端⼝6633 -> ⽬的端⼝51212,从控制器到交换机控制器对交换机进⾏流表的添加、删除、变更等操作4. 交互图5. 交换机与控制器建⽴通信时是使⽤TCP协议还是UDP协议?如图所⽰为TCP协议(⼆)、进阶要求将抓包结果对照OpenFlow源码,了解OpenFlow主要消息类型对应的数据结构定义。

基于OpenFlow的虚拟机流量检测系统的设计与实现

基于OpenFlow的虚拟机流量检测系统的设计与实现
文章 编号 : 1 0 0 1 . 9 0 8 1 ( 2 0 1 4 ) 0 4 . 1 0 3 4 — 0 4
C ODE N J YI I D U
h t t p : / / w w w . j o c a . c n
d o i : 1 0 . 1 1 7 7 2 / j . i s s n . 1 0 0 1 — 9 0 8 1 . 2 0 1 4 . 4. 0 1 0 3 4
v i e w o f t h e p r o b l e m t h a t t h e t r a f i c c a n n o t b e c a p t u r e d a n d d e t e c t e d i n i f r e w a l l o r o t h e r s e c u r i t y c o mp o n e n t s ,t h e O p e n F l o w t e c h n o l o g y wa s a n ly a z e d ,a n d a t r a f i f c r e d i r e c t i o n me t h o d b a s e d o n O p e n F l o w wa s p r e s e n t e d .T o c o n t r o l t r a f i f c f o r wa r d i n g p r o c e s s a n d r e d i r e c t i t t o s e c u r i t y c o mp o n e n t s ,t h e me t h o d p r o v i d e d n e t wo r k c o n n e c t i o n f o r v i t r u a l ma c h i n e s wi t h O p e n F l o w c o n t r o l l e r a n d v i r t u a l s wi t c h e s i n s t e a d o f p h y s i c a l s wi t c h e s ,a n d b u i l t a t r a f f i c d e t e c t i o n s y s t e m c o mp o s e d o f f o u r mo d u l e s i n c l u d i n g v i tu r a l s wi t c h ,c o n t r o l u n i t ,i n t r u s i o n d e t e c t i o n a n d s y s t e m c o n f i g u r a t i o n ma n a g e me n t .T h e e x p e r i me n t a l r e s u l t s s h o w t h a t t h e p r o p o s e d s c h e me c a n r e a l i z e t r a f f i c r e d i r e c t i o n a n d t h e s u b s e q u e n t d e t e c t i o n p r o c e s s i n g ,a n d t h e s y s t e m c a n p r o v i d e s wi t c h — l e v e l a n d h o s t — l e v e l c o n t r o l g r a n u l a r i t y .I t a l s o s o l v e s t r ff a i c d e t e c t i o n p r o b l e m u n d e r c l o u d c o mp u t i n g e n v i r o n me n t i n t r a d i t i o n a l s c e n e b y t r a f ic f r e d i r e c t i o n ,a n d p r o v i d e s g r e a t e x p a n s i o n o f t h e t r ff a i c p r o c e s s i n g b a s e d o n Op e n F l o w. Ke y wo r d s :Op e n F l o w;v i r t u l a ma c h i n e ;t r ff a i c r e d i r e c t i o n ;t r a f i f c d e t e c t i o n ;c l o u d c o mp u t i n g

基于OpenFlow的虚拟机流量检测系统的设计与实现_邵国林

基于OpenFlow的虚拟机流量检测系统的设计与实现_邵国林
通过实验结果可以看出系统能够将原来无法获取的虚拟机流量重定向到入侵检测模块进行处理入侵检测模块也能够对这类流量进行检测与分析这样就可以在入侵检测模块使用更多发展成熟的传统安全防护手段并运用于云计算第层密文的安全证明由第层密文和第层密文形式可知对于任意敌手indcpa安全性则存在一个cryptologylncs5677berlin
摘 要: 云平台下的虚拟机在物理机内部交互流量,而不通过防火墙等安全组件。针对这类流量无法在网络边 界被获取并检测的问题,分析了 OpenFlow 技术的原理,提出了一种基于 OpenFlow 技术将虚拟机流量重定向到入侵检 测系统进行检测的方案。方案使用 OpenFlow 虚拟交换机和控制器替代传统交换机,然后基于 OpenFlow 技术控制流 量转发过程,将其导向外部的安全组件进行处理,并构建了由虚拟交换机、控制单元、入侵检测和系统配置管理 4 个模 块组成的流量检测系统。实验结果表明,系统能够在满足虚拟机网络正常使用的前提下,将待监管流量导向入侵检 测系统进行处理,而且能够同时提供交换机级及虚拟机级两种粒度的流量重定向控制。通过对虚拟机引流的方式实 现在传统场景中解决云计算环境下流量检测问题,同时能够基于 OpenFlow 轻松实现流量处理的扩展操作。
由于传统的安全防护手段已经发展得较为成熟,为了在 云计算场景中使用传统的安全防护措施,本文提出了一种通 过 OpenFlow 技术[6]进行流量重定向的方法,并据此构建了多 模块的分布式流量检测系统。在系统中,OpenFlow 虚拟交换
收稿日期: 2013-09-02; 修回日期: 2013-11-09。 基金项目: 国家自然科学基金资助项目( 61272447) ; 国家 2012 年移动重大 03 专项( 12H1510) 。 作者简介: 邵国林( 1991 - ) ,男,江西鄱阳人,硕士研究生,CCF 会员,主要研究方向: 信息安全、计算机络; 陈兴蜀( 1968 - ) ,女,四川成都 人,教授,博士生导师,博士,主要研究方向: 云计算、信息安全、计算机网络; 尹学渊( 1988 - ) ,男,云南巧家人,博士研究生,主要研究方向: 信 息安全、计算机网络; 张峰伟( 1989 - ) ,男,四川内江人,硕士研究生,主要研究方向: 信息安全、计算机网络。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

测试环境----hejinlong502@●linux or windows●Pthon2.7+使用说明:◆切换到目录,路径为pox所在的路径,windows如下Linux路径为◆在此路径下运行:./pox.py openflow.of_01 --address=6.6.6.6 py监控6.6.6.6,默认端口为6633(未添加在命令行中),控制端进入交互控制模式如图◆交换机在openflow mode模式连接poxSwitch(config)#openflow modeSwitch(config-openflow)#openflow tcp 6.6.6.6 6633POX此时显示switch连接上线至此,switch连接pox完成。

pox上可以显示switch的key通过此key值就可以向switch发送msg---下发rule注:POX有两种版本,一种是经典的pox,另一种是pox-betta(有所改进)。

测试拓扑HOST1连接OF SWITCH 的port 1,HOST2连接OF SWITCH 的port 2测试案例1匹配源mac,ip,action为端口,两个host可以互相ping通Pox端下发两条rule,如下root@long-Aspire-4733Z:/home/long/usr/pox# ./pox.py openflow.of_01 --address=6.6.6.6 py POX 0.1.0 (betta) / Copyright 2011-2013 James McCauley, et al.INFO:core:POX 0.1.0 (betta) is up.This program comes with ABSOLUTELY NO WARRANTY. This program is free software,and you are welcome to redistribute it under certain conditions.Type 'help(pox.license)' for details.Ready.POX>POX> from pox.lib.addresses import IPAddrPOX> from pox.lib.addresses import EthAddrPOX> import pox.openflow.libopenflow_01 as ofPOX> msg1=of.ofp_flow_mod()POX> msg1.priority=5POX> msg1.match.dl_src=EthAddr("00:00:00:00:00:02")POX> msg1.match.dl_type=0x800POX> msg1.match.nw_dst="10.1.1.1/32"POX> msg1.actions.append(of.ofp_action_output(port=1)) POX> core.openflow.connections[131********L].send(msg1) POX>POX>POX> msg2=of.ofp_flow_mod()POX> msg2.priority=5POX> msg2.match.dl_src=EthAddr("00:00:00:00:00:01") POX> msg2.match.dl_type=0x800POX> msg2.match.nw_dst="10.1.1.2/32"POX> msg2.actions.append(of.ofp_action_output(port=2)) POX> core.openflow.connections[131********L].send(msg2)OF SWITCH的rules:Switch(config)#sho openflow acl all*********************************wildcard:3154155priority:5in_port:0source mac:00-00-00-00-00-02dst mac:00-00-00-00-00-00eth type:0x800vlan id:0vlan cos:0source ip:0.0.0.0source ip mask:0.0.0.0dst ip:10.1.1.1dst ip mask:255.255.255.255ip protocol:0x00ip tos:0tcp/udp src port:0tcp/udp dst port:0output port:1*********************************wildcard:3154155priority:5in_port:0source mac:00-00-00-00-00-01dst mac:00-00-00-00-00-00eth type:0x800vlan id:0vlan cos:0source ip:0.0.0.0source ip mask:0.0.0.0dst ip:10.1.1.2dst ip mask:255.255.255.255ip protocol:0x00ip tos:0tcp/udp src port:0tcp/udp dst port:0output port:2测试案例2OpenFlow Switch TutorialThese are examinations of some different ways to write "switch" type applications in OpenFlow with POX.OpenFlow Switch Tutorial (of_sw_tutorial.py) - this is a simple OpenFlow module withvarious switch implementations. The following implementations are present:∙Dumb Hub - in this implementation, all packets are sent to the controller and then broadcast to all ports. No flows are installed.∙Pair Hub - Flows are installed for source and destination MAC address pairs that instruct packets to be broadcast.∙Lazy Hub - A single flow is installed to broadcast packet to all ports for any packet.∙Bad Switch - Here flows are installed only based on destination MAC addresses. Find out what the problem is!∙Pair Switch - Simple to a pair hub in that it installs flows based on source and destination MAC addresses but it forwards packets to the appropriate port instead of doing a broadcast.∙Ideal Pair Switch - Improvement of the above switch where both to source and to destination MAC address flows are installed. Why is this an improvement from the above switch?∙OpenFlow Switch Interactive Tutorial (of_sw_tutorial_oo.py) - this is the same module above that is Interactive. If run with a pox py command line. Users can dynamically load and unload various switch implementations. Note: To use the interactive features, you will also need to include the "py" component on your commandline.Sample Interactive Switch Sessionroot@long-Aspire-4733Z:/home/long/usr/pox# ./pox.py py --completion of_sw_tutorial_oo POX 0.1.0 (betta) / Copyright 2011-2013 James McCauley, et al.INFO:core:POX 0.1.0 (betta) is up.This program comes with ABSOLUTELY NO WARRANTY. This program is free software, and you are welcome to redistribute it under certain conditions.Type 'help(pox.license)' for details.Ready.POX>POX> INFO:openflow.of_01:[00-03-0f-10-10-12 1] connectedPOX> MySwitch.attach_packetin_listener('SW_PAIRSWITCH')POX>◆POX所有要运行的外部组建均需拷贝到pox/ext/目录下,并且如示例运行py组建。

◆Packetin监听者SW_PAIRSWITCH收集packetin的信息,如果有两个host需要互相通信,将会在OF SWITCH上建立相应的rule。

相关文档
最新文档