Hi!这里是Tungsten Fabric架构解析内容的第四篇,本文将详细介绍Tungsten Fabric的服务链。
Tungsten Fabric架构解析系列文章,由TF中文社区为你呈现,旨在帮助初入TF社区的朋友答疑解惑。我们将系统介绍TF有哪些特点、如何运作、如何收集/分析/部署、如何编排、如何连接到物理网络等话题。

当网络策略指定两个网络之间的流量,必须流经一个或多个网络服务(例如防火墙、TCP代理、负载平衡器等)时,即形成服务链,这些网络服务也被称为虚拟网络功能(VNF)。

网络服务在虚拟机(VM)中实现,这些虚拟机在Tungsten Fabric中被标识为服务,然后包含在策略中。

Tungsten Fabric支持OpenStack和VMware vCenter环境中的服务链。

下面显示了在两个VM之间实现服务链的路由简化视图(实际的Tungsten Fabric实现中,特殊的“服务”VRF包含在服务链的路由中)。
Tungsten Fabric架构解析丨TF的服务链

当在控制器中将VM配置为服务实例(VNF),并在网络策略中应用该服务实例时,控制器将在“Left”和“Right”端口所在的VRF中安装路由,用于引导流量通过VNF。

当封装路由通过VNF vRouter发布回控制器时,路由将分发给具有Red和Green VRF的其他vRouters,最终结果是一组路由指示Red和Green网络之间的流量通过该服务实例。

当VNF启动时,通过标签“Left”和“Right”标识顺序激活的接口。

VNF必须有一个配置,该配置可根据数据包到达的接口,正确地处理这些数据包。

服务(VNF)有三种类型:

  • Layer 2 Transparent -以太网帧被发送到服务中,其目标MAC地址是原始目的地的MAC地址。这最常用于深度包检测服务。
  • Layer 3 (In Network) - 以太网帧被发送到服务中,其目的地MAC设置为服务的入口接口的MAC,终止L2连接并使用出口MAC作为发送到目的地的帧的源MAC建立新的连接。这用于防火墙,负载平衡器和TCP代理。
  • Layer 3 (NAT) - 类似 In Network,除了服务将源IP地址更改为可从目的地路由的地址(网络地址转换)。

下面说明了各种服务链的场景,并分别进行简要说明。

Tungsten Fabric架构解析丨TF的服务链

基本服务链

在第一个面板中,通过编辑Red和Green网络之间的网络策略来创建简单的服务链,包括服务FW和DPI。这些虚拟机是先前在OpenStack或vCenter中启动的,然后在Tungsten Fabric中配置为具有Red和Green网络中的接口的服务实例。

保存策略并将其应用于两个网络后,所有附加了Red或Green VM的vRouters中的路由都将被修改,以通过服务链发送流量。

例如,在修改策略之前,Red网络中的每个VRF都有一条到绿色网络中每个VM的路由,其中包含运行VM的主机的下一跳,以及控制器指定了主机vRouter的标签。

路由被修改为具有FW服务实例的入口VRF的下一跳,以及为FW Left接口指定的标签。Right FW接口所在的VRF具有指向DPI Left接口的所有Green目的地的路由,并且DPI的Right VRF将包含所有Green目的地的路由以及它们运行的主机的下一跳和原始路由标签。

反向流量的路由,也是类似的处理。

规模化的服务

当单个VM没有处理服务链流量要求的能力时,可以在服务中包含多个相同类型的VM,如第二个面板所示。完成此操作后,使用ECMP在两端服务链的入口接口对流量进行负载均衡,并在不同服务实例之间进行负载均衡。

可以根据需要在Tungsten Fabric中添加新的服务实例,虽然传统的ECMP哈希算法实现通常会在目标数量发生变化时,将大多数会话移动到其他路径,但在Tungsten Fabric中,这仅适用于新流,因为现有路径流量是根据上一篇文章(详解vRouters的体系结构)中描述的流表确定的。

对于必须查看流中的所有数据包的有状态服务,此行为至关重要,否则流将被阻止,从而导致用户会话中断。

通过相同的服务实例,流表还被反向填充,以确保数据流中反向的流量。

互联网草案 https://datatracker.ietf.org/doc/draft-ietf-bess-service-chaining 上包含有关具有状态服务的扩展服务链的更多详细信息。

基于策略指导

有些情况下,不同类型的流量需要传递到不同的服务链中。通过在网络或安全策略中包含多条子策略,可以在Tungsten Fabric中实现。在图中的示例中,端口80和8080上的流量必须通过防火墙(FW-1)和DPI,而所有其他流量仅通过防火墙(FW-2),其可能具有与防火墙FW-1不同的配置。

主-备服务链{#active-standby}

在某些情况下,流量通常需要通过某个特定的服务链,但如果检测到该链存在问题,则应将流量切换为备份。备用服务链位于不太有利的地理位置时,可能会出现这种情况。

在Tungsten Fabric中,主-备机制配置分两步完成。

首先,将路由策略应用于每个服务链的入口,为优选的活动链入口指定较高的本地优先级值。

其次,每个链上都附有一个运行状况检查,可以测试服务实例是否可达,或是否可以到达链另一侧的目的地。如果运行状况检查失败,则撤消到正常活动服务链的路由,并且流量将流经备用服务链。

更多Tungsten Fabric解析文章

第一篇:TF主要特点和用例
第二篇:TF怎么运作
第三篇:详解vRouter体系结构

关注微信:TF中文社区
Tungsten Fabric架构解析丨TF的服务链