SDN学习

来源:互联网 发布:阿里云 centos 中文 编辑:程序博客网 时间:2024/05/17 11:57

简介

SDN(software defined network),软件定义网络。传统网络就像真人在踢足球,每个人自己思考下一步把球传到哪儿,然后自己用头或者脚传出去。SDN就像你在打实况足球,球员怎么传球都是集中由你来控制。这就叫控制面和转发面的分离,并且控制面集中起来。集中后的控制面叫做控制器,类似游戏手柄。控制器之上就是软件,来操作控制器具体怎么处理。就像你聪明的大脑来控制游戏手柄。open flow就是控制器与网络设备沟通时的语言,是SDN的一种具体实现。

意义

SDN解决了网络中设备对于网络没有全局的概念.做出的次优路径和环路的根本都是因为设备不知道整个网络,2,3层协议的设计大多数都还是rumour级别的.
2.解决了网络工程师对于设备黑盒的问题.对于设备,网络工程师能做的只是根据现有的命令解决路径等策略问题,就像黑盒测试.但是SDN如果出现,可能网络工程师可以用编程语言来更精细的操作,有编程语言中的更多种的消息传递机制(比如IOS里面的notification,delegate)而不只是现在单独的命令.
期待有一天配置网络的时候,不再是cisco的一套命令,juniper一套命令,各个厂家提供framework,网络工程师,在一个IDE下编程解决.
我们需要做的就是
#include <cisco.h>
#include <juniper.h>
用类似lua一样的胶水语言来做编程从而配置整个网络,让每个设备零配置。

传统路由器的设计

从路由器的设计上看,它由软件控制和硬件数据通道组成。软件控制包括管理(CLI,SNMP)以及路由协议(OSPF,ISIS,BGP)等。数据通道包括针对每个包的查询、交换和缓存。这方面有大量论文在研究,引出三个开放性的话题,即“提速2倍”,确定性的(而不是概率性的)交换机设计,以及让路由器简单。

事实上在路由器设计方面我们已经迷失了方向,因为有太多的复杂功能加入到了体系结构当中,比如OSPF,BGP,组播,区分服务,流量工程,NAT,防火墙,MPLS,冗余层等等。个人认为,我们在20世纪60年代定义的“哑的,最小的”数据通路已经臃肿不堪。

设计思想

1、在底层和开放编程环境之间要有一个清晰的分割。

2、设计一个简单的硬件底层,能够包括和简化当前的底层。

3、极少的使用事先形成的有关底层如何被变成的想法。

4、强隔离。







0 0