[TOC]
**SDN [Software Defined Networking 即软件定义网络]**是一种新型网络创新架构
SDN核心理念通过将网络设备控制平面与数据平面分离,从而实现了网络控制平面的集中控制,为网络应用的创新提供了良好的支撑

OpenFlow基本概念
OpenFlow是控制器与交换机之间的一种南向接口协议
OpenFlow是一个网络协议。运行OpenFlow的交换机通过查询流表指导流量转发
OpenFlow定义了三种类型的消息,Controller-to-Switch、 Asynchronous 和 Symmetric。每一种消息又包含了更多的子类型
-
Controller-to-Switch消息由Controller发送。用于管理Switch和查询Switch的相关信息
-
Asynchronous消息由Switch发起。当Switch状态发生改变时,发送该消息告诉Controller状态变化
-
Symmetric消息没有固定发起方,可由Switch或者Controller发起
Controller-to-Switch子类型:
- Features消息:在SSL/TCP会话建立后,Controller给Switch发送Features请求Switch的相关信息。Switch必须应答自己支持的功能,包括接口名、接口MAC地址、接口支持的速率等等基本信息
- Configuration消息:Controller可以设置或查询Switch的状态
- Modify-State消息:Controller发送该消息给Switch,来管理Switch的状态,即增加/删除、更改流表,并设置Switch的端口属性
- Read-State消息:Controller用该消息收集Switch上的统计信息
- Send-Packet消息:Controller发送该消息到Switch的特定端口
Asynchronous子类型:
- Packet-in消息:当Flow Table中没有匹配的表项或者匹配send to Controller,Switch将给Controller发送packet-in消息
- Packet-out消息:从控制器回复的消息
- Flow-Removed消息:
- 当给Switch增加一条表项时,会设定超时周期
- 当时间超时后,该条目就会被删除
- Switch就会给Controller发送Flow-Removed消息
- 当流表中有条目要删除时,Switch也会给Controller发送该消息
- Port-status消息:当数据路径接口被添加、删除、修改的时候,此消息用于通知控制器。
Symmetric子类型:
- Hello消息:
- 当一个OpenFlow连接建立时,Controller和Switch都会立刻向对端发送OFPT_HELLO消息,该消息中的version域填充发送方支持的OpenFlow协议最高的版本号
- 接收方收到该消息后,接收方会计算协议版本号,即在发送方和接收方的版本号中选择一个较小的
- 如果接收方支持该版本,则继续处理连接,连接成功
- 接收者回复一个OFPT_ERROR消息,类型域中填充ofp_error_type.OFPET_HELLO_FAILED
- Echo消息: Switch和Controller任何一方都可以发起Echo request消息,但收到的一方必须回应Echo reply消息。这个消息可以来测量latency、Controller-Switch之间的连接性,即心跳消息;
- Error消息:当交换机需要通知控制器发生问题或错误时,Switch给Controller 发送Error消息
流表 [Flow Table] 简介
OpenFlow交换机基于流表 [Flow Table] 转发报文
-
流表一般是由OF控制器统一计算,然后下发到交换机
-
流表是变长的,拥有丰富的匹配规则和转发规则。一台网络设备有多张流表
-
每个流表项由匹配字段、优先级、计数器、指令、超时、Cookie、Flags这七部分组成
关于转发的关键的两个内容是匹配字段和指令
- 匹配字段是匹配规则,支持自定义
- 指令是用来描述匹配后的处理方式

- Match Fields:流表项匹配项,可以匹配入接口、物理入接口,流表间数据,二层报文头,三层报文头,四层端口号等报文字段等
- Priority:流表项优先级,定义流表项之间的匹配顺序,优先级高的先匹配。
- Counters:流表项统计计数,统计有多少个报文和字节匹配到该流表项。
- Instructions:流表项动作指令集,定义匹配到该流表项的报文需要进行的处理。当报文匹配流表项时,每个流表项包含的指令集就会执行。这些指令会影响到报文、动作集以及管道流程。
- Timeouts:流表项的超时时间,包括了Idle Time和Hard Time。
- Idle Time:在Idle Time时间超时后如果没有报文匹配到该流表项,则此流表项被删除
- Hard Time:在Hard Time时间超时后,无论是否有报文匹配到该流表项,此流表项都会被删除
- Cookie:Controller下发的流表项的标识。
- Flags:该字段改变流条目的管理方式。
SDN网络架构
- SDN网络架构分为协同应用层、控制器层和设备层
不同层次通过开放接口连接。以控制器层为主要视角,区分面向设备层的南向接口和面向协同应用层的北向接口

- 协同应用层:主要完成用户意图的各种上层应用,典型的协同层应用包括OSS、OpenStack等
- OSS可以负责整网的业务协同,OpenStack云平台一般用于数据中心负责网络、计算、存储的业务协同
- 控制器层:控制器层的实体就是SDN控制器,是SDN网络架构下最核心的部分。控制层是SDN系统的大脑,其核心功能是实现网络业务编排
- 设备层:网络设备接收控制器指令,执行设备转发
- NBI北向接口:北向接口为控制器对接协同应用层的接口,主要为RESTful
- SBI南向接口:南向接口为控制器与设备交互的协议,包括NETCONF、SNMP、OpenFlow、OVSDB
华为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可用于对接大数据平台
iMaster NCE
iMaster NCE,自动驾驶网络管理与控制系统,是华为集管理、控制、分析和AI智能功能于一体的网络自动化与智能化平台
华为数据中心CloudFabric自动驾驶解决方案
基于iMaster NCE-Fabric,为数据中心网络提供从规划-建设-运维-调优全生命周期服务
- 规建一体:规划工具对接NCE,实现规划建设一体化、ZTP [Zero Touch Provisioning,零配置开局]
- 极简部署:业务意图自理解和转换部署、网络变更仿真评估,杜绝人为错误
- 智能运维:基于知识图谱和专家规则的快速故障发现定位、基于专家规则和仿真分析的快速故障恢复
- 实时调优:面向AI-Fabric的流量本地推理,在线模型训练调优、用户行为预测、资源调优建议
关键特性:极简ZTP部署
ZTP部署流程:
- 网络管理员点击启动ZTP任务
- 设备自动获取IP地址访问控制器
- 控制器判断设备角色 [Spine or Leaf],对上线设备下发管理IP、SNMP、NETCONF等配置,并通过管理IP纳管设备
- 控制器全局下发互联配置及OSPF、BGP等配置
- 设备上线成功,管理员NCE查看全网信息。
NFV概述
网络功能虚拟化被称为NFV [Network Functions Virtualization] ,而虚拟化之后的网络功能被称为VNF [Virtualized Network Function]
NFV相关的标准组织主要有:
- ETSI NFV ISG:制定NFV的需求和功能框架
- 3GPP SA5工作组:重点关注3GPP网元的虚拟化管理(MANO相关)的技术标准和规范
- OPNFV:加速NFV市场化节奏的开源平台项目
NFV在重构电信网络的价值如下:缩短业务上线时间、降低建网成本、提升网络运维效率、构建开放的生态系统
NFV关键技术
- 在NFV中,虚拟化是基础,云化是关键
NFV关键技术:虚拟化
虚拟化具有分区、隔离、封装和相对于硬件独立的特征,能够很好匹配NFV的需求
- 分区:在单一物理服务器上同时运行多个虚拟机
- 隔离:在同一服务器上的虚拟机之间相互隔离
- 封装:整个虚拟机都保存在文件中,而且可以通过移动和复制这些文件的方式来移动和复制该虚拟机
- 相对于硬件独立:无需修改即可在任何服务器上运行虚拟机
NFV关键技术:云化
云计算是一种模型,它可以实现随时随地,便捷地,随需应变地从可配置计算资源共享池中获取所需的资源,资源能够快速供应并释放,使管理资源的工作量和与服务提供商的交互减小到最低限度
云计算服务应该具备以下几条特征:
- 按需自助服务 [On-demand Self-service]:实现了IT资源的按需自助服务,不需要管理员介入即可申请和释放资源
- 广泛网络接入 [Broad Network Access]:有网络即可随时、随地的使用
- 资源池化 [Resource Pooling]:资源池中的资源包括网络、服务器、存储等资源,提供给用户使用
- 快速弹性伸缩 [Rapid Elasticity]:资源能够快速的供应和释放。申请即可使用,释放立即回收资源
- 可计量服务 [Measured Service]:计费功能。计费依据就是所使用的资源可计量
运营商网络中网络功能的云化更多的是利用了资源池化和快速弹性伸缩两个特征
NFV架构简介
NFV架构分NFVI [Network Functions Virtualization Infrastructure,基础设施层]、 VNF [Virtualized Network Function,虚拟化网络功能层] 和MANO [Management and Orchestration,管理编排域 ] ** ,同还要支持现有的BSS/OSS [Business support system/ Operation support system]**

NFV价值是通过设备归一和软硬件解耦实现资源的高效利用,可以降低运营商TCO,缩短业务上线时间,打造开放的产业生态
NFVI包含硬件层和虚拟化层,业界也有说法称作COTS和CloudOS:
COTS(commercial off-the-shelf,商用现货),即通用硬件,强调了易获得性和通用性。例如Huawei FusionServer系列硬件服务器。
CloudOS:设备云化的平台软件,可以理解为电信业的操作系统。CloudOS提供了硬件设备的虚拟化能力,将物理的计算/存储/网络资源变成虚拟资源供上层的软件使用。例如华为的云操作系统FusionSphere。
VNF:VNF可以理解为各种不同网络功能的APP,是运营商传统网元(IMS,EPC,BRAS,CPE…)的软件实现。
MANO:MANO的引入是要解决NFV多CT/IT厂家环境下的网络业务的发放问题,包括:分配物理/虚拟资源,垂直打通管理各层,快速适配对接新厂家新网元。MANO包括NFVO(Network Functions Virtualization Orchestrator,负责网络服务的生命周期的管理)、VNFM(Virtualized Network Function Manager, 负责VNF的生命周期管理)、VIM(Virtualized Infrastructure Manager,负责NFVI的资源管理)三部分。
NFV的标准架构
ETSI定义了NFV标准架构,由NFVI、VNF以及MANO主要组件组成。NFVI包括通用的硬件设施及其虚拟化,VNF使用软件实现虚拟化网络功能,MANO实现NFV架构的管理和编排
NFV架构功能模块
NFV标准架构定义的主要功能模块:

- BSS:Business support system 业务支撑系统
- OSS:Operation support system 运营支撑系统
- Hypervisor:是一种运行在物理服务器和虚拟机操作系统之间的中间软件层,可允许多个操作系统和应用共享一套基础物理硬件。因此也可以看作是虚拟环境中的“元”操作系统,它可以协调访问服务器上的所有物理设备和虚拟机,也叫虚拟机监视器
- Hypervisor是所有虚拟化技术的核心。目前主流的Hypervisor有KVM,VMWare ESXi,Xen,HyperV等
NFV架构接口
NFV标准架构的主要接口:
接口类型 | 功能描述 |
---|---|
Vi-Ha | 虚拟化层与基础硬件之间的接口。虚拟化层满足基础硬件兼容性要求 |
Vn-Nf | 虚拟机与NFVI之间的接口。确保虚拟机可以部署在NFVI上,满足性能、可靠性和可扩展性要求,NFVI满足虚拟机操作系统兼容性要求 |
Nf-Vi | 虚拟化层管理软件与NFVI之间的接口,提供NFVI虚拟计算、存储和网络系统管理,虚拟基础架构配置和连接与系统利用率、性能监控和故障管理 |
Ve-Vnfm | VNFM与VNF之间的接口,实现VNF生命周期管理、VNF配置、VNF性能和故障管理 |
OS-Ma | 实现网络服务生命周期管理,VNF生命周期管理 |
Vi-Vnfm | 提供业务应用管理系统/业务编排系统与虚拟化层管理软件之间交互接口 |
Or-Vnfm | 给VNFM发送配置信息,对VNFM进行配置,完成Orchestrator与VNFM的对接;分配给一个VNF的NFVI资源的交互;VNF信息的交换 |
Or-Vi | Orchestrator需要的资源预定及资源分配的请求;虚拟硬件资源配置及状态信息的交换 |