龙空技术网

聚焦网络虚拟化,你真的懂SDN吗?(2/2)

蛋蛋团 892

前言:

此时各位老铁们对“pythonsdn”大概比较关切,大家都想要知道一些“pythonsdn”的相关内容。那么小编同时在网络上收集了一些有关“pythonsdn””的相关文章,希望各位老铁们能喜欢,朋友们快快来学习一下吧!

本文为SDN系列第二篇,关注蛋蛋团,有更多精彩!

后台回复“报告”,获取最新报告推送!

文章目录

一、网络基础

1、网络组成三要素

2、网络通信三要素

3、网络设备介绍

4、家用/企业网络架构介绍

5、名词解释

二、SDN介绍

1、传统网络存在的问题

2、SDN定义

3、SDN vs 传统网络

4、SDN案例----谷歌B4

三、拓展:NVF、NV和SDN的关系

四、参考资料

二、SDN介绍

1、传统网络存在的问题

1.1 硬件升级难题

纵观网络设备的诞生,传统网络行业按需发展,即根据暴露的问题然后去研发解决这个问题。同时,网络硬件研发周期长,迭代和升级也远远跟不上软件。

在传统网络行业中,话语权是掌控在网络设备商手上的,如思科、华为、新华三等。底层对于用户来说,是完全封闭的,如同黑盒子般,无法去掌控。

1.2 网管系统的不足

传统的主流网络方案中,一般是配置网管服务器,网络设备(路由器、交换机、防火墙)和网管系统部署SNMP协议,通过网管系统对全网进行可视化拓扑发现、配置管理、链路质量检测。

然而,SNMP作为简单网络管理协议,更多侧重于网络设备的监控。而不是部署和配置。一般仅仅对IDC机房的故障进行告警,无法通过网管服务器去自动配置。

1.3 流量分配不均衡

同时,针对互联网公司的链路流量分配不均衡,也没有一个很好的解决方案,可分配均衡的一大难点,又在于流量的可视化。

常规流控产品只能实现部分带宽分配可视化,常规网管系统只能实现链路故障检测,无法带宽可视化全网流量可视化是带宽智能调配的基础

1.4 网络设备本身问题

网络设备通过“网路协议”进行对话,如OSPF、BGP、MPLS、MSTP等,建立连接会通过三个步骤:邻居建立、信息共享、路径选择。

而由于大部分的网络设备采用“分布式架构”,每次交互都会根据“路径算法(如SPF算法)”选择最优的路径。

但是选择路径时,只能选择最短,不能根据流量等因素加以区分。同时,由于每个交换机都会有自己的控制器,也会消耗一部分的转发性能。

2、SDN定义

SDN:即软件定义网络,是一种网络设计理念

网络设备可以集中式管理,可编程,控制和转发分离。即可定义为SDN

SDN框架由应用层、控制层、转发层(基础设施层)组成,其中应用层提供应用和服务(网管、安全、流控等),控制层统一管理和控制(协议计算、策略下发、链路信息等)、转发层提供硬件设备(交换机、路由器、防火墙)进行数据转发

基于REST API的北向接口负责面向应用,提供网络抽象,使得网络具备软件编程的能力。南向接口主要负责面向基础设施层,主要提供Openflow流。

注意:控制层接口也属于北向接口

3、SDN vs 传统网络

第一条就不阐述了,SDN的基础。

第二条如下图。

第三条主要是SDN可以通过代码写脚本实现转发策略,如C/JAVA/Python。

第四条开放接口也很好理解,基于开放协议的方案是当前SDN实现的主流方案。

第五条网络虚拟化,即虚拟化平台是介于数据网络拓扑和租户控制器之间的中间层,为了实现虚拟化,虚拟化平台需要对物理网络资源进行抽象虚拟化,其中包括拓扑虚拟化,节点资源虚拟化和链路资源虚拟化。

4、SDN案例----谷歌B4

目的:区分高优先级和低优先级流量然后分配带宽。

说明:控制该网络的系统分为三个层次:物理设备层(Switch Hardware)、局部网络控制层(Site Controller)和全局控制层(global)。一个Site就是一各数据中心。第一层的硬件交换机和第二层的Controller在每个数据中心的内部出口的地方都有部署,而第三层的SDN网关和TE服务器则是在一个全局统一的控制器。

详解:

第一层的硬件交换机是Google自己设计的。交换机里面运行了OpenFlow协议,但是它并非仅仅使用了一般的OpenFlow交换机最常使用的ACL表,而是用了TTP(Table Typing Patterns)方式,包括ACL表、路由表、Tunnel表等。但是向上提供的是OpenFlow接口。这些交换机会把BGP/IS-IS协议报文发送到Controller供Controller处理。第二层最为复杂,该层在每个数据中心出口并不是只有一台服务器,而是有一个服务器集群,每个服务器上都运行一个Controller,Google用的Controller是基于分布式的Onix Controller来改造的。一台交换机可以连接到多个Controller,但是只有其中一个处于工作状态(Master),一个控制器控制多台交换机,一个名叫Paxos的程序用来进行leader选举(即选举Master)第三层中,全局的TE服务器通过SDN Gateway从各个数据中心的控制器收集链路信息,从而掌握路径信息,这些路径被以IP-In-IP Tunnel的方式创建而不是TE最经常使用的MPLS Tunnel,通过Gateway到Onix Controller,最终下发到交换机中。当一个新业务数据要开始传输的时候,应用程序会评估该应用所需要耗用的带宽,为它选择一条最优路径(比如负载最轻的但非最短路径即不丢包但时延大),然后把这个应用对应的流通过Controller下发到交换机,从而整体上使链路带宽利用率到达最优。

三、拓展:NVF、NV和SDN的关系

先了解三个概念之间的释义。

NVF:网络设备虚拟化NV:网络虚拟化SDN:软件定义网络

NFV是ETSI(即欧洲电信标准化协会)旨在通过采用通用硬件及在其上流行的虚拟化技术,来取代目前由电信设备厂商给运营商提供的专用硬件设备,从而降低网络建设的昂贵成本支出。NFV的目标就是通用服务器替代专用电信设备(路由器、交换机等)。

NV是云计算发展所必然产生的技术,即针对公有云中快速部署、自动化以及自服务成了必然的需求:

多租户隔离单租户的不同应用之间安全性要保障根据云平台的应用要求配置网络策略,同时迁移时自动转移策略。

SDN中即虚拟化平台是介于数据网络拓扑和租户控制器之间的中间层,为了实现虚拟化,虚拟化平台需要对物理网络资源进行抽象虚拟化,其中包括拓扑虚拟化,节点资源虚拟化和链路资源虚拟化。

总结:SDN = NV > NVF

即云计算的虚拟网络利用SDN的思想,同时,SDN针对是面,而NVF针对的是点,在未来,SDN与NFV都是大势所趋,可能会出现在Controller控制下用通用服务器作为网元形成的网络,既实现了SDN,又是NFV。

四、参考资源

1、51CTO课程————《SDN从入门到精通》

2、《Google数据中心B4网络具体实现》

3、漫谈SDN,NFV与NV

标签: #pythonsdn