什么是SDN

为什么要推出SDN

在这里插入图片描述

SDN的起源

• SDN ( Software Defined Networking )即软件定义网络。是由斯坦福大学Clean Slate研究组提出的一种新型网络创新架构。 真核心理念通过将网络设备控制平面与数据平面分离,从而实现了网络控制平面的集中 控制, 为网络应用的创新提供了良好的支撑。

• SDN起源提出了三个特征, “转控分离 ” 、 “集中控制 ” 和 “开放可编程接口 ” 。

在这里插入图片描述

OpenFlow是什么?

  1. OpenFlow是一种网络通信协议,应用于SDN架构中控制器和转发器之间的通信。软件定义网络SDN的一个核心思想就是 " 转发 、控制分离、",要实现转、控分离,就需要再控制器与转发器之间建立一个通信接口标准,允许控制器直接访问和控制转发器的转发平面,OpenFlow引入了"流表"的概念,转发器通过流表来指导数据包的转发。控制器正是通过OpenFlow提供的接口再转发器上部署相应的流表,从而实现对转发平面的控制。

在这里插入图片描述

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消息:当数据路径接口被添加、删除、修改的时候,此消息用于通知控制器。

Flow Table(流表)简介

  • OpenFlow交换机基于流表(Flow Table)转发报文。

  • 每个流表项由匹配字段、优先级、计数器、指令、超时、Cokie、Flags这七步组成。其中关于转发的关键的俩个内容是匹配字段和指令。

    • 匹配字段是匹配规则,支持自定义。
    • 指令是用来描述匹配后的处理方式。

在这里插入图片描述

  • Match Fields:流表项匹配项(OpenFlow1.5.1版本支持45个可选匹配项),可以匹配入接口、物理入接口,流表间数据,二层报文头,三层报文头,四层端口号等报文字段等。
  • Priority:流表项优先级,定义流表项之间的匹配顺序,优先级高的先匹配。
  • Counters:流表项统计计数,统计有多少个报文和字节匹配到该流表项。
  • Instructions:流表项动作指令集,定义匹配到该流表项的报文需要进行的处理。当报文匹配流表项时,每个流表项包含的指令集就会执行。这些指令会影响到报文、动作集以及管道流程。
  • Timeouts:流表项的超时时间,包括了Idle Time和Hard Time。
    • Idle Time:在Idle Time时间超时后如果没有报文匹配到该流表项,则此流表项被删除。
    • Hard Time:在Hard Time时间超时后,无论是否有报文匹配到该流表项,此流表项都会被删除。
  • Cookie:Controller下发的流表项的标识。
  • Flags:该字段改变流条目的管理方式。

转发方式的对比

在这里插入图片描述

  • 流表的匹配原则是对于存在的“table0-table255”,优先从table0开始匹配。同一table内部按照优先级匹配,优先级高优先匹配。
  • 当前OpenFlow的主流应用是用于数据中心的软件交换机,例如OVS、CE1800V等,而不是实现硬件交换机的转控分离。

SDN的本质

在这里插入图片描述

  • SDN是一个更为广泛的概念而不局限于OpenFlow。转控分离是实现SDN的一种方法而不是本质。

SDN网络架构

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

在这里插入图片描述

  • 协同应用层:

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

  • 控制器层:

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

  • 设备层:

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

  • NBI北向接口:

    ​ 北向接口为控制器对接协同应用层的接口,主要为RESTful。

  • SBI南向接口:

    ​ 南向接口为控制器与设备交互的协议,包括NETCONF、SNMP、OpenFlow、OVSDB等。

总结

SDN是网络架构的革新,以控制器为主体,让网络更加开放,灵活和简单。

  • 5
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿的烦恼.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值