学习
实践
活动
专区
工具
TVP
写文章
专栏首页Tungsten Fabric中文社区三个理由告诉你,为什么在TF中必须使用MPLSoUDP
原创

三个理由告诉你,为什么在TF中必须使用MPLSoUDP

Tungsten Fabric大量使用了overlay,它的整个体系结构基于利用overlay来提供L2/L3虚拟化,并使底层IP fabric对虚拟工作负载透明。

Tungsten Fabric支持三种封装类型,分别是:

1. MPLSoGRE

2. MPLSoUDP

3. VXLAN

其中,MPLSoGRE 和 MPLSoUDP用于L3虚拟化,而VXLAN用于L2虚拟化。

如果我们计划实施L2用例,那么没什么可考虑的……VXLAN就对了!

不过,在L3用例中出现了一个问题:选择基于GRE的MPLS?还是基于UDP的MPLS?

正如行业中常见的那样,答案可能是“取决于”某些具体情况。不过,这里的答案却十分明确——必须是MPLSoUDP!

在理解为什么选择MPLSoUDP之前,让我们先来看看何时需要使用MPLSoGRE。

答案同样是不言而喻的,当我们不能使用MPLSoUDP时——这可能是因为我们的SDN GW运行的软件版本不支持MPLSoUDP——我们使用MPLSoGRE。

除了这种情况以外,建议都使用MPLSoUDP!

为了理解为什么MPLSoUDP更好,我们需要回顾一下如何构建MPLSoUDP数据包。

首先将原始raw数据包添加一个mpls标签。该标签表示服务标签,并且是contrail/sdn_gw将数据包与正确的virtual_network/vrf相关联的方式。

接下来,添加UDP (+ IP)标头。UDP标头包括源端口和目标端口。源端口是对内部数据包执行哈希操作的结果。结果是,该字段将会出现很大变化。源端口带来了巨大的熵!

而这种熵就是我们选择MPLSoUDP的原因!

使用MPLSoUDP可以带来不同级别的优势。

第一个好处是在SDN GW上体现的。假设你在SDN GW和计算节点之间有一条MPLSoUDP隧道。在两个端点之间有多个ECMP路径。

选择一个ecmp路径到另一个路径是基于对数据包执行的哈希函数。为了获得更好的分发,我们需要很高的熵,并且正如我们所看到的,MPLSoUDP已经为我们提供好了!

让我们看一个有关SN GW的示例:

我们看到,有2个ecmp数据包流向计算节点。使用MPLSoUDP将使我们能够以更平衡的方式在两个路径之间分配数据包。

如果我们查看从计算节点发送的数据包,则可以看到使用MPLSoUDP的另一个好处。

考虑到接口vhost0是bod接口(将2个物理NIC连接在一起)的设置,那么我要说的就是正确的。

在这种场景下,计算节点被多宿主到了两个叶子节点(运行evpn + vxlan的IP Fabric,使用esi处理多宿主CE)上。结果是,当数据包离开服务器时,将通过绑定的2个链接之一发送数据包。

现在,基于绑定配置,根据哈希在两个链接之间进行选择。同样,使用MPLSoUDP会更好,因为它带来更多的熵,这意味着更好的分发。在所有bond成员之间平均分配流量,可能会导致流量在整个fabric中分配得很好!

最后一条需要关注的MPLSoUDP好处,在于dpdk节点上的性能。要理解这一点,我们至少需要对dpdk vRouter的某些方面如何工作,在一个非常高的层级上有所了解。

为DPDK vRouter分配了一定数量的核心(基于配置参数)。假设为vRouter分配了4个内核。结果就是,通过ethdev,dpdk vRouter会在物理NIC(vif0/0)上对4个队列进行编程。然后,我们就在vRouter核心和NIC队列之间建立了1:1映射。

对于来自服务器外部的数据包(物理网卡接收数据包),vRouter核心充当轮询核心(vRouter核心可以执行其它角色,处理核心;只是在这里我们对dpdk vRouter的详细理解不感兴趣,因此我们以后讨论这个问题)。

这里重要的是,充当轮询核心的每个vRouter核心都会不断检查其分配的物理网卡是否有要轮询的数据包。在进行轮询操作之前,物理网卡首先在线路上接收到数据包,然后将该数据包“发送”到一个队列中。为此,物理NIC在数据包上执行哈希操作。

到这里,事情应该很清楚了。由于涉及哈希,MPLSoUDP确保我们可以在NIC队列上更好地分配流量。在NIC队列上更好地分配数据包,意味着可以在vRouter核心之间更好地分配数据包(请记住,nic队列和vRouter核心之间存在1:1映射关系)。

为什么在转发核心之间尽可能平衡地分配流量很重要?

每个转发核心最多可以处理X个PPS(每秒数据包)。PPS间接意味着吞吐量。通常来说,PPS越高,吞吐量越高。

让我们举个例子。例如每个转发核心最多可处理2M PPS。这意味着vRouter最多可以处理8M PPS。

现在,假设使用MPLSoGRE。这种封装不能保证有效的流量分发。这就意味着,可能会将流量仅发送到4个转发核心中的2个(或者至少大多数流量可能主要落在4个转发核心中的2个上)。如果是这样,vRouter的性能大约为4M PPS(约占总容量的50%)。而如果使用MPLSoUDP,流量将更好地分布在所有4个转发核心上。这意味着vRouter总共可以达到8M PPS。换句话说,性能要好得多!

总结:网关更好平衡,计算节点更好平衡,dpdk vRouter内部更好平衡。除非你的SDN GW仅支持MPLSoGRE,否则没有理由不适用MPLSoUDP,因为它只有好处!


作者:Umberto Manferdini 译者:TF编译组

原文链接:https://iosonounrouter.wordpress.com/2020/09/11/why-we-must-use-mplsoudp-with-contrail/(注:原文为Contrail,在本系列文章中,Tungsten Fabric的功能与Contrail一致)


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

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

登录 后参与评论
0 条评论

相关文章

  • 三个理由告诉你,为什么到今天在元宇宙中购买虚拟地产还为时不晚

      你现在可能已经厌倦了听到“metaverse”(元宇宙)这个词,但但是当如此巨大而令人兴奋的东西捕捉到数字世界的想象力时,有时候,你只需要顺其自然就好。元宇...

    Metaverse元宇宙
  • 配置SDN网关:关于VRF、本地路由及inet-vpn路由

    上次谈到SDN网关及其在Tungsten Fabric集群中的作用,简单地说,SDN网关是Tungsten Fabric和网络其它部分之间的“胶水”。

    Tungsten Fabric
  • 如何设置TF SDN网关,并与Tungsten Fabric协同工作

    Tungsten Fabric并不是“vanilla”(意为完美的)Openstack与OVS。

    Tungsten Fabric
  • TF虚拟网络流量排错:在正确的时刻使用正确的工具

    对于虚拟网络来说,也依然如此!即使是在Tungsten Fabric集群内部,按理说,我们在故障排除环节的第一步,也会进行某种流量嗅探或流量识别。

    Tungsten Fabric
  • Tungsten Fabric如何实现路由的快速收敛?收敛速度有多快?

    在发布R2008版本之前,Tungsten Fabric无法同时提供南北向和东西向流量的快速收敛。

    Tungsten Fabric
  • pps数据无法回答“哪种SDN解决方案更好”,你需要考虑这些

    最近我参与了一个项目,我们在Tungsten Fabric(注:原文为Contrail,本文将以功能一致的Tungsten Fabric替换)集群中部署了虚拟移...

    Tungsten Fabric
  • 为OpenStack和K8s集群提供无缝虚拟网络

    现实情况下,可能会发生虚拟机和容器需要相互“交谈”的情况。如果是这样,我们需要以某种方式实现两个独立集群之间的通信。

    Tungsten Fabric
  • TF实战Q&A丨你不理解透,出了问题都不知道怎么弄

    在TF中文社区,爱折腾的“实战派”们经常探讨有关SDN和Tungsten Fabric的各种问题,我们将其中的精华部分整理出来,形成 “ TF Q&A ” 栏目...

    Tungsten Fabric
  • 一文带你入门Tensorflow

    导语:此文编译自FCC(FreeCodeCamp),作者为Déborah Mesquita,该作者利用神经网络和TensorFlow进行了机器文本分类,并提出了...

    IT派
  • 手把手教你自制编程AI:训练2小时,RNN就能写自己的代码

    我们都知道,神经网络下围棋能赢柯洁、读X光照片好过医生、就连文本翻译上也快超过人类了……其实在写代码方面,神经网络也丝毫不落下风……用Linux源代码训练2小时...

    AI科技大本营
  • 代码实例:如何使用 Google 近日推出的 TensorFlow 2.0 Preview

    去年8月13日,谷歌宣布 “TensorFlow 2.0 is coming”, 最近几天,谷歌 TensorFlow 团队刚刚发布了 TensorFlow ...

    杨熹
  • 上线俩月,TensorFlow 2.0被吐槽太难用,网友:看看人家PyTorch

    TensorFlow 被吐槽不好用,也不是一天两天了。TensorFlow 2.0 的发布似乎将这种「民怨」推上了高潮。

    机器之心
  • TensorFlow是什么?怎么用?终于有人讲明白了

    导读:在开始使用TensorFlow之前,必须了解它背后的理念。该库很大程度上基于计算图的概念,除非了解它们是如何工作的,否则无法理解如何使用该库。本文将简要介...

    华章科技
  • TensorFlow是什么?怎么用?终于有人讲明白了

    导读:在开始使用TensorFlow之前,必须了解它背后的理念。该库很大程度上基于计算图的概念,除非了解它们是如何工作的,否则无法理解如何使用该库。本文将简要介...

    用户1621951
  • TensorFlow是什么?怎么用?终于有人讲明白了

    导读:在开始使用TensorFlow之前,必须了解它背后的理念。该库很大程度上基于计算图的概念,除非了解它们是如何工作的,否则无法理解如何使用该库。本文将简要介...

    CDA数据分析师
  • TF-IDF与余弦相似性文本处理:自动提取关键词、找出相似文章

    这个标题看上去好像很复杂,其实我要谈的是一个很简单的问题。 有一篇很长的文章,我要用计算机提取它的关键词(Automatic Keyphrase extract...

    机器学习AI算法工程
  • TensorFlow 基础学习 - 2

    让我们来看这样一个场景,让计算机识别不同的服装用品(有提包、鞋子、裤子等10类物品)。我们将用包含10种不同类型的物品图片的数据集来训练一个神经元网络,实现分类...

    叉叉敌
  • 跨越重重“障碍”,我从 PyTorch 转换为了 TensorFlow Lite

    本文最初发表在 Towards Data Science 博客,经原作者 Ran Rubin 授权,InfoQ 中文站翻译并分享。

    深度学习与Python
  • 深度强化学习-Actor-Critic算法原理和实现

    在之前的几篇文章中,我们介绍了基于价值Value的强化学习算法Deep Q Network。有关DQN算法以及各种改进算法的原理和实现,可以参考之前的文章: 实...

    石晓文

扫码关注腾讯云开发者

领取腾讯云代金券