3.3.2 服务链
网络服务可能由源端、目的端和一组中间互连 VNF构成,这些 VNF用于处理从源端到目的端的数据流。我们通常称其为服务链(中央)。VNF的这种链接可能产生于许多场景中,例如,基于网络服务 [ 该服务根据虚拟化网络功能转发图(VNF-FG,VirtualizedNetworkFunctionForwardingGraph)进行设计 ] 的链接、基于用户策略/服务的链接。可以在服务链中定义若干种 VNF,服务链包括 3.1.3节中定义的主机和中间盒VNF。
中间盒可以改变数据流量。例如,防火墙可以丢弃数据分组,或者应用网关可以根据流量类型更改路径。NAT功能可以对数据分组进行修改。因此,对于每个数据分组来说,服务链取代了用于实现互联功能的传统布线,但它不一定能支配所有 VF上的端到端流量。
服务链不是一种新概念。多年来,我们一直将服务提供商网络中的功能联系在一起,现有架构面临的挑战是这些链是静态的,并由设备间安装的物理线缆来决定。当前的关键区别是这些链可以在软件中进行定义,并使用 NFVI内的 SDN功能来实现。它支持服务的按需部署,在这种部署场景中,需要实现多个功能实体之间互联以提供端到端服务。例如,考虑将安全服务引入企业VPN或将 VPN扩展到云服务提供商。当前,存在着 AT&TFlexware和 Netbond服务支持的两项功能。
图 3.8描绘了可以通过一系列物理功能来定义的服务链实例。
图3.8物理服务链
当这些功能成为 NFVI上的虚拟功能(VF)时,它们之间的连接可以在软件中进行定义,并由 SDN基础设施进行控制。NFVI上的服务链如图 3.9所示,我们将在第 4章中对其进行详细介绍。
图3.9NFVI上的服务链
服务链需要功能实体之间的连接,这些功能实体可以分布在不同网段和不同服务器上,甚至可以位于不同物理位置。为了在功能之间提供下一跳连接,需要用到叠加网络。传统的以太网、MPLS和 IP网络提供了服务提供商网络的基础单层网络,它可以基于静态配置和IP静态寻址构建。为了将两个或多个 VNF连接在一起,我们需要使用可以实时定义的 VNF虚拟地址,以及一种能够在单层网络顶部来引导或封装流量的方法。这有助于将网络服务与单层网络基础架构分离开来。传统上,叠加可以采用通用路由封装(GRE,GenericRoutingEncapsulation)或加密 IPSec隧道完成,但这些需要显式配置,一般通过 CLI代码来实现。像 MPLS这样的 VPN技术提供了一种支持采用诸如 BGP这样的路由协议进行隧道传输的方法,但即使这样,传统上仍需要对这些协议进行显式配置。在 SDN环境中,这需要通过集中式 SDN控制器进行实时实例化。MPLS仍然是一种极富吸引力的叠加技术,因为它依赖于动态路由协议,该协议充分考虑到弹性架构的 创建问题。VNF可以成对进行部署,具有双主机或主—备配置。在这种配置中,我们可以采用快速恢复和分段路由(Segment Routing)技术。