四.SDN概述
SDN(Software Defined Netrork)软件定义网络。
2006年,以斯坦福大学教授Nike Mckewn为首的团队提出了OpenFlow的概念,并基于OpenFlow技术实现网络的可编程能力(OpenFlow只是实现SDN的一个协议),是网络像软件一样灵活编程,SDN技术应运而生。
SDN的定义
SDN的定义是其字面意思,控制与转发分离,管理与控制分离只是满足SDN的一种手段,OpenFlow只是满足SDN的一种协议
SDN的分类
SDN的分类区别在于其实现的是控制与转发分离,还是管理与控制分离
SDN分类:
控制与转发分离 (超广义)
管理与控制分离 (广义)
SDN的三个主要特征:
转控分离:网元的控制平面在控制器上,负责协议计算,产生流表;而转发平面只在网络设备上。
集中控制:设备网元通过控制器集中管理和下发流表,这样就不需要对设备进行逐一操作,只需要对控制器进行配置即可。
开放接口:第三方应用只需要通过控制器提供的开放接口,通过编程方式定义一个新的网络功能,然后在控制器上运行即可。
== SDN控制器既不是网管,也不是规划工具:==
网管没有实现转控分离:网管只负责管理网络拓扑、监控设备告警和性能、下发配置脚本等操作,但这些仍然需要设备的控制平面负责产生转发表项。
规划工具的目的和控制器不同:规划工具是为了下发一些规划表项,这些表项并非用于路由器转发,是一些为网元控制平面服务的参数,比如IP地址,VLAN等。控制器下发的表项是流表,用于转发器转发数据包。
五.SDN网络架构
SDN是对传统网络架构的一次重构,由原来分布式控制的网络架构重构为集中控制的网络架构。
SDN网络体系架构的三层模型:
应用层:这一层主要是体现用户意图的各种上层应用程序,此类应用程序称为协同层应用程序,典型的应用包括OSS(Operation support system 运营支撑系统)、Openstack等。传统的IP网络同样具有转发平面、控制平面和管理平面,SDN网络架构也同样包含这3个平面,只是传统的IP网络是分布式控制的,而SDN网络架构下是集中控制的。
控制层:控制层是系统的控制中心,负责网络的内部交换路径和边界业务路由的生成,并负责处理网络状态变化事件。
转发层:转发层主要由转发器和连接器的线路构成基础转发网络,这一层负责执行用户数据的转发,转发过程中所需要的转发表项是由控制层生成的。
北向接口:应用层和控制层通信的接口,应用层通过控制开放的API,控制设备转发功能
南向接口:控制层和数据层通信的接口,控制器通过OpenFlow或其他协议下发流表。
SDN网络部署方式
Underlay的网络
所有的转发行为都由控制器通过OpenFlow协议或定制的BGP协议将转发表下发给转发器,转发器仅仅执行动作,没有单独控制面
Overlay的网络
这种网络的转发器一般都是传动设备,不支持OpenFlow,或者私有定制协议不能部署时,就要用隧道技术,基础网络还是传统网络形式,通过路由协议打同各个节点,但是在服务器接入点,才用隧道技术将数据报文进行封装或者解封装。对传统网络来说见到的就是普通数据报文,转发即可。隧道技术实际上就是报文的马甲,迷惑网络设备,让设备以为时自己人,但实际上报文的心是虚拟化的心。现一般才用Vxlan,GRE,NVGRE等隧道技术,而这些新增的协议,也需要升级现有网络设备才能支持(不支持上述协议的网络设备)。穿马甲索然能够在不进行大改造的情况下增加新的功能,但无疑会降低网络性能。