「NETWORKING」- 软件定义网络(SDN,Software Defined Networking)

  CREATED BY JENKINSBOT

问题描述

受计算机商业的启发,网络产业开始进一步发展:
1)业界开始提出 SDN(Software Defined Networking)的概念,并不断在其商用化进程上作出尝试。
2)目的是希望网络变得更开放、灵活和简单,像计算机行业那样,不再是厂商相关的。

解决方案

SDN,Software Defined Networking,软件定义网络,带来了网络架构的变革。是由斯坦福大学 Clean Slate 研究组提出的一种新型网络创新架构。2009 年,Mckeown 教授正式提出 SDN 概念。

原理简述

其核心理念通过将网络设备控制平面与数据平面分离,从而实现网络控制平面的集中控制,为网络应用的创新提供良好的支撑。

特性特征

SDN 起源提出三个特征:转控分离;集中控制;开放可编程接口;

集中控制:它引入网络控制器,通过全局视角集中控制,实现业务快速部署、流量调优、网络业务开放等目标。

网络架构

SDN网络架构分为协同应用层、控制器层、设备层。不同层次之间通过开放接口连接。以控制器层为主要视角,区分面向设备层的南向接口和面向协同应用层的北向接口。OpenFlow属于南向接口协议的一种。

协同应用层:主要完成用户意图的各种上层应用,典型的协同层应用包括OSS(Operations Support System,运营支撑系统)、OpenStack等。OSS可以负责整网的业务协同,OpenStack云平台一般用于数据中心,负责网络、计算、存储的业务协同。还有其他的协同层应用,比如用户希望部署一个安全APP,这个安全APP不关心设备具体部署位置,只是调用了控制器的北向接口,例如Block(Source IP,DestIP),然后控制器会给各网络设备下发指令。这个指令根据南向协议不同而不同。简单说,协同应用通知控制器,以表述其需求,然后控制器根据需求来进行网络调整。

控制器层:控制器层的实体就是SDN控制器,是SDN网络架构下最核心的部分。控制层是SDN系统的大脑,其核心功能是实现网络业务编排。

设备层:网络设备接收控制器指令,执行设备转发。

站在 Controller 的位置,上北下南:
1)NBI(Northbound Interface,北向接口):是指 Controller 对接 SDN Application 的接口,主要为 RESTful;
2)SBI(Southbound Interface,南向接口):是指 Controller 对接 Switch 接口;其为控制器与设备交互的协议,包括NETCONF、SNMP、OpenFlow、OVSDB等。

OpenFlow

OpenFlow 是 Controller 与 Switch 之间的一种南向接口协议(还有其他接口协议)。

OpenFlow Message Type

其定义三种类型的消息:
1)Controller-to-Switch:该消息由 Controller 发送,用于 管理 Switch 和 查询 Switch 的相关信息。
2)Asynchronous:该消息由 Switch 发起。当 Switch 状态发生改变时,发送该消息告诉 Controller 状态变化。
3)Symmetric:该消息没有固定发起方,可由 Switch 或 Controller 发起。例如 Hello、Echo、Error 等等。

每种消息又包含更多的子类型。

Controller-to-Switch子类型:
1)Features消息:在SSL/TCP会话建立后,Controller给Switch发送Features请求Switch的相关信息。Switch必须应答自己支持的功能,包括接口名、接口MAC地址、接口支持的速率等等基本信息。
2)Configuration消息:Controller可以设置或查询Switch的状态。
3)Modify-State消息:Controller发送该消息给Switch,来管理Switch的状态,即增加/删除、更改流表,并设置Switch的端口属性。
4)Read-State消息:Controller用该消息收集Switch上的统计信息。
5)Send-Packet消息:Controller发送该消息到Switch的特定端口。

Asynchronous子类型:
1)Packet-in消息:当Flow Table中没有匹配的表项或者匹配“send to Controller”,Switch将给Controller发送packet-in消息。
2)Packet-out消息:从控制器回复的消息。
3)Flow-Removed消息:当给Switch增加一条表项时,会设定超时周期。当时间超时后,该条目就会被删除。这时Switch就会给Controller发送Flow-Removed消息;当流表中有条目要删除时,Switch也会给Controller发送该消息。
4)Port-status消息:当数据路径接口被添加、删除、修改的时候,此消息用于通知控制器。

OpenFlow Flow Table

OpenFlow交换机基于流表(Flow Table)转发报文。
每个流表项由匹配字段、优先级、计数器、指令、超时、Cookie、Flags这七部分组成。

其中关于转发的关键的两个内容是:
1)匹配字段,是匹配规则,支持自定义。
2)指令,是用来描述匹配后的处理方式。

转发方式对比

经典的网络转发方式是网络设备通过查询路由表指导流量转发。
路由表的条目由网络设备之间运行路由协议而计算生成。
路由表是定长的。路由表通过最长匹配原则执行报文转发。一台网络设备只有一张路由表。
OpenFlow 是个网络协议。运行OpenFlow的交换机通过查询流表指导流量转发。
流表一般是由OF控制器统一计算,然后下发到交换机。
流表是变长的,拥有丰富的匹配规则和转发规则。一台网络设备有多张流表。

本质诉求

SDN的本质诉求是让网络更加开放、灵活和简单。Switch 只需要支持开放的标准协议(比如 OpenFlow 协议),而 Controller 则是各大厂商实现的软件。

它的实现方式是为网络构建一个集中的大脑,通过全局视图集中控制,实现或业务快速部署、或流量调优、或网络业务开放等目标。
SDN 的价值是:
1)集中管理,简化网络管理与运维;
2)屏蔽技术细节,降低网络复杂度,降低运维成本;
3)自动化调优,提高网络利用率;
4)快速业务部署,缩短业务上线时间;
5)网络开放,支撑开放可编程的第三方应用。

华为 SDN 网络架构

华为SDN网络架构支持丰富的南北向接口,包括OpenFlow、OVSDB、NETCONF、PCEP、 RESTful 、SNMP、BGP、JsonRPC、RESTCONF等。

云平台:云数据中心内资源管理平台。云平台包含对网络资源、计算资源和存储资源的管理。OpenStack是最主流的开源云平台。
EMS(Element Management System,网元管理系统)是管理特定类型的一个或多个电信NE(Network Element,网络单元)的系统。
Orchestration(容器编排):容器编排工具也可以包含网络业务编排功能。Kubernetes是主流的工具。
MTOSI/CORBA用于对接BSS/OSS。Kafka/SFTP可用于对接大数据平台。

华为SDN解决方案 – 管、控、析构建智简网络