P4可编程设备能干啥
数据面可编程,为网络创新提供了一片沃土;P4语言,为在这片沃土上耕作(创新)提供了易用的农具。这样一来,在这片沃土上硕果累累也就合乎情理,意料之中。下面这幅图对学术界的成果进行了一个很好的总结,包括INT、QoS、拥塞控制、多播、负载均衡、加速计算、聚合、网络测量、安全、测试等领域。需要这篇文献的读者加微信IEEE2000留言文献获取。
但是学术界的研究要真正落地,还需要考虑很多其他因素,如可运维性、占用资源情况、多租户共享支持、异常场景处理、平滑演进等等。
要体验新事物、尝尝新甜头,克服一些挑战也不是不可以。工业界使用P4可编程交换机的场景目前还不算多,主要集中在Overlay分流分发、INT网络测量、无线回传设备设备白盒化等领域,但星星之火,可以燎原。学术界的硕果转化为工业界的硕果,以不是完全没有可能。
事实上,一些前卫的企业,已经尝到了数据面可编程带来的甜头。比如:
1、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 受限的问题。
2、阿里云-流量分发网关
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
3、京东云-ToR、汇聚交换机流量可视化
京东云将部分数据中心网络的ToR、汇聚交换机(如下图所示的T0、T1)替换为了P4白盒交换机。
同时,在边缘云场景,也对白盒交换机进行了一定规模的部署。
京东云使用P4可编程设备实现网络的可视化方案。由于现阶段无法实现传统设备的全P4可编程化,京东云采用混合部署方案(部分P4可编程设备、部分传统设备),使用Postcards模式部署INT,实现实时的网络丢包探测、拥塞、时延抖动以及路径的可视化,部署方案如下图所示。
除了流量可视化,京东云还通过P4可编程实现了LAG/ECMP的链路优先级功能。在进行网络流量转发时,优先使用高优先级的链路,当高优先级链路满载时,选择低优先级的链路分担流量,如下图所示。
京东云未来将会进一步对IDC、DCI、边缘节点的网络设备P4可编程化,已让网络更加的可视化、运维自动化,实现高级的流量调度、拥塞控制、虚拟网络功能(LB、NAT)卸载等。
4、 中国电信-回传设备白盒化
中国电信拥有100多人的SONiC开发团队,正在使用P4可编程设备开发运营商的无线回传设备(4G时代,中国电信有5-10万台这种设备),预计今年将在此场景进行P4可编程设备的部分落地。
另外,P4可编程设备目前实现了小规模的数据中心网络TOR、汇聚交换机部署,运营商回传设备的部署。据说,80%的做网络安全的厂商都在使用P4可编程芯片在开发设备。
P4可编程设备能干啥,取决于读者的脑洞有多大,再上个图,算是对本文标题的一个简要总结吧。