《深度解析SDN》 总结
这本书从SDN利益、战略、技术和实践方向全面剖析,内容简单易懂,一本比较推荐的书籍。
总结:
一、SDN的特征属性:
1、控制面与转发面分离
2、开发的课编程接口(南北向接口)
3、集中化的网络控制(Controller)
4、网络业务的自动化应用程序控制
其中前两点是SDN的核心属性,只要符合这两点,无论它具体用了什么样的实现技术,都可以宽泛的认为是SDN架构,因此VMware推出的NSX肯定算是SDN。
二、SDN不是什么
1、SDN不等于Openflow
2、SDN不等于网络虚拟化(NV)
3、SDN不等于网络功能虚拟化(NFV)
4、SDN也不是一个协议,它仅仅是一种网络架构的理念,它规划了网络的各个组成部分(软件和硬件,转发面和控制面)及相互之间的互动关系。
三、SDN架构
1、Data Plane: 它可以是虚拟机交换机(如OVS),也可以是硬件交换机(支持Openflow),所有的flowtable都存放在Date Plane,用户的数据报文在这里被Edit Action。
2、Data-controller plane interface(通常被称为南向接口):目前最有影响力的南向接口标准为Openflow。Controller通过南向接口向Data Plane发送指令来配置位于Data Plane内的flowtable。 Data Plane也通过南向接口主动上报一些事件给Controller。因此可以说南向接口就是 Controller和DataPlane之间相互通信的接口。
3、Controller:是SDN网络中的核心元素,是各大公司都想要抢占的制高点,因为它向上提供应用程序的编程接口,向下控制Date Plane。
4、Application-controller plane interface (通常被称为北向接口):只是Controller跟Application之间的接口,向上层提供网络抽象,使得网络具备软件编程的能力。
5、Application Plane: Application通过北向接口与Controller通信,主要包括LB,Security,LLDP等很多服务。
四、Openflow详解
SDN是一种网络架构的理念,是一个框架,他不规定任何具体的技术实现。而Openflow是一个具体的协议,这个协议实现了SDN这个框架中的一部分(南向接口),而且除了Openflow也存在别的同样功能的协议来完成相似的工作,Openflow的维护者是ONF组织。
Openflow被Controller用来控制网络设备,网络设备通过Openflow来反馈信息给Controller。
并且Openflow还规定了网络设备对报文的转发和编辑方式(flowtable),而是不同于传统的路由器和交换机设备。
Openflow协议涉及两个网络元素:Openflow Controller和Openflow Switch。Openflow协议有一部分运行在Controller上,另一部分运行在Switch上。
Openflow交换机转发面内部可以认为在逻辑上由两部分组成: Port 和 FlowTable。
FlowTable:流表就是芯片中一张张的转发表,每张流表都有很多条流表项组成。
FlowEntry: 流表项是流表中最小单位,每条流表项对应了网络中传输的一条流。流表项是Openflow中最核心的元素,根据Openflow标准,每条流表项由以下6个组成部分:
1、Match Field
2、Priority
3、Counter
4、Instruction
5、Timeout
6、Cookie
Controller和Switch之间的3种消息:
1、Controller-to-Switch消息: 这种类型的消息是从Controller发往Switch的,它包含以下几种子类型;
Features、Configuration、Modify-State、Read-State、Packet-out、Barrier、Role-Request、Asynchronous-Configuration
2、Asynchronous消息:用于交换机向Controller发送消息;目前定义了以下四种子类型;
Packet-in、Flow-removed、Port-status、Error
3、Symmetric消息:对称消息可以由任何一方发起;目前定义了如下三种子类型;
Hello(启动时通告)、Echo(获取reply确认连接状态)、Experimenter
Openflow的系统性能指标:
1、交换机处理带宽
2、流表项数量
3、流表项下发能力
4、To-Controller报文转发
五、OF-Config介绍
OF-Config是Openflow的一个伴侣协议,Openflow仅仅实现Flow的match-action相关的行为,但是Flow所依赖的很多资源,Openflow并不负责去管理。OF-Config需要去支持的工作范畴如下:
1、配置Openflow Controller地址
2、队列和物理端口的配置管理
3、逻辑端口的创建和管理
4、Controller和交换机之间通信通道的创建和配置,包括安全认证
5、交换机的能力发现
六、Controller
Controller是一个运行在独立的服务器上的软件程序,可以用各种不同的语言来实现,可以运行在不同的操作系统上。
一类是广义的Controller,也叫SDN Controller,这种Controller支持多种协议,Openflow只是其中的一种,目前OpenDayLight组织开发的就是SDN Controller。
一类是狭义的Controller,也叫Openflow Controller,Openflow是它唯一支持的协议。
Controller有很多个属性: 北向接口、集成的服务和应用、南向接口、控制方式、对物理和虚拟设备的通用管理、支持的Openflow标准
目前SDN面临的性能挑战:
1、流表下发的速度
2、多级流表匹配后的网络延迟