网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器

云概述

云计算涉及通过网络连接的大量计算机,这些网络可以物理地位于任何地方。提供商严重依赖虚拟化来提供其云计算服务。云计算可以通过更有效地使用资源来降低运营成本。云计算解决了各种数据管理问题:

  • 支持随时随地访问组织数据
  • 通过仅订阅所需的服务来简化组织的IT运营
  • 消除或减少对现场IT设备,维护和管理的需求
  • 降低设备,能源,物理工厂要求和人员培训需求的成本
  • 快速响应不断增长的数据量要求

云计算及其“按需付费”模型使组织可以将计算和存储费用更多地视为一种实用工具,而不必投资基础架构。资本支出转换为运营支出。

云服务

云服务有多种选择,可以满足客户需求。美国国家标准技术研究院(NIST)在其特殊出版物800-145中定义的三种主要云计算服务如下:

  • 软件即服务(SaaS) -云提供商负责访问通过Internet交付的应用程序和服务,例如电子邮件,通信和Office 365。除了有限的特定于用户的应用程序设置外,用户不管理云服务的任何方面。用户只需要提供他们的数据。
  • 平台即服务(PaaS) -云提供商负责向用户提供对用于交付应用程序的开发工具和服务的访问权限。这些用户通常是程序员,并且可以控制云提供商的应用程序托管环境的配置设置。
  • 基础架构即服务(IaaS) -云提供商负责为IT经理提供对网络设备,虚拟化网络服务和支持网络基础架构的访问权限。使用此云服务使IT经理可以部署和运行软件代码,其中包括操作系统和应用程序。

云服务提供商已经扩展了该模型,从而也为每个云计算服务(ITaaS)提供了IT支持,如图所示。对于企业而言,ITaaS可以扩展网络的功能,而无需投资新的基础架构,培训新的人员或许可新的软件。这些服务可按需提供,并且经济地交付到世界上任何地方的任何设备,而不会影响安全性或功能。

云模型

  • 公有云 -公有云中提供的基于云的应用程序和服务可用于一般人群。服务可以是免费的,也可以按使用付费的模式提供,例如为在线存储付费。公共云使用Internet提供服务。
  • 私有云 -私有云中提供的基于云的应用程序和服务旨在用于特定组织或实体,例如*。可以使用组织的专用网络来建立私有云,尽管构建和维护成本可能很高。私有云还可以由具有严格访问安全性的外部组织来管理。
  • 混合云 -混合云由两个或多个云组成(例如:部分私有,部分公共),其中每个部分仍然是一个单独的对象,但是两者都使用单个架构连接。混合云上的个人将能够基于用户访问权限对各种服务进行访问。
  • 社区云 -创建社区云以供特定社区专用。公共云和社区云之间的差异是为社区定制的功能需求。例如,医疗保健组织必须遵守要求特殊认证和机密性的政策和法律(例如,HIPAA)。

云计算与数据中心

数据中心和云计算的术语经常被错误地使用。这些是数据中心和云计算的正确定义:

  • 数据中心:通常是由内部IT部门运营或租用的异地数据存储和处理设施。
  • 云计算:通常是一种场外服务,可按需访问共享的可配置计算资源池。可以以最少的管理工作量快速配置和释放这些资源。
    数据中心是满足云计算服务的计算,网络和存储需求的物理设施。云服务提供商使用数据中心托管其云服务和基于云的资源。

数据中心可以占用建筑物的一个房间,一个或多个楼层或整个建筑物。数据中心的构建和维护通常非常昂贵。因此,只有大型组织才能使用私有数据中心来存储其数据并向用户提供服务。负担不起维护自己的私有数据中心的小型组织可以通过从云中的大型数据中心组织租用服务器和存储服务来降低总体拥有成本。

云计算与虚拟化

术语“云计算”和“虚拟化”通常可以互换使用;但是,它们的含义不同。虚拟化是云计算的基础。没有它,就不可能实现云计算,因为它是最广泛实施的。

虚拟化将操作系统(OS)与硬件分开。各种提供商都提供了可以根据需要动态配置服务器的虚拟云服务。例如,Amazon Web Services(AWS)为客户提供了一种简单的方式来动态配置其所需的计算资源。这些服务器虚拟化实例是按需创建的。如图所示,网络管理员可以从AWS管理控制台部署各种服务,包括虚拟机,Web应用程序,虚拟服务器以及与IoT设备的连接。
网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器

专用服务器

要完全理解虚拟化,首先必须了解服务器技术的一些历史。历史上,企业服务器由安装在特定硬件上的服务器操作系统(例如Windows Server或Linux Server)组成,如图所示。服务器的所有RAM,处理能力和硬盘驱动器空间都专用于所提供的服务(例如,Web,电子邮件服务等)。
网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器
此配置的主要问题是,当组件发生故障时,此服务器提供的服务将不可用。这被称为单点故障。另一个问题是专用服务器未得到充分利用。专用服务器通常长时间闲置,直到需要交付它们提供的特定服务为止。这些服务器浪费了能源,占用的空间比所提供的服务数量所保证的要多。这称为服务器蔓延。

服务器虚拟化

服务器虚拟化利用空闲资源并整合了所需服务器的数量。这也允许在单个硬件平台上存在多个操作系统。

例如,在图中,之前的八个专用服务器已使用管理程序整合为两个服务器,以支持操作系统的多个虚拟实例。
网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器
虚拟化的使用通常包括冗余以防止单点故障。冗余可以以不同的方式实现。如果虚拟机管理程序发生故障,则可以在另一个虚拟机管理程序上重新启动VM。同样,同一台VM可以同时在两个虚拟机管理程序上运行,在它们之间复制RAM和CPU指令。如果一个虚拟机监控程序发生故障,则VM会继续在另一虚拟机监控程序上运行。在VM上运行的服务也是虚拟的,可以根据需要动态安装或卸载。

系统管理程序是在物理硬件之上添加抽象层的程序,固件或硬件。抽象层用于创建虚拟机,这些虚拟机可以访问物理机的所有硬件,例如CPU,内存,磁盘控制器和NIC。这些虚拟机均运行完整的独立操作系统。通过虚拟化,企业现在可以合并所需的服务器数量。例如,将100台物理服务器整合为使用管理程序的10台物理服务器之上的虚拟机的情况并不少见。

虚拟化的优势

虚拟化的一大优势是总体上降低了成本:

  • 所需设备更少 -虚拟化支持服务器整合,这需要更少的物理服务器,更少的网络设备和更少的支持基础架构。这也意味着更低的维护成本。
  • 消耗的能源更少 -整合服务器可以降低每月的电源和散热成本。减少的消耗量有助于企业实现较小的碳足迹。
  • 所需空间更少 -通过虚拟化进行服务器整合可减少数据中心的总体占地面积。更少的服务器,网络设备和机架减少了所需的占地面积。

虚拟化的其他好处:

  • 简化原型制作 -在隔离的网络上运行的独立实验室可以快速创建,用于测试和原型化网络部署。如果出错,管理员可以简单地恢复到以前的版本。测试环境可以在线,但与最终用户隔离。测试完成后,可以将服务器和系统部署到最终用户。
  • 更快的服务器配置 -创建虚拟服务器比配置物理服务器快得多。
    增加服务器正常运行时间 -大多数服务器虚拟化平台现在提供高级冗余容错功能,例如实时迁移,存储迁移,高可用性和分布式资源调度。
  • 改进的灾难恢复 -虚拟化提供了先进的业务连续性解决方案。它提供了硬件抽象功能,因此恢复站点不再需要具有与生产环境中的硬件相同的硬件。大多数企业服务器虚拟化平台还具有可在灾难发生之前帮助测试和自动化故障转移的软件。
  • 传统支持 -虚拟化可以延长操作系统和应用程序的寿命,为组织提供更多时间迁移到较新的解决方案。

抽象层

为了帮助解释虚拟化的工作原理,它有助于在计算机体系结构中使用抽象层。计算机系统由以下抽象层组成,如图所示:

  • 服务
  • 操作系统
  • 固件
  • 硬件
    网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器
    在这些抽象层的每一层,某些类型的编程代码都用作下一层与上一层之间的接口。例如,C编程语言通常用于对访问硬件的固件进行编程。

图中显示了一个虚拟化示例。系统管理程序安装在固件和操作系统之间。系统管理程序可以支持多个操作系统实例。
网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器

二类管理程序

二类虚拟机管理程序是用于创建和运行VM实例的软件。系统管理程序在其上支持一个或多个VM的计算机是一台主机。第2类管理程序也称为托管管理程序。这是因为系统管理程序安装在现有OS(例如macOS,Windows或Linux)的顶部。然后,将一个或多个其他OS实例安装在虚拟机管理程序的顶部,如图所示。
网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器
Type 2虚拟机管理程序在消费者和尝试虚拟化的组织中非常受欢迎。常见的2类管理程序包括:

  • VMware workstation
  • Oracle VM

一类管理程序

类型1管理程序也称为“裸机”方法,因为管理程序直接安装在硬件上。类型1虚拟机管理程序通常用于企业服务器和数据中心网络设备。

对于类型1虚拟机管理程序,虚拟机管理程序直接安装在服务器或网络硬件上。然后,在虚拟机管理程序上安装OS实例,如图所示。类型1虚拟机管理程序可以直接访问硬件资源。因此,它们比托管体系结构更有效。Type 1虚拟机管理程序改善了可伸缩性,性能和健壮性。
网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器

在虚拟机监控程序上安装VM

安装类型1虚拟机管理程序并重新引导服务器后,仅显示基本信息,例如OS版本,RAM数量和IP地址。无法从该屏幕创建OS实例。第1类管理程序需要一个“管理控制台”来管理管理程序。管理软件用于使用同一管理程序管理多个服务器。管理控制台可以自动整合服务器,并根据需要打开或关闭服务器电源。

例如,假设图中的服务器1的资源不足。为了使更多资源可用,网络管理员使用管理控制台将Windows实例移至服务器2上的管理程序。还可以使用将自动触发移动的阈值对管理控制台进行编程。
网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器
管理控制台可从硬件故障中恢复。如果服务器组件发生故障,管理控制台会自动将VM移至另一台服务器。图中显示了Cisco统一计算系统(UCS)管理器的管理控制台。Cisco UCS Manager控制多个服务器并管理数千个VM的资源。
网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器
一些管理控制台还允许服务器过度分配。过度分配是指安装多个OS实例,但是它们的内存分配超过了服务器拥有的内存总量。例如,一台服务器具有16 GB的RAM,但是管理员创建了四个OS实例,每个实例分配了10 GB的RAM。这种类型的过度分配是一种常见的做法,因为所有四个OS实例很少在任何时刻都需要完整的10 GB RAM。

网络虚拟化的复杂性

服务器虚拟化对服务器用户隐藏了服务器资源,例如物理服务器,处理器和操作系统的数量和身份。如果数据中心正在使用传统的网络体系结构,则这种做法可能会产生问题。

例如,必须将VM使用的虚拟LAN(VLAN)分配给与运行管理程序的物理服务器相同的交换机端口。但是,VM是可移动的,并且网络管理员必须能够添加,删除和更改网络资源和配置文件。对于传统的网络交换机,此过程将是手动的,并且非常耗时。

另一个问题是流量与传统的客户端-服务器模型有很大的不同。通常,数据中心在虚拟服务器(例如,图中所示的UCS服务器)之间交换大量流量。这些流量称为东西向流量,其位置和强度会随时间而变化。南北流量发生在分布层和核心层之间,通常是发往异地位置的流量,例如另一个数据中心,其他云提供商或互联网。

该图说明了在虚拟服务器之间交换的数据中心中的南北向和东西向流量。该图显示了分支拓扑。顶部是标记为异地的云。从异地分支是在核心层的两个防火墙路由器。路由器在分布层通过冗余链路分支到两个Nexus交换机。异地,路由器和交换机被标记为南北流量。从分布层交换机分支出的是在接入层具有冗余链路的四个Nexus交换机。每个访问层交换机都有三个链接,分别连接到独立的UCS服务器。在拓扑的底部,水平向左和向右移动的箭头标记为东西向交通。
网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器
动态变化的流量需要灵活的网络资源管理方法。现有的网络基础架构可以通过使用单个流的服务质量(QoS)和安全级别配置来响应与流管理有关的变化需求。但是,在使用多供应商设备的大型企业中,每次启用新的VM时,必要的重新配置都会非常耗时。

网络基础架构也可以从虚拟化中受益。网络功能可以虚拟化。每个网络设备都可以划分为多个作为独立设备运行的虚拟设备。示例包括子接口,虚拟接口,VLAN和路由表。虚拟路由称为虚拟路由和转发(VRF)。

网络如何虚拟化?

软件定义的网络(SDN)

控制平面和数据平面

网络设备包含以下平面:

  • 控制平面 -通常被视为设备的大脑。它用于制定转发决策。控制平面包含第2层和第3层路由转发机制,例如路由协议邻居表和拓扑表,IPv4和IPv6路由表,STP和ARP表。发送到控制平面的信息由CPU处理。
  • 数据平面 -也称为转发平面,该平面通常是连接设备上各种网络端口的交换结构。每个设备的数据平面用于转发流量。路由器和交换机使用来自控制平面的信息将传入流量转发出适当的出口接口。数据平面中的信息通常由特殊的数据平面处理器处理,而不会涉及CPU。

第3层交换机上的本地控制与SDN中的集中控制器之间的区别:

  • 该图说明了思科快速转发(CEF)如何使用控制平面和数据平面来处理数据包。
    CEF是一项高级的第3层IP交换技术​​,使数据包转发可以在数据平面进行而无需咨询控制平面。在CEF中,控制平面的路由表会在数据平面中预填充CEF转发信息库(FIB)表。控制平面的ARP表会预先填充邻接表。然后,数据平面根据FIB和邻接表中包含的信息直接转发数据包,而无需在控制平面中查询该信息。
    网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器
  • SDN基本上是控制平面和数据平面的分离。如图所示,控制平面功能已从每个设备中删除,并由集中控制器执行。集中控制器将控制平面功能传达给每个设备。现在,每个设备都可以专注于转发数据,而集中控制器则可以管理数据流,提高安全性并提供其他服务。
    网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器

网络虚拟化技术

十多年前,VMware开发了一种虚拟化技术,使主机操作系统能够支持一个或多个客户端操作系统。现在,大多数虚拟化技术都基于该技术。专用服务器到虚拟服务器的转换已被接受,并正在数据中心和企业网络中快速实施。

已经开发出两种主要的网络体系结构来支持网络虚拟化:

  • 软件定义网络(SDN) -虚拟化网络的网络体系结构,为网络管理和管理提供了一种新方法,旨在简化和简化管理过程。

  • 思科以应用为中心的基础架构(ACI) -一种专用于集成云计算和数据中心管理的硬件解决方案。
    SDN的组件可能包括以下内容:

  • OpenFlow-这种方法是由斯坦福大学开发的,用于管理路由器,交换机,无线接入点和控制器之间的流量。OpenFlow协议是构建SDN解决方案的基本要素。搜索OpenFlow和开放网络基金会以获取更多信息。

  • OpenStack-这种方法是一种虚拟化和编排平台,旨在构建可扩展的云环境并提供IaaS解决方案。OpenStack通常与Cisco ACI一起使用。网络中的编排是指自动配置网络组件(例如服务器,存储设备,交换机,路由器和应用程序)的过程。搜索OpenStack以获取更多信息。

  • 其他组件 -其他组件包括路由系统接口(I2RS),大量链接的透明互连(TRILL),Cisco FabricPath(FP)和IEEE 802.1aq最短路径桥接(SPB)。

传统和SDN架构

在传统的路由器或交换机体系结构中,控制平面和数据平面功能发生在同一设备中。路由决策和数据包转发是设备操作系统的责任。在SDN中,控制平面的管理已移至集中式SDN控制器。该图比较了传统架构和SDN架构。
网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器
SDN控制器是一个逻辑实体,使网络管理员可以管理和指示交换机和路由器的数据平面应如何处理网络流量。它协调,中介并促进了应用程序和网络元素之间的通信。

完整的SDN框架如图所示。请注意在SDN框架内使用应用程序编程接口(API)。API是一组标准化的请求,它们定义了应用程序从另一个应用程序请求服务的正确方式。SDN控制器使用北向API与上游应用程序进行通信。这些API可帮助网络管理员调整流量并部署服务。SDN控制器还使用向南的API定义下游交换机和路由器上数据平面的行为。OpenFlow是最初广泛使用的南向API。
网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器

控制器

SDN控制器和操作

SDN控制器定义集中式控制平面与各个路由器和交换机上的数据平面之间的数据流。

每个通过网络的流都必须首先获得SDN控制器的许可,该SDN控制器根据网络策略验证是否允许通信。如果控制器允许流,它将为该流计算一条路由,并在该路径上的每个交换机中为该流添加一个条目。

所有复杂功能均由控制器执行。控制器填充流表。交换机管理流表。在图中,SDN控制器使用OpenFlow协议与与OpenFlow兼容的交换机进行通信。该协议使用传输层安全性(TLS)来通过网络安全地发送控制平面通信。每个OpenFlow交换机都连接到其他OpenFlow交换机。它们还可以连接到作为包流一部分的最终用户设备。
网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器
在每个交换机中,使用以硬件或固件实现的一系列表来管理通过交换机的数据包流。对于交换机而言,流是与流表中的特定条目匹配的一系列数据包。

上图中显示的三种表类型如下:

  • 流表 -此表将传入的数据包与特定流进行匹配,并指定要在数据包上执行的功能。可能有多个以流水线方式运行的流表。
  • 组表 -流表可以将流定向到组表,这可能会触发影响一个或多个流的各种操作
  • 计量表 -该表触发流上与性能相关的各种操作,包括对流量进行速率限制的能力。

ACI的核心组件

实际上,很少有组织愿意使用SDN工具对网络进行编程。但是,大多数组织希望实现网络自动化,加速应用程序部署以及调整其IT基础架构以更好地满足业务需求。思科开发了以应用程序为中心的基础架构(ACI),以实现比早期SDN方法更先进,更创新的方式。

思科ACI是用于集成云计算和数据中心管理的硬件解决方案。在较高级别上,网络的策略元素已从数据平面中删除。这简化了数据中心网络的创建方式。

这些是ACI体系结构的三个核心组件:

  • 应用程序网络配置文件(ANP) -ANP是端点组(EPG),它们的连接以及定义这些连接的策略的集合。图中显示的EPG,例如VLAN,Web服务和应用程序,仅是示例。ANP通常要复杂得多。
  • 应用程序策略基础结构控制器(APIC) -APIC被认为是ACI体系结构的大脑。APIC是集中式软件控制器,用于管理和操作可伸缩的ACI集群结构。它旨在实现可编程性和集中管理。它将应用程序策略转换为网络编程。
  • Cisco Nexus 9000系列交换机 -这些交换机提供了应用程序感知的交换结构,并与APIC一起管理虚拟和物理网络基础架构。
    网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器

脊叶拓扑

如图所示,Cisco ACI架构由APIC和使用两层书脊叶拓扑的Cisco Nexus 9000系列交换机组成。叶片开关始终附在棘刺上,但它们从未相互附接。类似地,主干交换机仅连接到分支交换机和核心交换机(未显示)。在这种两层拓扑结构中,一切都是一跳。

网络中的Cisco APIC和所有其他设备物理连接到叶子交换机。

与SDN相比,APIC控制器不会直接操纵数据路径。相反,APIC集中了策略定义,并根据定义的策略对叶交换机进行编程,以转发流量。
网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器

SDN类型

1. 基于控制器的SDN
在这种SDN中,设备可由设备本身或网络中的服务器上运行的应用程序编程,如图所示。Cisco OnePK是基于设备的SDN的示例。它使程序员能够使用C和Java与Python来构建应用程序,以与Cisco设备集成并与之交互。
2. 基于控制器的SDN
如图所示,这种类型的SDN使用一个集中控制器,该控制器了解网络中的所有设备。这些应用程序可以与负责管理设备并操纵整个网络流量的控制器进行交互。思科Open SDN控制器是OpenDaylight的商业发行版。
网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器
3. 基于策略的SDN
这种SDN类似于基于控制器的SDN,其中集中式控制器具有网络中所有设备的视图,如图所示。基于策略的SDN包括一个在更高抽象层运行的附加策略层。它使用内置的应用程序,这些应用程序通过指导的工作流程和用户友好的GUI自动执行高级配置任务。不需要编程技能。Cisco APIC-EM是此类SDN的示例。
网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器

APIC-EM功能

每种类型的SDN都有其自身的功能和优势。基于策略的SDN最强大,它提供了一种简单的机制来控制和管理整个网络中的策略。

Cisco APIC-EM是基于策略的SDN的示例。Cisco APIC-EM提供了用于网络管理的单一接口,包括:

  • 发现和访问设备和主机清单,
  • 查看拓扑(如图所示),
  • 追踪端点之间的路径,以及
  • 制定政策。
    网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器

APIC-EM路径跟踪

APIC-EM路径跟踪工具使管理员可以轻松地可视化流量并发现任何冲突,重复或阴影的ACL条目。该工具检查两个末端节点之间路径上的特定ACL,以显示任何潜在问题。您可以看到该路径上任何ACL允许或拒绝您的流量的位置,如图所示。请注意,Branch-Router2如何允许所有流量。现在,网络管理员可以根据需要进行调整,以更好地过滤流量。
网络虚拟化-云计算-虚拟网络基础架构-软件定义网络(SDN)-控制器