学术界对P4已进行大量的研究与应用,各个应用场景如下图所示,包括INT、QoS、拥塞控制、多播、负载均衡、加速计算、聚合、网络测量、安全、测试等领域。但是学术界的研究要真正落地,还需要考虑很多其他因素,如实可运维性、占用资源情况、多租户共享支持、异常场景处理、平滑演进等等。

考虑诸多因素,工业界使用P4可编程交换机的场景则少很多,主要集中在Overlay分流分发、INT网络测量、无线回传设备设备白盒化等领域。本文将持续更新,跟踪工业界的P4可编程落地情况。

Ucloud-一致性哈希网关

NAT64 Access 是 Ucloud 基于Intel 可编程芯片 Tofino 设计的一致性哈希网关,以旁挂的方式连接物理交换机,通过Maglev一致性哈希算法将去往 NAT64 服务器集群的流量进行分发,同时实现限速与DDoS保护功能。

NAT64 Access 与物理交换机组成三层网络,通过BGP发布地址,物理交换机将网络流量分发到多个NAT64 Access,实现NAT64 Access集群的负载均衡与高可用。
NAT64 Access 与 NAT64服务器组成二层网络,服务器通过BGP向NAT64 Access发布VIP,NAT64 Access获得VIP对应的下一跳信息(MAC地址),通过Maglev算法将流量分发到集群的不同服务器。每个NAT64服务器配置不同的源IPv4地址,实现返程流量的正确到达。

NAT64 Access 通过数据面的查找表与控制面Maglev Hash Engine实现Maglev哈希算法。同时,数据面对每个EIP针对TCP SYN报文进行入向和出向PPS限速(目前单个EIP的SYN报文的速率限制在50000,超过50000时会进行丢包,参数可调)实现DDoS安全防护。

NAT64 Access 在Tofino 数据面,主要使用了pipeline串联、减少表依赖/合表、ingress/egress同时使用等优化操作对Tofino表项进行优化,以应对 Tofino SRAM 受限的问题。

阿里云-流量分发网关

XGW 是阿里云基于Intel 可编程芯片 Tofino 设计的流量分发网关,如上图所示,其负责公网、专线、跨Region之间流量汇聚与分发,支持IPv6。
典型产品有:EIP和共享带宽限制、专线(比如天猫双11或某大客户数10Tbps专线上云流量)、CEN等。专线的场景示意如下:

XGW 设备类似于2U服务器,主要部件如下:1)Intel Tofino 芯片:负责大流量转发;2) 网卡芯片:负责打表项转发;3)CPU:业务编排、智能调度。

另外,XGW在数据面实现了QoS能力,当客户的流量超出购买带宽时,丢弃优先级低的报文,保证高优先级的报文通过,QoS 限速示意图如下:

XGW 在Tofino 数据面,主要使用了pipeline串联、合表等优化操作对Tofino表项进行优化,以应对 Tofino SRAM 受限的问题。

更多 XGW 的实现细节,见 SIGCOMM 2021: sailfish: accelerating cloud-scale multi-tenant multi-service gateways with programmable switches

星融-云交换机/可视化交换机

星融(Asterfusion Data Technologies)是一家云网络架构的解决方案提供商,成立于2017年,核心创始团队由前华为、华三、思科等公司高管组成。

星融基于Tofino可编程芯片,设计实现了CX系列ToR、spine骨干交换机)、NX系列(ToR、spine骨干交换机)、PX系列(可视交换机产品,定位于运营商、数据中心、高端园区、行业集团客户等网络的大流量采集接入层设备)产品。主要实现的功能如下:

  • NFV功能:CX系列云交换机目前支持四层SLB(服务器负载均衡)、NAT(网络地址转换)、DDoS(分布式拒绝服务)攻击流量识别与统计;

  • 水平扩展,千万级vxlan:提出协议无限云网架构(PICFA),支持千万量级的虚拟计算节点(vxlan表项能力),具备超强的横向扩展能,为云网络从计算空间向底层物理网络的迁移打下坚实的基础;

  • 一致性哈希:PX3系列/PX5系列提供高性能、高性价比的同源同宿分流方案以及基于隧道内外IP五元组的一致性哈希分流方案;

  • 灵活可控的表项空间:PX系列产品支持设备内部转发表项的灵活调整,设备可根据客户网络的实时需求,灵活快速的调整各个转发表项空间,将空闲不用的表项空间转移到高需求的表项中,从而提高了设备的转发能力和效率,同时将设备表项空间利用率最大化。通过灵活调整表项空间的功能解决了客户网络在特定场景中转发表项不够所带来的困扰,提高了设备资源分配的合理化、灵活化;

  • 带内网络遥测INT:PX系列产品支持带内网络遥测INT(In-band Network Telemetry)功能,快速故障排除模型,能够检测故障并隔离故障,按照网络状态整合数据,包括底层和覆盖的网络统计数据,主动将这些网络设备状态信息推送到监控设备,数据具有很强的时效性。

  • 流量复制:PX系列产品可以在入接口、中间环节以及出接口分别执行不同的流量策略,还支持在流量复制同时施加统一或独立的流量过滤策略,可以为不同的后端监控系统提供定制化数据源;

  • 云业务可视化: CX系列下一代云交换机支持IETF最新定义的带内网络遥测功能IOAM,与星融的PX系列网络可视交换机一起配合,构建大规模的业务可视交换网络,将云中业务流量全量复制、智能处理后,同源同宿地分流汇聚到后端分析系统集群中做云中业务的全面分析;

Tapplet系列,基于ARM/X86平台开发的云端流量采集轻量级应用,完成虚拟流量采集、初步预处理以及隧道封装和分发功能、Tapplet支持物理部署以及虚拟机化部署

截止到2020年底,星融将 6000多台SONiC白盒交换机、5W+的100Gps端口运用于运营商、私有云与公有云行业。
目前,星融有一个120人的SONiC开发团队。其基于SONiC的AsterNOS系统,也将在2021年6月份开源。

京东云-ToR、汇聚交换机流量可视化

京东云将部分数据中心网络的ToR、汇聚交换机(如下图所示的T0、T1)替换为了P4白盒交换机。
同时,在边缘云场景,也对白盒交换机进行了一定规模的部署。

京东云使用P4可编程设备实现网络的可视化方案。由于现阶段无法实现传统设备的全P4可编程化,京东云采用混合部署方案(部分P4可编程设备、部分传统设备),使用Postcards模式部署INT,实现实时的网络丢包探测、拥塞、时延抖动以及路径的可视化,部署方案如下图所示。

除了流量可视化,京东云还通过P4可编程实现了LAG/ECMP的链路优先级功能。在进行网络流量转发时,优先使用高优先级的链路,当高优先级链路满载时,选择低优先级的链路分担流量,如下图所示。

京东云未来将会进一步对IDC、DCI、边缘节点的网络设备P4可编程化,已让网络更加的可视化、运维自动化,实现高级的流量调度、拥塞控制、虚拟网络功能(LB、NAT)卸载等。

运营商-回传设备/核心路由设备

中国电信-回传设备白盒化 (马上商用)

中国电信拥有100多号人的SONiC开发团队,其正在使用P4可编程设备开发运营商的无线回传设备(4G时代,中国电信有5-10万台这种设备),预计今年将在此场景进行P4可编程设备的部分落地。

中国移动-SRv6 开源项目(暂未商用)

中国移动联合Intel、紫金山实验室、北京邮电大学、锐捷网络使用P4可编程设备开发了SRv6开源项目,推出针对SRv6技术的控制器+操作系统+转发面的整体开源解决方案。
通过整合ONF的三个开源平台—:基于ONOS的控制器,基于Stratum的设备操作系统和基于P4和英特尔Tofino的白盒交换机,并进行进一步的开发,构建了一整套面向云网融合的核心路由系统整体解决方案。

中国移动在P4可编程设备中使用了SRv6压缩技术G-SRv6,以减少SRv6标签对SRAM资源的占用。

网络安全厂商-网络安全功能

P4可编程设备目前实现了小规模的数据中心网络TOR、汇聚交换机部署,运营商回传设备的部署。
另外,据说,80%的做网络安全的厂商都在使用P4可编程芯片在开发设备。

参考