了解SDN
一、什么是SDN
-
SDN字面意思是软件定义网络,其试图摆脱硬件对网络架构的限制,这样便可以像升级、安装软件一样对网络进行修改,便于更多的APP(应用程序)能够快速部署到网络上。
如果把网络看作一部手机,SDN就像Androids系统一样,可以更新升级,也可以在手机上安装很多APP -
SDN的本质是网络软件化,提升网络可编程能力,是一次网络架构的重构,而不是一种新特性、新功能。SDN将比原来网络架构更好、更快、更简单的实现各种功能特性。
-
SDN与OPENFLOW之间的关系是什么
SDN包含OpenFlow,SDN有多种实现方案,在ONF SDN方案中OpenFlow充当南向接口的作用。
南向接口的定义是控制平面与数据平面之间进行交互的协议,南向接口除了可以采用OpenFlow外,还有许多别的协议,如OF-CONFIG、OVSDB、NETCONF、PCEP、XMPP等等
二、SDN解决什么问题
*IP网络生存能力很强,因为其分布式架构
分布式架构:没有中心结点,历史中美国希望遭受核打击之后能够自主恢复网络,这就必须没有中心结点,不允许网络集中控制。
- 分布式架构有很多问题:
- 网络管理十分复杂,举个运营商部署VPN的例子:要配置MPLS、BFD、IGP、BGP、VPNV4、要绑定接口…且需要在每个PE上配置;当新增加一个PE时,还需要回去修改每个涉及到的PE。
- 部署速度跟不上需求,这些协议标准都是在解决各种各样的控制面需求,而这些需求都是需要经过需求提出、定义标准、互通测试、现网设备升级来完成部署,一般要个3~5年才能完成部署。
- 厂家的网络设备都太复杂了。
三、传统网络概念和结构体系
- 传统网络是分布式架构,每台设备都包含独立的控制平面,数据平面。
- 分布式架构指在传统IP网络中,用于协议计算的控制平面和报文转发的数据平面位于同一台设备中。
- 路由计算和拓扑变化后,每台设备都要重新进行路由计算过程,并称为分布式控制过程。
- 在传统IP网络中,每台设备都是独立收集网络信息,独立计算,并且都只关心自己的选路。
- 这种模型的弊端就是所有设备在计算路径时缺乏统一性。
- 传统网络的控制平面、管理平面、数据平面:
控制平面:路由协议(IGP、BGP)
管理平面:管理设备(SNMP)
数据平面:转发表(FIB)
传统网络架构
- 分为控制平面、管理平面、数据平面
- 局限性:
- 流量路径的灵活调整能力不足。
- 网络协议实现复杂,运维难度较大。
- 网络新业务升级速度较慢。
- 传统网络通常部署网管系统作为管理平面,而控制平面和数据平面分布在每个设备上运行。
四、SDN的分类
- 控制与转发分离 (超广义)
- 管理与控制分离 (广义)
SDN主要特征
- 转控分离:网元的控制平面在控制器上,负责协议计算,产生流表;而转发平面只在网络设备上。
- 集中控制:设备网元通过控制器集中管理和下发流表,这样就不需要对设备进行逐一操作,只需要对控制器进行配置即可。
- 开放接口:第三方应用只需要通过控制器提供的开放接口,通过编程方式定义一个新的网络功能,然后在控制器上运行即可。
流表(Flow Table)是OpenFlow中最重要的一张表,它用于指导OpenFlow交换机对收到的数据包进行转发,相当于二层的MAC地址表和三层的路由表。
SDN控制器既不是网管,也不是规划工具:
网管没有实现转控分离:网管只负责管理网络拓扑、监控设备告警和性能、下发配置脚本等操作,但这些仍然需要设备的控制平面负责产生转发表项。
规划工具的目的和控制器不同:规划工具是为了下发一些规划表项,这些表项并非用于路由器转发,是一些为网元控制平面服务的参数,比如IP地址,VLAN等。控制器下发的表项是流表,用于转发器转发数据包。
五、SDN网络架构
由原来分布式控制的网络架构重构为集中控制的网络架构。
SDN网络体系架构的三层模型:
应用层:这一层主要是体现用户意图的各种上层应用程序,此类应用程序称为协同层应用程序,典型的应用包括OSS(Operation support system 运营支撑系统)、Openstack等。传统的IP网络同样具有转发平面、控制平面和管理平面,SDN网络架构也同样包含这3个平面,只是传统的IP网络是分布式控制的,而SDN网络架构下是集中控制的。
-
控制层:控制层是系统的控制中心,负责网络的内部交换路径和边界业务路由的生成,并负责处理网络状态变化事件。
-
转发层:转发层主要由转发器和连接器的线路构成基础转发网络,这一层负责执行用户数据的转发,转发过程中所需要的转发表项是由控制层生成的。
-
北向接口:应用层和控制层通信的接口,应用层通过控制开放的API,控制设备转发功能
-
南向接口:控制层和数据层通信的接口,控制器通过OpenFlow或其他协议下发流表。
————————————————
参考:CSDN博主「AtlanSI」的原创文章
原文链接:https://blog.csdn.net/AtlanSI/article/details/95613225
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2021-10-28 !x的意思以及while(!x)的含义👌🏻