在多云时代的企业云服务中,经常遇到混合云和异构资源问题,作为开源SDN
的代表,
Tungsten Fabric
能够很好实现
SDN
互通,在网络层面打通异构资源池。
7
月
9
日,在
TF
中文社区线上直播活动【
TF Live
】中,华胜天成网络架构师王峻与大家进行了在线交流,演示了基于
Tungsten Fabric
开源
SDN
功能,如何实现
vCenter
、
OpenStack
、
K8s
之间的异构资源池互通,以及服务链的引流功能。
本期活动,由TF
中文社区和
SDNLAB
联合举办。
【pdf文档下载】
https://tungstenfabric.org.cn/assets/uploads/files/tf-live4-sdn.pdf
【直播视频回放】
https://v.qq.com/x/page/m31138leucf.html

王峻,华胜天成网络架构师。拥有
10
多年网络行业经验,曾参与设计建设大型银行骨干网、互联网政务云等项目。在
7
月
9
日的
TF Live
直播和问答环节,王峻也分享了自己的实践心得,以及
Tungsten Fabric
在企业云计算应用中的作用和表现。
基于
Tungsten Fabric
实现资源池互通
作为老牌云计算综合服务商和云计算运营商,华胜天成在服务客户云计算业务的过程中,开发了适应多云异构资源的统一管理平台,通过统一的云管平台,去对接OpenStack
、
K8s
、
vCenter
、
PowerVC
、
Ironic/xCAT
、裸机、公有云等各自不同的资源池。
不过,在网络层面上,每类资源池其实都有各自的一套网络体系和插件。这对于云管平台来说,网络层就变得比较复杂,需要寻找统一网络管理解决方案,应对客户支持异构资源池的需求。同时,许多客户并不希望被厂商绑定,希望构建一个解耦的架构。

王峻介绍,华胜天成的云开发团队经过大量调研比较,在多云环境覆盖、混合资源池网络应用编排、
SDN
功能、设备支持友好度、开源架构、专业网络支持等方面综合考量,最终选择了
Tungsten Fabric
作为未来统一网络管理的技术方向。
从Tungsten Fabric
的整体架构来看,不管是
OpenStack
的资源池,还是
k8s
的资源,或者
VMware
的资源池,都通过
Tungsten Fabric
计算节点里边的
vRouter
来实现。
QA问答
在
实际应用使用中,
一般
什么场景
会出现这种多个异构资源
?
从现在很多项目上来看,客户本身一直通过
VMWARE
使用虚拟化,后来又上了
OpenStack
,这种情况很多,但两边管理是割裂的。对于客户来说,一方面想要解耦,不希望绑定厂商;另一方面,比如互联网出口有内外两层防火墙,也需要做成异构的,在金融行业都是比较常见的。
原来用
某厂
的
OpenStack
方案,想用Tungsten Fabric的话是不是改动太大了?
改动应该比较大,我不知道您用的是他们SDN
哪个版本?像厂商这种的,都是基于硬件下发相应配置,然后在边界上去做一个
VLAN
到
VXLAN
的一个转换。而
Tungsten Fabric
主要是开源软件,可以看到,我们所有的
vRouter
全都是在宿主机上去装的,然后跟
underlay
的网络其实没什么关系,只要保证互通就行。
V
r
outer替换了OVS,架构变化还是挺大的。
对。变化确实比较大,vRouter
相当于都是路由的东西。比如说我在
vCenter
里面创建了一个虚机,然后接到了分布式交换机上,就算我们用的是相同的网络,
Tungsten Fabric
也会分配不同的
VLAN tag
,这就会导致所有的流量都会上到
vRouter
上去,不会在这个
vSwitch
上去做转发。
三个资源池的互通演示
接下来王峻进行了细致的演示,基于Tungsten Fabric
在
vmware
中的实现(
Tungsten Fabric
和
vCenter
的集成),来进一步说明
Tungsten Fabric
的功能。
l
Tungsten Fabric
通过监控
VM
的创建的
event
,部署网络和安全策略;
l
Tungsten Fabric
会为每个
VM
分配
vlan id
,每一个
VM
都有一个独立的
vlan id
;
l
vRouter
一个口通过
trunk
连接到
vCenter
的分布式交换机,所有
VM
流量到交换机上打上相应
tag
,通过
trunk
发给
vRouter
,进入相应
vrf
,接下来处理方式和
openstack
和
k8s
就都一样了;
l
vRouter
另一个口通过标准端口组连接物理网卡,和其他的
ESXi
和
KVM
资源池建立
MPLSoverUDP
的隧道;
l
实际运行中,会在vRouter
装一个
vCenter
的
manager
,去管理
VLAN
的
tag
。
在直播的演示环境中,包含了
OpenStack
,
K8s
和
vCenter
三个资源池。通过在
vCenter
上部署两台机器:一台为
TF
的
Controller
,一台为部署了
vRouter
的
ESXi
,后者创建一个虚机,然后去和
K8s
和
OpenStack
上虚机的互通。
在三个资源池互通演示完成后,王峻还演示了数据流追踪,在vRouter
上通过命令追踪数据流,查看了中间的转发过程和互通的实现。
QA问答
每个资源池都有一个
vRouter
,这个是谁提供的?
比如说我们在OpenStack
有两个计算节点,这两个节点宿主机上面都会有相应的
vRouter
,去负责它的宿主机的转发。再看
K8s
里面的
Pod
,两个
node
上都有
vRouter
。对于
vCenter
来说,每个
ESXi
上都有
vRouter
。
刚才这些
演示的
操作,都在一台
宿主
机上完成的吗?
不是的,我们的OpenStack
和
K8s
是嵌套虚拟化,在现有的虚拟化平台上又搭建了环境,
vCenter
这块也是用一个工作站去搭的,还有
v
Center
的环境,
VMX
出口的路由器是在一个
vCenter
的环境上。
Tungsten Fabric
只能用于
二层的网络
,来
连接几个资源池
,是这样吗?
它其实本质上是三层的,你的每一个虚机上来,它都在vRouter
上面,刚才我们也看了追踪路由,虚拟机接上来之后会给它分配相应的虚拟接口,划到相应的
VRF
里边,刚才看到
VRF
里面的路由表,会生成一个
32
位的路由,本质上我觉得还是路由,但它是一个
32
位的路由。
服务链的功能及引流
除了异构资源池互通,王峻还分享了服务链的引流功能。
虚机一般是通过vRouter
到网关,然后出去访问互联网,但为了保护虚机安全,可能还要在路径上增加一个防火墙。此时防火墙有可能是在
OpenStack
、
KVM
资源池里边,那就需要把流量引到防火墙,再从防火墙出来,然后再通过网关出去上网。
也就是说,当我们需要在路径上增加一些NFV
相应的功能,比如防火墙或者检测的设备,然后把流量引过来,就要用到服务链的功能。

针对服务链引流的演示,首先在
K8s
里边创建一个
pod
,然后接入到一个自定义的网络里边,通过
Floating IP
绑定给
pod
。
接下来,防火墙是在vCenter
环境里的一个
VSRX
,有两个
VN
,通过
RT
,去把
Floating IP
网络和
left
网络(
trust
接口)打通,将流量引到防火墙上来。
最后,再通过right
网络,和
vmx
边界打通,进而访问外网。
QA问答
中间有没有碰到过比较难解决的问题
?跑通
的过程中踩过什么坑?
部署的过程中还好,但因为vCenter
文档比较少,我们团队这边找了很多东西,遇到些麻烦。其实
vCenter
这块来说,
Tungsten Fabric
的支持不是特别好,比如防火墙导入文件镜像的时候,只能选一个网卡,导入成功之后,要新添加网卡(需要三个接口:管理、
left
、
right
),这个时候
Tungsten Fabric
就不能识别到了,暂时只能手动解决。比如关联了新建的网络,或者原来关联的网路改了,不能同步更改,要手动更改,才能一致互通。
Tungsten Fabric管
理
裸机的方向是什么?
Tungsten Fabric
目前不能完美地实现裸机的东西,我们裸机可以注册到OpenStack
上面,然后去部署操作系统,完成后但就没有办法去切换到租户网络上去,还需要一些改进。
在实验环境
中
的
underlay
是在一个局域网
吗
?
可以在广域网实现吗?
广域网其实有更好的方案,我们现在的环境,所有的出口都是通过一个VMX
,这样的话不可能两个数据中心通过同一个出口出去,我觉得更合理的方案是,每个数据中心都会有一个出口,然后通过出口去把两边实现互通,隧道应该是可以互通的,我们下一阶段就要测这个场景。
在直播过程中,王峻也提到,Tungsten Fabric
还有很多需要改进完善的地方,但作为华胜天成下一步的网络技术发展方向,团队会和大家一样,做好研究开发,在社区积极交流,探索如何更好地应用
Tungsten Fabric
,打造更高可用的异构混合云架构。
往期回顾
KK/建勋:多云、SDN,还有网工进化论
杨雨:Tungsten Fabric如何增强Kubernetes的网络性能
Frank Wu:当OpenStack遇到Tungsten Fabric

