专栏首页Tungsten Fabric中文社区Tungsten Fabric的服务链
原创

Tungsten Fabric的服务链

Tungsten Fabric项目是一个开源项目协议,它基于标准协议开发,并且提供网络虚拟化和网络安全所必需的所有组件。项目的组件包括:SDN控制器,虚拟路由器,分析引擎,北向API的发布,硬件集成功能,云编排软件和广泛的REST API。

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

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

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

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

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

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

当VNF启动时,通过标签“Left”和“Right”标识顺序激活的接口。 VNF必须有一个配置,该配置可根据数据包到达的接口,正确地处理这些数据包。 服务(VNF)有三种类型:

lLayer 2 Transparent -以太网帧被发送到服务中,其目标MAC地址是原始目的地的MAC地址。这最常用于深度包检测服务。

lLayer 3 (In Network) - 以太网帧被发送到服务中,其目的地MAC设置为服务的入口接口的MAC,终止L2连接并使用出口MAC作为发送到目的地的帧的源MAC建立新的连接。这用于防火墙,负载平衡器和TCP代理。

lLayer 3 (NAT) - 类似 In Network,除了服务将源IP地址更改为可从目的地路由的地址(网络地址转换)。

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

基本服务链

在第一个面板中,通过编辑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体系结构

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 细说TF服务链丨如何配置服务链的高级功能

    在之前的文章中,我谈到了什么是服务链,以及如何配置基本的服务链。让我们回顾一下服务链的构建方式:

    Tungsten Fabric
  • 揭秘LOL背后的IT基础架构丨产品而非服务

    这个长系列的文章,探讨并记录了Riot Games如何开发、部署和运营后端基础架构的历程。我们是Riot 开发体验团队的软件架构师兼产品经理Nicolas Ti...

    Tungsten Fabric
  • 揭秘LOL背后的IT基础架构丨微服务生态系统

    欢迎阅读本系列文章,我叫Maxfield Stewart。本文将深入探讨微服务成为Riot容器平台上实时运行的应用程序的五个关键需求。Riot的每项微服务都必须...

    Tungsten Fabric
  • 防火墙相关概念讲解

    包过滤是防火墙的基本功能,包过滤防火墙本质上是一个特殊的路由器,通过检查数据的五元组(源IP地址、目的IP地址、协议号、源端口、目的端口)来丢弃一部分网络流量,...

    java达人
  • 我们的产品架构

    本文是我在中生代技术群分享的话题《创业一年经历的技术风雨》中的第一部分《产品架构与技术选型》的第一部分。 整体架构 我们的产品代号为Mort(这个代号来自电影...

    张逸
  • 网络层路由选择协议(RIP&OSF)

    SuperHeroes
  • 浅谈分布式事务

    现今互联网界,分布式系统和微服务架构盛行。一个简单操作,在服务端非常可能是由多个服务和数据库实例协同完成的。在一致性要求较高的场景下,多个独立操作之间的一致性问...

    CSDN技术头条
  • 聊聊分布式事务

    这次使用分布式事务框架过程中了学习了一些分布式事务知识,所以本文我们就来聊聊分布式事务那些事。首先我们先回顾下什么是事务。

    andyxh
  • 接受“不完美”:分布式事务学习总结

    作为一个前端专业的人来说,对于事务的理解,一直停留在“要么都成功,要么都不成功”的小白阶段。既然自己将2018年定义为”深入理解“的一年,那么就从深入理解事务开...

    司想君
  • 英国Monzo银行如何用K8s管理1600个微服务?

    英国数字银行Monzo两位资深工程师Matt Heath和Suhail Patel在伦敦一场研讨会上,分享了如何管理1600个后端微服务的经验。这间设立超过5...

    灵雀云

扫码关注云+社区

领取腾讯云代金券