前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tungsten Fabric怎么运作?

Tungsten Fabric怎么运作?

原创
作者头像
Tungsten Fabric
修改2020-06-15 11:03:35
7090
修改2020-06-15 11:03:35
举报

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

本文介绍TF控制器和vRouter的软件体系结构,以及在虚拟机或容器启动时,vRouters与Tungsten Fabric控制器之间的交互。

Tungsten Fabric支持Orchestrator(编排器)

Tungsten Fabric控制器集成了OpenStack或Kubernetes等云管理系统,其功能是确保在创建虚拟机(VM)或容器时,根据控制器或协调器中指定的网络和安全策略为其提供网络连接。

Tungsten Fabric由两个主要软件组成:

• Tungsten Fabric 控制器– 一组维护网络和网络策略模型的软件服务,为实现高可用性,通常在多个服务器上运行。

• Tungsten Fabric vRouter– 安装在运行工作负载(虚拟机或容器)的每个主机上,vRouter执行封包转发,并实施网络和安全策略。

Tungsten Fabric的典型部署如下图所示:

Tungsten Fabric控制器通过软件插件与协调器集成在一起,该插件实现了协调器的网络服务。

例如,OpenStack的Tungsten Fabric插件实现了Neutron API,kube-network-manager_和_CNI(容器网络接口)组件使用Kubernetes k8s API监听网络相关事件。

Tungsten Fabric vRouter取代Linux桥接器和IP表,或计算主机上的Open vSwitch网络,控制器配置vRouters以实现所需的网络和安全策略。

VM的封包如果要转发到不同主机上,vRouter会加MPLS over UDP / GRE或VXLAN封装,其中外部标头的目标是运行目标VM的主机的IP地址。控制器负责在每个实现网络策略的vRouter的每个VRF中安装路由集。

例如:默认情况下,同一网络中的虚拟机可以相互通信,但不能与不同网络中的虚拟机进行通信,除非在网络策略中特别允许。控制器和vRouters之间的通信是通过一种广泛使用且灵活的消息传递协议XMPP实现的。

云自动化的一个关键特性,是用户可以为其应用程序请求资源,而无需了解如何或在何处提供资源的详细信息。

这通常是通过一个门户网站完成的,该门户网站提供了一组服务产品,用户可以从中选择,并将其转换为API调用到底层系统,包括云协调器,以启动具有必要内存、磁盘和CPU的虚拟机或容器,满足用户要求的能力。

服务产品可以像具有特定内存、分配给它的磁盘和CPU的虚拟机一样简单,也可以包括由多个预配置软件实例组成的整个应用程序堆栈。

和Orchestrator的互动

Tungsten Fabric控制器和vRouter的架构,以及与协调器的交互,如下图所示:

该图显示了一个协调器工作虚拟机管理程序和虚拟机,这和容器协调器的信息流类似,例如Kubernetes(带有Tungsten Fabric的Kubernetes容器)。

主机上运行的工作负载的每个接口都连接到VRF,包含相应网络的L2和L3转发表,其中包含该接口的IP地址。

vRouter实现物理路由器执行的集成桥接和路由(IRB)功能。vRouter仅具有位于该主机上有网络接口的VRF,包括连接到主机物理接口的Fabric VRF。使用VRF可以使不同的虚拟网络具有重叠的IP和MAC地址,不会定义任何网络策略来允许它们之间的流量。

Tungsten Fabric虚拟化网络使用封装隧道在不同主机上的VM之间传输封包,而封装和解封装在Fabric VRF和VM VRF之间发生。

创建新的虚拟工作负载时,会在特定于orchestrator的插件中看到一个事件并将其发送到控制器,然后控制器会向代理发送请求,以便在虚拟网络的VRF中安装路由,然后代理将其配置在转发器里。

使用单个接口在新VM上配置网络的逻辑流程如下:

1. 使用UI、CLI或北向REST API在Orchestrator或Tungsten Fabric中定义网络和网络策略。网络主要定义为IP地址池,在创建VM时将分配给接口。

2. 用户请求由协调器启动VM,包括其接口所在的网络。

3. 协调器选择要运行的新VM的主机,并指示该主机上的计算代理程序获取其映像并启动VM。

4. Tungsten Fabric插件从协调器的网络服务接收事件或API调用,指示它为将要启动的新VM的接口设置网络。这些指令将转换为Tungsten Fabric REST调用并发送到Tungsten Fabric控制器。

5. Tungsten Fabric控制器向vRouter代理发送请求,以便将新VM虚拟接口连接到指定的虚拟网络。vRouter代理指示vRouter转发器将VM接口连接到虚拟网络的VRF。如果不存在,则创建VRF,并且接口连接到它。

6. 计算代理启动VM,通常将其配置为使用DHCP为其每个接口请求IP地址。vRouter代理DHCP请求,然后对接口IP地址,默认网关和DNS服务器地址进行响应。

7. 一旦接口启动且具有来自DHCP的IP地址,vRouter安装到VM的IP和MAC地址路由,并将下一跳设为VM虚拟接口。

8. vRouter为接口分配标签,并在MPLS表中安装标签路由。vRouter向控制器发送XMPP消息,该消息包含到新VM的路由。该路由具有运行vRouter的服务器的IP地址的下一跳,并使用刚刚分配的标签指定封装协议。

9. 在网络策略所允许下,控制器将新VM路由分发到其他vRouters,包含VM位于同一网络和其他网络。

10. 在网络策略所允许下,控制器将其他VM的路由发送到新VM的vRouter。

在此过程结束时,已更新数据中心中所有vRouter的VRF中的路由已经有新VM的信息。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档