2.2 软件定义网络的核心思想

一、SDN 的核心思想(解耦)

指的是,将数据平面和控制平面分离,主要是为了解决数据平面和控制平面耦合导致的问题。

控制平面:
负责上层的控制决策。

数据平面:
负责数据的转发。

二者遵循开放接口进行通信。

传统网络中的数据平面:
二层交换机,基于 MAC 地址表进行转发。
路由器,基于路由表进行转发。

各种转发表由设备的控制平面基于不同的策略生成的。

解耦的优势:
SDN 将网络设备的控制平面集中到了控制 Controller,网络设备仅保留转发功能。
可以通过软件实现,灵活的控制面功能,满足用户的个性化需求。
硬件只需要负责转发,只需要简单通用即可。

存在的挑战:

  • 控制平面的服务能力称为网络性能的瓶颈。
    解决办法:部署多个分布式的控制器。
  • 多个控制器如何交互路由信息,保持分布式节点状态的一致。
  • 控制平面响应延迟,导致数据平面可用性问题,可能出现延迟。

二、SDN 的核心思想(抽象)

SDN抽象类似于计算机操作系统抽象
  1. 转发抽象
    就是将数据平面的抽象成通用的转发模型,比如,OpenFlow 的交换机模型。转发行为与硬件无关,各种转发表项,如 MAC 地址表,路由表,MPLS 标签,ACL 控制访问等抽象为统一的流表。


    OpenFlow 的交换机模型
  1. 分布式状态抽象
    控制层将设备的分布状态,抽象为全局的网络视图,从而实现逻辑的控制。

抽象功能:
可通过网络操作系统(NOS)来实现,主要有两方面的功能:
实现下发控制命令;
收集设备和链路状态,为上层应用提供全局网路视图,

  1. 配置抽象
    网络行为的表达可通过编程语言实现,基于简化抽象模型,将抽象配置映射为物理配置。

传统配置方式:
命令行配置;
网络管理协议接口,编写简单的脚本。

SDN 配置方式:
利用控制器提供的配置API(Python,C++,java等编程工具)。
基于控制层提供的全局网络视图,而不是单个设备的编程。
overylay 网络同样体现出抽象的思想,应用程序不需要考虑底层网络实现。

三、SDN 的核心思想(可编程)

SDN 提供了开放的可编程接口,

传统网络管理接口:
命令行,网管协议,SHELL脚本,Python脚本。
属于一种初级的网络编程方式。

网络可编程探索:
主动网络:开放网络节点的编程接口;用户数据上根据用户需求执行相应的计算。
4D 架构:将网络划分为四个平面,数据平面,发现平面,扩展平面,决策平面。

SDN 的可编程接口:
北向接口:RESET API;JAVA API;
南向接口:OpenFlow,OF-Config,NETCONF,OVSDB。
东西向接口:负责多控制器或与外部组件之间的通信,还在研究阶段,没有统一标准。
SDN数据平面可编程:
INTEL,高性能的网络数据处理框架。
斯坦福大学,数据平面可编程语言 P4。

你可能感兴趣的:(2.2 软件定义网络的核心思想)