大家好,又见面了,我是你们的朋友全栈君。
SDN的工作原理
一.SDN网络架构的三层模型
架构主要分为协同应用层,控制层,转发层三层,网络架构本身包括管理平面,控制平面和转发平面,与这三层对应。
传统的IP网络具有转发平面,控制平面和管理平面。
协同应用层主要是完成用户意图的各种上层应用程序,此类应用程序(APP)成为协同应用程序,典型的协同层包括OSS,Openstack等。
控制层是系统的控制中心,负责网络内部交换路径和边界业务路由的生成,并负责处理网络状态变化事件。这里注意sdn架构下,sdn控制器直接提供网络业务服务接口,APP就不需关心内部的MPLS,MBGP等技术细节。
转发层主要是由转发器和连接转发器的线路构成基础转发网络。
二.SDN网络架构下的三个接口
北向接口,南向接口为三个层之间交互连接的接口。
北向接口:是一个管理接口,为传统设备提供的管理接口形式和类型一样。
南向接口:用于控制器和转发器之间的数据交互,包括从设备收集拓扑信息,标签资源,统计信息,告警信息等,也包括控制器下发的控制信息,比如各种流表。
东西向接口:
应用场景1:SDN网络和传统网络进行互通。
应用场景2:SDN网络和SDN网络进行互通。
这里注意几点:控制器不推荐在一个自治系统仅仅控制一部分设备的做法。并且控制器要支持跨域路由协议,同时控制器必须也运行东西向协议。
三.SDN网络的工作流程解析
SDN网络的控制器和转发器的控制通道建立过程
SDN控制器是SDN网络中的大脑,是控制单元。而转发器是SDN网络的手脚,是执行单元。
SDN控制通道包括带内方式和带外方式。带内方式是业务网络公用物理网络,成本低,通过优先级机制。带外方式需要独立的信令物理网络,成本高,独占网络带宽。更多场景下,用户不可能专门建立一个管理网络,也就是独立的管理网络是不存在的,只能用带内控制通道来进行通信。
通道的建立过程分为二层网络的建立和三层网络的建立。
二层网络可以采用MSTP协议来协助破坏建立二层连接。三层网络可以采用传统的IGP来进行路由学习和打通控制通道。注意三层网络下控制器其实和传统路由器有着一样的功能,但是要组织流量转发到控制器,很多IGP中有类似的功能来阻止这一点。
SDN控制器的资源收集过程
网元资源信息收集(注册信息,MPLS标签信息,转发器的接口资源信息,等)
拓扑信息收集(网络拓扑包括三个对象:节点对象,接口对象,链路对象。控制器收集转发器的拓扑协议主要是LLDP)
SDN控制器的流表计算和下发过程
- SDN网络内部交换路由的生成
- 边缘业务接入路由的处理,边缘的业务接入点是用于接入网络业务的,所有的用户流量都需要通过边缘业务接入节点进入网络,然后穿过内部交换网,到达另外一个边缘的业务接入节点。
转发表下发协议
包括PCE协议,BGP协议,Netconf协议,OPenflow协议等
控制器和多厂家转发器的互通
网络状态变化处理
四.SDN网络工作流程总结
1.控制器和转发器之间的控制通道建立,通常使用传统的IGP来打通控制通道。
2.控制器和转发器建立控制协议连接后,需要从转发器收集网络资源信息,包括设备信息,接口信息,标签信息等,控制器还需要通过拓扑收集协议收集网络拓扑信息。
3.控制器利用网络拓扑信息和网络资源信息计算网络内部的交换路径,同时控制器会利用一些传统协议和外部网络运行的一些传统路由协议,包括BGP,IGP等学习业务路由并向外扩散业务路由,把这些业务路由和内部交换路径转发信息下发给转发器。
4.转发器接受控制器下发的网络内部交换路径转发表数据和业务路由转发表数据,并依据这些转发表进行报文转发。
5.当网络状态发生变化时,SDN控制器会事实感知网络状态,并重新计算网络内部交换路径和业务路由,以确保网络能够继续正常提供服务。
如果大家发现错误,欢迎大家指正!嘻嘻。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/128081.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...