
在SDN(软件定义网络)架构中,南向接口 、北向接口 、东向接口 和西向接口分别连接架构的不同层级,并承担不同的功能。
🧭 一、南向接口 (Southbound Interface)
- 定义:控制层(Controller)与数据转发层(交换机、路由器等网络设备)之间的通信接口。
- 核心功能:负责将控制器决策的转发规则、策略下发至底层网络设备,并可能收集网络状态信息。
- 典型协议/技术 :
- OpenFlow:最经典的南向协议,直接编程流表。
- NETCONF/gRPC:用于配置和管理网络设备。
- OVSDB:管理Open vSwitch数据库。
- P4Runtime:用于编程P4可编程交换机。
🧭 二、北向接口 (Northbound Interface)
- 定义:应用层(各类SDN应用、业务编排系统)与控制层之间的通信接口。
- 核心功能 :向上层应用抽象底层网络资源,允许应用通过编程方式调用网络功能(如路径计算、安全策略下发)、获取网络视图,实现应用驱动的网络。
- 典型协议/技术 :
- REST API (RESTconf):最主流方式,使用HTTP/JSON进行资源管理。
- Java API / Python API:依赖特定控制器(如ONOS、ODL)的原生接口。
- gRPC:高性能RPC框架。
🧭 三、东向接口 / 西向接口 (East-Westbound Interface)
- 定义 :多个控制器实例之间(在分布式控制器集群或多域SDN环境中)的通信接口。
- 核心功能 :
- 状态同步:确保集群内所有控制器拥有全局一致的网络视图(如拓扑、主机信息)。
- 集群协调:进行领导者选举、分片数据同步、事务一致性。
- 跨域协作:在分层或多管理域SDN中,不同域控制器交互以建立端到端路径。
- 典型协议/技术 :
- ONOS 中的 EAST/WEST 协议:基于gRPC的专有协议,用于集群状态同步。
- OpenDaylight (ODL) 中的 Clustering:利用Akka Cluster (Scala) 或Raft实现。
- BGP/LISP:在跨域场景中,控制器之间可能使用BGP/LISP交换可达性信息。
📊 总结:SDN接口全景
| 接口名称 | 连接的两端 | 核心作用 | 数据流方向 | 常见协议/标准 |
|---|---|---|---|---|
| 南向接口 | 控制层 ↔ 数据层 | 控制下发、状态收集 | 向下 | OpenFlow, NETCONF, OVSDB, P4Runtime |
| 北向接口 | 应用层 ↔ 控制层 | 网络能力抽象、应用驱动 | 向上 | REST API (RESTconf), gRPC, Java/Python API |
| 东向/西向接口 | 控制器 ↔ 控制器 | 分布式集群协调、状态同步、跨域协作 | 横向 | 控制器私有协议 (基于gRPC/Raft), BGP/LISP/SDN-IX |
💎 命名哲学(类比地理)
- 南向(South):向下,前往数据设备(物理世界)。
- 北向(North):向上,通往业务应用(虚拟/商业逻辑)。
- 东向/西向(East/West):同一层级内延伸,代表分布式系统中的水平扩展与协作。
关于SDN的"四向接口"架构,它的提出者、标准化进展以及当前的普及情况,可以这样理解:
💡 起源:它并非一蹴而就,而是源于思想的碰撞
这个架构并非由某一个人在某个时间点单独提出,而是学术界、产业界和标准化组织共同推动的成果,其关键思想有具体的出处:
- 🚀 思想源头"南北向":斯坦福大学与ONF的里程碑 :SDN的核心理念"控制和转发分离"以及最早的南向接口 协议OpenFlow,都起源于美国斯坦福大学的Clean Slate 课题。SDN概念被正式提出,Nick McKeown教授等人是重要的推动者。随后,业界成立的开放网络基金会 (ONF) 将这一思想系统化,明确提出了"应用层-控制层-基础设施层"三层架构,并正式定义了南向接口 和北向接口。
- 🔗 补齐"东西向":单点到集群的必然演进 :随着SDN从小规模试验走向大规模部署,单台控制器在性能和可靠性上都成了瓶颈。为了解决"控制层的扩展性问题"(即多个控制器之间如何高效协同),学术界和产业界提出了东西向接口的概念,以实现控制器之间的状态同步和信息交换。
📈 现实:从技术"圈子"走向战略"核心"
SDN接口架构并非学术概念,它已从最初的"交换机可编程"理念,演变为全球信息基础设施的战略核心技术。
-
📊 市场规模的迅猛扩张 :SDN市场的迅速增长是最直接的证明。全球市场的规模预计将从2025年的约391亿美元增长到2026年的约473亿美元,年复合增长率超过20%。技术应用趋势上,SDN正与云原生、5G、AI等技术深度融合,其中多云环境的普及和5G网络的渗透是主要驱动力,来自行业研究机构的报告也预计这一市场将持续增长。
-
🌐 知名企业大规模落地应用:除了IBM、微软、谷歌等科技巨头早期的大量部署,近年来,以电信运营商为代表的大型企业也进入了深度应用阶段。
- 中国移动(China Mobile) :在其北京和广州数据中心 ,部署了近2000台服务器 ,采用诺基亚的Nuage Networks SDN技术构建公共云服务。
- 美国电话电报公司(AT&T) :成功进行了基于自研SDN控制器的400 Gb/s以太网连接试验,跨越华盛顿和纽约,并能实现故障时的自动流量迂回。
- 威瑞森(Verizon):Mojatatu公司的MojaNet SDN控制器已被Verizon应用于其有线及无线网络中。
- 中华电信(Chunghwa Telecom) :在5G回传网等关键基础设施中测试和导入SDN解决方案,实现集中控制、快速部署和灵活管理。
-
⚙️ 技术实践的持续精进:SDN四向接口并非停留在理论层面,而是通过大量具体的协议和技术来落地:
- 南向接口 (最成熟):代表协议 OpenFlow 已经发展到支持 IPv6、MPLS 等更复杂的网络环境;NETCONF、OVSDB、P4Runtime 等新协议也不断涌现。
- 北向接口 (最活跃) :已成为应用驱动网络的核心枢纽,通过REST API等方式让网络快速响应上层需求。
- 东西向接口 (最前沿) :ONOS的East/West protocol 、ODL的Clustering是其具体技术和标准化的落地成果。
💎 总结
SDN的"四向接口"架构,是学术界(斯坦福大学)、工业界(厂商)和标准化组织(ONF、IETF)等各方智慧的共同结晶。它已超越了实验室和特定领域,被广泛应用于电信运营商、大型云服务提供商、大型企业 以及金融、政府、教育等各行各业。
这一架构也从最初帮助谷歌优化其数据中心间(B4网络)流量的技术,演变为构成现代大规模、高弹性网络基础设施的基石之一。
SDN的四向接口架构与OSI七层模型**、**TCP/IP四层模型并非同一维度的概念,它们解决的是不同的问题,但可以共存并互相映射。
简单类比:
- OSI/TCP/IP模型 :描述的是数据本身 在网络中传输时,需要经过哪些"处理步骤"(如编码、寻址、会话管理等),是通信协议的栈结构。
- SDN四向接口架构 :描述的是网络设备 (尤其是控制平面)如何被编程和管理 ,是网络控制平面的架构。
下面从几个关键维度对比:
1️⃣ 核心关注点不同
| 维度 | OSI七层 / TCP/IP四层 | SDN四向接口 |
|---|---|---|
| 核心问题 | "数据怎么从一个主机传送到另一个主机?" | "网络设备(交换机/路由器)的控制逻辑如何与数据转发分离?如何通过软件编程来定义网络行为?" |
| 抽象对象 | 通信功能(物理、链路、网络、传输、会话、表示、应用) | 网络组件 (应用、控制器、转发设备)及其交互接口 |
| 视角 | 数据平面 + 控制平面(传统网络中控制平面嵌入设备) | 控制平面与数据平面分离,强调控制器的集中式/分布式编程 |
2️⃣ 层次结构对比
OSI七层模型(从下至上):
- 应用层
- 表示层
- 会话层
- 传输层
- 网络层
- 数据链路层
- 物理层
TCP/IP四层模型(从上至下):
- 应用层(对应OSI 5-7)
- 传输层(对应OSI 4)
- 网际层(对应OSI 3)
- 网络接口层(对应OSI 1-2)
SDN四向接口架构(水平/垂直):
- 北向接口:应用层 ↔ 控制层
- 东/西向接口:控制器 ↔ 控制器
- 南向接口:控制层 ↔ 基础设施层
- (注:SDN的三层是:应用层、控制层、基础设施层)
关键区别 :SDN的"层"是指控制平面与数据平面的分离以及控制器的逻辑位置 ,而OSI/TCP/IP的"层"是指协议栈的功能分层 。SDN的南向接口(如OpenFlow)运行于TCP/IP协议之上 (通常使用TCP 6653端口),因此SDN架构是构建在传统TCP/IP网络基础之上的一个控制管理架构,两者并不互斥。
3️⃣ 典型协议与功能映射
| OSI层 | TCP/IP层 | 该层主要协议 | 在SDN架构中的角色 |
|---|---|---|---|
| 应用层 | 应用层 | HTTP, DNS, SMTP | 北向接口的承载(REST API over HTTP) |
| 表示/会话层 | (合并入应用层) | TLS, NetBIOS | 不直接相关 |
| 传输层 | 传输层 | TCP, UDP | 南向接口的传输(OpenFlow使用TCP;NETCONF使用SSH/TCP) |
| 网络层 | 网际层 | IP, ICMP | 被SDN控制的对象:SDN交换机转发IP包;南向协议下发流表 |
| 链路层 | 网络接口层 | Ethernet, ARP | 被SDN控制的对象:SDN交换机处理MAC帧;OpenFlow可以匹配MAC地址 |
| 物理层 | 网络接口层 | 光纤、双绞线 | 与SDN架构无关(底层传输介质) |
结论 :SDN的控制协议(如OpenFlow消息)本身是一个应用层协议 ,它运行在TCP/IP栈之上,用于远程控制交换机的转发表。因此,SDN架构是叠加 在传统网络协议栈之上的一个控制平面框架,而不是替代它。
4️⃣ 为什么容易混淆?
因为传统网络设备(如路由器)也遵循OSI/TCP/IP模型,且其控制平面 (路由协议)和数据平面 (转发)是紧密耦合在同一个设备内的。而SDN将控制平面抽离出来,形成独立的控制器,并定义了控制器与设备(南向)、控制器与应用(北向)之间的接口。所以,SDN架构可以看作是对传统网络设备内部功能的一种外部化重组。
一个直观类比:
- OSI/TCP/IP 类似于一部汽车的零件功能分层(发动机、传动轴、车轮、方向盘、刹车......各自的标准接口)。
- SDN架构 类似于自动驾驶系统:它引入了一个中央控制器(大脑),通过接口(南向=油门/刹车线控,北向=导航指令输入,东西向=多控制器协同)来控制汽车的各个部件。汽车本身的零件分层仍然存在,但控制逻辑被集中了。
5️⃣ 总结表格
| 对比项 | OSI七层 / TCP/IP四层 | SDN四向接口 |
|---|---|---|
| 描述对象 | 网络通信协议栈 | 网络控制与管理架构 |
| 核心目标 | 实现异构系统之间的互联互通 | 实现网络的可编程性、灵活性和集中控制 |
| 分层依据 | 功能抽象(物理→应用) | 控制平面与数据平面分离、应用与控制分离 |
| 是否定义数据转发 | 是(定义了每一层的PDU) | 否(南向接口可以编程转发行为,但本身不定义数据格式) |
| 是否依赖IP | 否(OSI也支持其他网络层协议) | 是(目前主流南向协议运行在IP网络上) |
| 实际部署关系 | 所有网络设备的基础 | 叠加在传统网络之上,通过控制器管理支持OpenFlow等协议的设备 |
一句话总结 :
OSI/TCP/IP模型 告诉你的是"数据包长什么样、每层干什么活";SDN四向接口架构告诉你的是"谁来指挥网络设备、应用怎样给网络下指令"。两者相互配合,SDN利用TCP/IP来传输它的控制信息,同时重新定义了网络设备的行为方式。