Tungsten Fabric入门宝典系列文章,来自技术大牛倾囊相授的实践经验,由TF中文社区为您编译呈现,旨在帮助新手深入理解TF的运行、安装、集成、调试等全流程。如果您有相关经验或疑问,欢迎与我们互动,并与社区极客们进一步交流。更多TF技术文章,请点击公号底部按钮>学习>文章合集。
作者:Tatsuya Naganawa 译者:TF编译组
Tungsten Fabric中有很多不同的组件。接下来我简要描述它们的用法。
概览
总体而言,Tungsten Fabric中包含7种角色和(多达)30个微服务,其中角色部分如下:
- vRouter
- control
- config
- config-databasean
- alytics(从TF 5.1开始,可被进一步分为analytics、analytics-snmp和analytics-alarm)
- analytics-database
- webui
尽管组件很多,但在简单的用例中,只需要4种角色:vRouter,control,config,config-database。当然在大多数情况下,webui也是需要的。
如果你只对Tungsten Fabric的控制平面/数据平面部分感兴趣,也可以省略analytics。只是在这种情况下,某些功能(如v1服务链,haproxy负载均衡器及k8s ingress,SNAT等)将无法正常工作。
control, vRouter
Control和vRouter构成了Tungsten Fabric的控制平面和数据平面,因此可以说,这是Tungsten Fabric系统最重要的部分。
由于control和vRouter都在内部使用MPLS-VPN,因此我建议至少在深入研究它们的细节之前,先略读一下这些材料:
- https://www.juniper.net/uk/en/training/certification/certification-tracks/sp-routing-switching-track?tab=jncis-sp
- https://www.juniper.net/uk/en/training/certification/certification-tracks/sp-routing-switching-track?tab=jncip-sp
由于大多数高级功能都在control当中,而vRouter是MPLS所固有的,因此这些资料将有助于弄清它们正在尝试做些什么。
由于control和vrouter-agent都在内部使用VPNV4 BGP,因此vRouter及其内部VRF将根据extended community属性(也称为路由目标route-target)装载所需的前缀。因此,在vRouter上创建容器或虚拟机时,它可以将VPNV4路由的信号发送给control,并将所有路由映射到其它的vRouter,从而数据平面可以知道自动将报文发送到何处。
有趣的是,vRouter的虚拟网络可能具有多个默认网关,并且具有相同的IP和相同的MAC!(用Junos的术语来说,与virtual-gateway-address的行为类似。)
由于不需要VRRP来为每个虚拟网络提供默认网关,因此它消除了瓶颈,并使一切变得完全分布式。
vRouter还可以为某些功能(例如基于状态的防火墙、NAT、基于流的ECMP等)进行基于流的处理。这是一个重要的区别,因为这种行为会引入一些调整点,例如每秒的连接数和最大流数。(在基于包的系统中,PPS(每秒数据包)和吞吐量(以及某些情况下的延迟)是关键。)如果这些参数对你的系统非常重要,也许你还需要检查这些参数。
注意:可以选择在“ports”配置中使用“packet-mode”参数禁用此行为。
config
Config同样包含几个组件。Config-api为Tungsten Fabric的配置提供了一个API端点,该端点使用了许多组件,例如control、analytics等。
- vRouter不会直接使用它,因为只有需要的数据才会(通过X