版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 2012.12.20Deep Intro to SDN/OpenflowOpenflow 代码分析Openflow环境搭建与测试uReference OpenFlow/SDN Introduction 2012ONSOpenFlow and SDN in the Financial IndustryPeter Krey.2012ONSFlow Visor Engineering TutorialRob Sherwood.2012ONSTrema tutorialNEC Trema Team2012ONSHow SDN will shape networking Nick McKeown.20
2、11ONSOpenflow Specification v1.1.0Openflow1.0.0reference版本源码 Why&what is SDN&Openflow? The network todayclose systems设备管理独立、协议分散Controller as network OSOpen API SDN(网络功能重构)open system What SDN looks like应用层应用层:虚拟网络覆盖、network slicing(网络分片)、 tenant-aware broadcast、application-aware
3、 path computation(路经计算)、集成其他软件包、政策、安全认证、流量工程控制平面控制平面层层:数据平面资源调度、共享库(如拓扑信息、主机元数据、状态抽象)数据平面层:数据平面层:数据包转发(按照流表项)、数据包操纵(按照流表项)、流量统计Openflow components网络虚拟化Trema is Openflow programming framework for Ruby and C FlowVisor就是位于硬件结构元件和软件之间的网络虚拟层 允许多个控制同时控制一台OpenFlow交换机,但是每个控制器仅仅可以控制经过这个OpenFlow交换机的某一个虚拟网络 通过
4、FlowVisor建立的试验平台可以在不影响商业流的转发速度的情况下,允许多个网络试验在不同的虚拟网络上同时进行 A network slice is a collection of sliced switches/routers. Slicing layer (虚拟切片) :实现网络切片隔离How SDN will shape networking(An industry change)使网络运营商和使用者对所运营所使用的网络有更大的权限(用户定制本地所需的网络功能、淘汰不需要的功能模块、创建虚拟网络实现隔离)加快网络创新(以软件更新的速度创新、标准随软件的更新情况而制定、促进技术交流、促进
5、高校技术创新)供应链多样化(很多软件供应商、基本的硬件层抽象后实现多样化的功能延伸)建立更健壮的机制(标准化的数据转发层抽象、对各种网络功能可实现单独测试)SDN development Openflow switches Open controllers Openflow Demonstration可以在网络系统中通过移动每个子模块来测试每个模块,并可以决定如何划分设计单元支持无线网络移动性研究的框架Elastic tree逻辑上分成三个功能模块优化、寻址、能量控制。能量控制模块来切换各端口、线卡和整个交换机的能耗状态。 FlowVisor Creates Virtual Networks
6、Openflow数据包转发代码分析 代码的大体结构涉及报文传输与生成的main函数udatapath.c 负责datapathcontroller.c 负责controllersecchan.c 负责安全通道,连接controller和udatapath,controller和switch的数据交互要经过secchandpctl.c 负责管理dpopenflow设备上建立的主连接和附属连接主连接是可靠连接,附属连接不一定是可靠连接 /Vconn-provider.h struct vconn_class const char *name;/用户定义的连接名字int (*open)(const
7、char *name, char *suffix, struct vconn *vconnp); /尝试与openflow设备建立连接,成功则返回0、并将连接指针存入 *vconnp;不成功则返回errno的错误类型,如果不能立即建立连接,则返回EAGAIN,转入后台建立连接 void (*close)(struct vconn *vconn);/关闭vconn并且释放存储空间 int (*connect)(struct vconn *vconn);/试图完成vconn上的连接,成功与否都返回相应的返回值 int (*recv)(struct vconn *vconn, struct ofpb
8、uf *msgp);/试图从vconn上接收openflow消息,成功则返回0并且将消息存至*msgp,回话发起方需要在通信后删除消息,利用ofpbuf_delete(),接收失败则返回errno消息并且*msgp中存入空指针Vconn_class (2/3)void (*wait)(struct vconn *vconn, enum vconn_wait_type type);/循环等待消息类型指出具体的actionVconn_class (3/3)int (*send)(struct vconn *vconn, struct ofpbuf *msg);/试图在vconn上将msg加入队列待
9、传输 Datapath代码分析openflow/udatapathdp_run:处理流超时,检查交换机控制器发出的数据包,然后调度数据包给不同的程序处理/datapath.cdp_wait:调用netdev_recv_wait(),在poll loop注册,以在net_dev()要准备接收数据包时时,调用poll_block()来唤醒当前状态,来接收数据包/datapath.c poll_block:在事件注册后离开阻塞状态,唤醒dp_wait() /poll_block.c数据层面转发 从netdev接收数据包存入buffer /lib/netdev.c 如果接收无误,则fwd_port_i
10、nput()被通告处理数据包 /udatapath/datapath.c 交换机查询流表,试图找到匹配 udatapath/datapath.c 通过查询活动的流表的链表来搜寻匹配 chain.c 返回run_flow_through_tables和use_through(switch-flow.c中)来更新最近的流使用时间,输出action Do_output(),最后一个输出端口记录成prev_port,确保除了最后一个action其他的action都用过buffer了。 /dp_act.c 如果需要继续转发,则需要dp_output_port ,如果输出端口不是特定的虚拟端口,则默认调用
11、output_packet(),函数检查如果端口是可用状态,则发出数据包,并将计数器加一,然后清空buffer /datapath.c 控制层面转发remote-_run()调用dp_run(),检查安全通道的连接调用fwd_control_input(), 标识消息的类型并且调用合适的句柄(可能在交换机上新建流表,并进行近一步的转发操作) Openflow 环境搭建与测试Openflow 1.0.0(Reference release)An openflow switch(userspace datapath-based switch,不需建立内核模块)1. Ofdatapath(udata
12、path/ofdatapath)在用户空间实现流表项配置2. Ofprotocol在参考交换机中实现安全通道(secure channel)的程序3. Dpctl 配置交换机的工具 这个发行版本附带的其他这个发行版本附带的其他软件软件1. Controller功能:可以连接任意数量的交换机,使其发挥普通二层交换机的作用2. Vlogconf功能:适配正在运行的of协议或者控制器的系统日志级别3. Ofp-pki功能:创建和管理Openflow交换机的公钥4. 一个利用tcpdump来分析openflow消息 的补丁5. 一个测试openflow功能的递归套件6. 一个分析openflow协议的
13、Wireshark解析器controller punix:/var/run/controller.sock &Ifconfig eth0 upcontroller -v ptcp./configureMakeMake installRmmod bridge ofdatapath punix:/var/run/dp0.sock -i eth1 -local-port=tap:tap0 &ifconfig tap0 ofprotocol unix:/var/run/dp0.sock tcp:CONNECTED测试交换机和控制器的连通性Ifconfig tap0 dpctl add-flow unix:/var/run/dp0 ,in_port=eth1,actions=output:eth3dpctl add-flow unix:/var/run/dp0 ,in_port=eth3, dl_dst=$SW1_ETH1_MAC,action=mod_dl_dst:$HOST2_MAC,output:eth1Ifconfig tap0
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年黎明职业大学单招职业倾向性考试题库及答案详解1套
- 2026年顺德职业技术学院单招职业倾向性测试题库及完整答案详解一套
- 2026年陕西省榆林地区单招职业适应性考试题库含答案详解(培优b卷)
- 2026年陇南师范高等专科学校单招职业技能考试题库附参考答案详解(预热题)
- 2026年黄河交通学院单招职业技能考试题库附答案详解(培优)
- 2026年阜阳幼儿师范高等专科学校单招职业倾向性考试题库附参考答案详解(能力提升)
- 2026年马鞍山师范高等专科学校单招职业技能测试题库含答案详解
- 2026年长沙电力职业技术学院单招职业适应性考试题库及完整答案详解1套
- 2025年西湖大学工学院金耀初实验室科研助理招聘备考题库及参考答案详解1套
- 2026年随州职业技术学院单招职业适应性考试题库含答案详解(考试直接用)
- 模具维护保养管理办法
- 水利项目审批管理办法
- 超声刀的使用与维护指南
- 三基培训 课件
- 三种方法评标计算(自带公式)
- 电气控制与PLC应用技术-西门子S7-200 SMART PLC第三版黄永红习题答案
- 第四章 物质的特性 单元测试-七年级科学上册同步备课系列(浙教版)
- JG/T 118-2018建筑隔震橡胶支座
- 水平定向钻进管线铺设工程技术规范
- 香港公司意向协议书
- 《西藏自治区地质灾害危险性评估报告编制及审查技术要求(试行)》
评论
0/150
提交评论