ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

软件定义网络SDN

软件定义网络SDN

在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环境中)的通信接口。
  • 核心功能:
    1. 状态同步:确保集群内所有控制器拥有全局一致的网络视图(如拓扑、主机信息)。
    2. 集群协调:进行领导者选举、分片数据同步、事务一致性。
    3. 跨域协作:在分层或多管理域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七层模型(从下至上):
  1. 应用层
  2. 表示层
  3. 会话层
  4. 传输层
  5. 网络层
  6. 数据链路层
  7. 物理层
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来传输它的控制信息,同时重新定义了网络设备的行为方式。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进