欢迎来到天天文库
浏览记录
ID:45749127
大小:68.80 KB
页数:6页
时间:2019-11-17
《【个人总结系列-11】openflow协议的理解-学习及总结》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、Openflow协议的理解-学习及总结Openflow协议概述OpenFlow协议是斯坦福大学的NickMcKeown提出的,随着OpenFlow协议的提出,SDN(SoftwareDefinedNetwork)也逐渐得到人们以及网络设备运营商的关注。OpenFlow协议的主要思想就是将传统网络交换机数据包转发的过程分离开来,原来由交换机一步完成的转发动作现由2种设备协作完成,分别是支持openflow协议的交换机(假设为OVS)和控制器(以下称controller)oOVS里面维护了一个叫做流表(flowtable)的东西,用來指定转发的策略,流表是在controller的
2、控制下生成的,并且controller随时可以维护流表(删除、添加、修改流表项)。所以网络管理人员可以很容易口己定义网络的行为,这也是SDN的原因。在0penFlow网络中数据包的转发流程是这样的:OVS接收到数据以后,通过和流表项进行匹配决定这个包的走向(转发、丢弃还是传给controller等),所以流表就相当于控制的策略,定义网络的行为只要在controller端对流表进行操作即可。这就涉及到controller和OVS之间通信和交流的问题,而Controller和OVSZ间通信的消息格式、内容及种类就是OpenFlow协议的主要内容。OVS通过securechanne
3、l和controller进行通信,而J1通信内容是通过TLS加密的,从securechannel发出和接收到的信息是和交换机接收到的数据包(到达的数据包)是不一样的,他们不经过流表的处理,OVS和controller的关系如卜-图所示⑴:OpenFlowProtocol■OpenFlowSwitch图2-1-1OVS和控制器的关系所以OpenFlow网络屮最重要的就是流表(流表的结构和匹配的过程)和controller与OVSZ间的通信。下而主要介绍一下自己理解的这两块的内容。流表每个交换机包括许多流表和一个组表,流表从0开始进行编号。每个流表包括许多flowentry(流表
4、项),每个flowentry由一些匹配字段+计数器+指令集组成。数据包匹配时就是匹配流表屮的某一条flowentry(除非-•条都没匹配到,匹配的顺序按照优先级从高到底进行,直到匹配成功。一旦某一条flowentry匹配成功,则就不再往下匹配了,这张流表的匹配就到此结束。后而操作的内容就看匹配的那条flowentry的instructions了),而不是一个流表。当一个包到达时,进入0号流表,按优先级依次与flowentry进行匹配,直到匹配成功。如果匹配成功,则马上更新计数器,执行指令。指令的种类可能包括执行action.删除actionset中的action>向actio
5、nset中的写入和添加action>跳转到F—个流表中继续处理等。OVS屮不止一张流表,而是冇许多流表,每个流表都冇一个唯一编号,从0开始。同时每次对数据包的处理不是匹配流表,而是匹配流表小的某一项(flowentry),flowentry就是每次数据包匹配的单位,在一个流表中包括许多条这种flowentry,而且这些flowentry都是冇优先级的,数值越大表示优先级越高。一般一张流表屮只匹配一个flowentry,就是按照优先级最先被匹配的那个flowentry,而不是匹配一张流表的所冇匹配的flowentry。每个flowentry的结构如下所示,包括三个部分,分别为m
6、atchfields(匹配字段)、counters(计数器)、instructions(指令集)。MatchFieldsCountersInstructions图2-1-2flowentry的字段(1)匹配字段(matchfields)就是匹配的字段,每次数据包匹配的内容就是由matchfields指定的。matchfields中各字段的含义、大小、使用场景如下图所示:FieldBitsWhenapplicableNotesIngressPort32AllpacketsNumericalrepresentationofincomingport,startingati.Thi
7、sm却bexphysicalorswitch-definedvirtualpart.Met^xixta64Table1wdaboveEthernetsourceaddress48AllpacketsonenabledportsCanuseorbitrarybitmoskEthernetdestinationaddress48AllpacketsonenabledportsCxnusearbitrarybitmaskEthernettype16AllpacketsonenabledportsEtherne
此文档下载收益归作者所有