本文参照SDN原理视频而成:SDN原理

Controller 概念

从上面这个图片,我们能够知道,Controller 是一个非常重要的东西:承上启下,左右拓展。

从整个SDN的架构来看,控制器 处在整个架构最核心的部分:控制层。上面承接应用,下面承接网络硬件设备。

在SDN的商业战争中,谁掌握了控制器,谁制定了控制器的标准,谁在产业链就最有发言权。华为,思科等传统大厂商仍然在主导核心的控制器。

比如你开发了一个控制器,也就是提供了一个平台,所有的开发者都基于你这个控制器来进行开发,你就处在一个主导的地位。Windows 的开发平台在之前没有取得成功,其中的一个原因就是开发者没有过多的参与进来。

所以,抓住控制器,也就抓住了SDN的核心:向下需要控制一定数量的网络设备,易于管理和配置;向上的应用和客户需要有一定的开放程度,能够执行应用的请求;东西接口的话,这使得Controller 能够采用一种分布式的策略部署,通过跑选举协议,做匹配的切换。

Controller 功能

南向功能支持 OpenFlow

通过OpenFlow等南向接口技术,对网络设备进行监控:比如拓扑监视,流表下发,策略定制等等。

需要注意的是,SDN中并不是所有的交换机都需要采用OpenFlow。这里引一段文字,来源于《SDN:网络创新的利器》文:张卫峰

SDN != OpenFlow

尽管SDN是基于OpenFlow提炼并发展起来的, 但两者并不等同。SDN是一个网络架构级的概念,强调软件定义网络,强调软硬件的分离。而 OpenFlow 则是一项具体的技术,它强调转发面的 标准化。

SDN的转发面和南向接口可以通过OpenFlow来实 现,也可以通过别的技术,比如转发面可以不遵循OpenFlow标准,而是通过传统表项的组合来实现。只是OpenFlow是目前看起来最可能标准化的技术,也是跟SDN关系最深的技术。现在一个新的组织 OpenDayLight 正在制定从上到下全套的新标准,也许到时候不会使用OpenFlow也说不定。

北向功能支持 仍然处在讨论阶段

目前SDN除了南向接口的OpenFlow有了标准化的文案和规范之外,北向接口技术仍然没有一个标准。

但是,就算是这样,Controller也需要对北向接口技术提供支持:比如 REST API(主),SOAP,OSGI等等。这样才能被上层应用所调用。

东西向功能支持

分布式的控制器架构 仍然是业界的共识,在后续的SDN版本中,应该会慢慢加大支持力度。

东西向技术指的是 多控制器之间 如何进行选举(类比OSPF根据RID选举DR/BDR),协同(交互),主控制器和备用控制器的切换等等。

Google B4 就是采用 分布式的控制器架构 的实例。

如果我们只使用一个控制器,那么如果黑客破解了这个控制器,就控制了整个网络;因此为了安全性,需要多个控制器,并利用东西向接口技术来交互。

控制器列表:开源SDN控制器和商用SDN控制器一览

2016/9/4

SDN原理 控制层 Controller控制器的更多相关文章

  1. .NET/ASP.NET MVC Controller 控制器(深入解析控制器运行原理)

    阅读目录: 1.开篇介绍 2.ASP.NETMVC Controller 控制器的入口(Controller的执行流程) 3.ASP.NETMVC Controller 控制器的入口(Controll ...

  2. springMvc基本注解:@Component、@Repository(持久层) 、@Service(业务逻辑) 、@Controller(控制层)

    1.@Controller(控制层) :就是action层 2.@Service(业务逻辑) :业务逻辑层,负责处理各种控制层的操作 3.@Repository(持久层) :称为“持久化”层,负责对数 ...

  3. 二、ASP.NET MVC Controller 控制器(一:深入解析控制器运行原理)

    阅读目录: 1.开篇介绍 2.ASP.NETMVC Controller 控制器的入口(Controller的执行流程) 3.ASP.NETMVC Controller 控制器的入口(Controll ...

  4. Springboot 使用 JSR 303 对 Controller 控制层校验及 Service 服务层 AOP 校验,使用消息资源文件对消息国际化

    导包和配置 导入 JSR 303 的包.hibernate valid 的包 <dependency> <groupId>org.hibernate.validator< ...

  5. NET/ASP.NET MVC Controller 控制器(一:深入解析控制器运行原理)

    阅读目录: 1.开篇介绍 2.ASP.NETMVC Controller 控制器的入口(Controller的执行流程) 3.ASP.NETMVC Controller 控制器的入口(Controll ...

  6. 接收的参数为日期类型、controller控制层进行数据保存、进行重定向跳转

    目录 1.接收的参数为日期类型 2.controller控制层进行数据保存 3.controller层如何进行重定向跳转(因为默认是请求转发) 4.静态资源的映射 1.接收的参数为日期类型 WEB-I ...

  7. SDN原理 OpenFlow协议 -1

    本文基于SDN原理视频而成:SDN原理 OpenFlow OpenFlow 协议 和 传统的路由选择协议 有很多相似的地方,同时在某些地方也具有一定的颠覆性. 路由表,由IP地址和子网掩码组成.MAC ...

  8. SDN原理 OpenFlow协议 -3

    问题4:流表匹配 OF1.1版本 这是OF1.1版本的操作,引入了多流表,1.0版本并没有多流表. 多流表的匹配称为 流水线处理:交换机从流表0开始查找,按照流表序号从小到大匹配. 每个包按照优先级去 ...

  9. SDN原理 OpenFlow协议 -2

    本文由SDN原理视频而成:SDN原理 流表 FlowTable --- OpenFlow的核心 问题3 流表项 Flow Entry 单流表(OpenFlow 1.0版本) -> 多流表(Ope ...

随机推荐

  1. Ubuntu16.04安装Nessus和MSF

    一.Nessus篇: 1.参考文献:https://www.cnblogs.com/shamojituan/p/6511208.html 2.下载地址:https://downloads.nessus ...

  2. 三维凸包求内部一点到表面的最近距离(HDU4266)

    http://acm.hdu.edu.cn/showproblem.php?pid=4266 The Worm in the Apple Time Limit: 50000/20000 MS (Jav ...

  3. Eclipse git pull 报Nothing to fetch 异常原因

    eclipse git pull 报错 // 使用这个配置就可以正常pull了        [core]        symlinks = false         repositoryform ...

  4. CH1809匹配统计【KMP】

    1809 匹配统计 0x18「基本数据结构」练习 描述 阿轩在纸上写了两个字符串,分别记为A和B.利用在数据结构与算法课上学到的知识,他很容易地求出了“字符串A从任意位置开始的后缀子串”与“字符串B” ...

  5. C++ string append方法的常用用法

    append函数是向string的后面追加字符或字符串. 1).向string的后面加C-string string s = “hello “; const char *c = “out here “ ...

  6. zabbix debug and vulnerability https://www.zabbix.com/documentation/3.0/manual/concepts/sender

    https://www.zabbix.com/documentation/3.0/manual/concepts/sender zabbix--- zabbix_sender -vv -z 172.2 ...

  7. Rochambeau---poj2912||zoj2751(并查集类似于食物链)

    题目链接:http://poj.org/problem?id=2912  http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1751 ...

  8. Redundant Paths---poj3177(双连通分量)

    题目链接:http://poj.org/problem?id=3177 题意:有n个牧场,Bessie 要从一个牧场到另一个牧场,要求至少要有2条独立的路可以走.现已有m条路,求至少要新建多少条路,使 ...

  9. 10.Git远程仓库

    到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了.可是有用过集中式版本控制系统SVN的童鞋会站出来说,这些功能在SVN里早就有了,没看出Git ...

  10. 第六章并发编程,异步执行框架executor

    异步执行框架executor是一个接口,只有一个方法.接受一个Runnable做为参数,执行任务. 将任务的执行与提交解耦. 1:executor package java.util.concurre ...