zoukankan      html  css  js  c++  java
  • 《深度解析SDN》学习小结

           SDN(软件定义网络),顾名思义,通过软件来控制或驱动整个网络。SDN的核心概念有两个,第一是转发面与控制面的分离;第二是开放的可编程接口。另外,SDN强调集中式控制,通过软件来控制整个网络,但这并不意味着只有一个Controller,在大型网络中,更多是使用分布式Controller的架构来管理,如Onix。

           SDN是一个部署网络的框架,并不是具体的某个技术,更不是OpenFlow。OpenFlow协议只是Switch和Controller用来通信的应用比较广泛的一个协议,还有其他一些协议。

           NV(网络虚拟化)不是SDN。网络虚拟化是指利用Tunnel技术将虚拟机连接起来实现一个运行在物理网络之上的虚拟网络。但NV的集中化控制要求非常适用于SDN技术。

           在基于OpenFlow的SDN架构里,OpenFlow Switch负责数据的转发,OpenFlow Controller负责控制网络,实现了转发面与控制面的分离。

           OpenFlow Switch主要由流表(包含多个流表项)和安全信道(与Controller通信),还有其他端口用作包转发。每条流表项相当于一条规则,匹配特定的流(一定时间内具有相同属性的报文集合),定义转发动作。OpenFlow1.1后支持多级流表,按优先级大小遍历流表集,匹配特定的流并做转发动作。另外,OpenFlow还定义了其转发动作。需要注意的是,由于流是动态变化的,大部分流表项都需要不断变化,这需要与Controller通信,让Controller下发流表项。目前Switch的流行容量还比较小。

           OpenFlow Controller通过OpenFlow协议与Switch进行通信。在分布式Controller的模型下,对于同一台Switch连接的所有Controller,Controller有以下三种角色,第一是Master,对Switch拥有完全的操作权限;第二是Slave,对Switch只有读取状态和被动收取信息的权限,但若Master死掉了,其中一台Salve就会被选举为Master(OpenFlow没有具体定义如何做,这也可以看出其不成熟)。第三是Equal,可以看作所有Controller都拥有Master的权限。

           总的来说,OpenFlow标准是一个灵活的简单的标准,没有任何状态,不认识任何协议和设备,它要做的只有一件事,Match——Action。但是它对芯片的要求很高,目前并没有专门的OpenFlow芯片。

           提到OpenFlow,就不得不提OF-Config。OpenFlow只定义了Match和Action,但没有去管理涉及到的相关资源。OF-Config对OpenFlow所需要的最基本的资源进行了配置和管理,是OPenFlow的一个补充。但无论OpenFlow还是OF-Config,目前都很不成熟,需要完善和拓展。

           最后说说基于OpenFlow的SDN现状。目前市面上出现的OpenFlow交换机大多是Hybrid交换机(既支持OpenFlow协议也支持传统功能)。一般做法是在原有交换机的基础上,将OpenFlow作为一个新功能加进去。还有的是纯OpenFlow交换机(只支持OpenFlow协议)。有些会在OpenFlow的基础上,在流匹配时引入缺省匹配,当所有流表项都不匹配时,匹配缺省匹配项,跳到传统功能上。

           另外,不同厂商的Switch和Controller不一定兼容,因为现在还没有一个被广泛认可的协议,以后也可能没有。有的是开放的编程接口,这样每个用户都可以定制自己的Controller,一定程度上降低厂商的封锁。

           总结,这周看的更多是全面地认识和了解SDN,并没有深入技术细节,这样的方式更适合本人的学习。

  • 相关阅读:
    2017-5-21 Asp.Net内置对象 和 DropDownList时间年月日的三级联动
    【2017-04--28】Winform中ListView控件
    【2017-04-27】布局及容器控件、打开多窗体、构造函数传值、打开唯一窗口
    【2017-04-25】winform公共控件、菜单和工具栏
    【2017-04-24】WinForm基础、登录窗口、窗口属性
    【2017-04-20】Sql字符串注入式攻击与防御,实体类,数据访问类
    【2017-04-18】Ado.Net C#连接数据库进行增、删、改、查
    【2017-04-17】类库、通用变量、is和as、委托
    【2017-04-16】抽象类、接口、构造函数、重载、静态成员和方法
    【面向对象】类、访问修饰符、封装、继承、多态
  • 原文地址:https://www.cnblogs.com/7hat/p/3583755.html
Copyright © 2011-2022 走看看