1、XDP ACL 在在 Shopee 虚拟网虚拟网络网关上的实战经验分享络网关上的实战经验分享第二届第二届 eBPF开发者大会开发者大会中国中国西安西安黄富,13 Apr.2024第二届第二届 eBPF开发者大会开发者大会中国中国西安西安1 虚拟网络与 XDP 网关简介2 XDP ACL 背景简介3 XDP ACL 方案研究4 XDP ACL 方案实现讲解5 XDP ACL 方案落地效果AGENDA第二届第二届eBPF开发者大会开发者大会虚拟网络与虚拟网络与XDP 网关简介网关简介第二届第二届eBPF开发者大会开发者大会虚拟网络与 XDP 网关简介跨网络通信:允许虚拟网络终端(e.g.Kuber
2、netes pod)和物理网络终端(e.g.baremetal server)之间通信。网络地址转换:将私有 IP 地址转换为公网 IP 地址,提供面向公网的网络通信能力。安全性功能:主要提供访问控制列表(ACL)的能力,保护集群中的数据和资源安全。虚拟网络网关:是一种用于连接虚拟网络与外部网络的设备或服务。虚拟网络网关:是一种用于连接虚拟网络与外部网络的设备或服务。在在 Shopee,基于,基于 XDP 实现的虚拟网络网关提供了如下能力:实现的虚拟网络网关提供了如下能力:第二届第二届eBPF开发者大会开发者大会XDP ACL背景简介背景简介第二届第二届eBPF开发者大会开发者大会XDP AC
3、L 背景简介在在 Shopee,虚拟网络的用户有不少,虚拟网络的用户有不少 VPC 维度的维度的 ACL 需求,比如:需求,比如:1.VPC A 拒绝来自拒绝来自 VPC B 的流量访问的流量访问2.VPC A 只对外提供提供只对外提供提供 TCP dport 6379 的的 Redis 服务服务3.VPC A 允许访问公网,但不允许公网的流量主动访问允许访问公网,但不允许公网的流量主动访问 VPC A第二届第二届eBPF开发者大会开发者大会XDP ACL方案研究方案研究第二届第二届eBPF开发者大会开发者大会XDP ACL 方案研究eBPF/XDP based firewall and pa
4、cket filteringSecuring Linux with a Faster and Scalable IptablesTupleMerge:Fast Software Packet Processing for Online Packet ClassificationGitHub hi-glenn/xdp_aclGitHub Asphaltt/xdp_aclRFC PATCH bpf:introduce new bpf map type BPF_MAP_TYPE_WILDCARDXDP ACL 相关论文:相关论文:XDP ACL 相关开源项目:相关开源项目:eBPF技术实践:高性能A
5、CLeBPF Talk:再论高性能 eBPF ACLeBPF Talk:低性能 eBPF ACLXDP ACL 相关博客文章:相关博客文章:第二届第二届eBPF开发者大会开发者大会XDP ACL 方案研究对比对比 3 个个 XDP ACL 方案:方案:匹配方式匹配方式One by oneiptables-like approachTuple matchbitmap approachMerged Space SearchTupleMerge approach实现难度实现难度低低高高支持的规则复杂度支持的规则复杂度低高高低千条规则匹配耗时千条规则匹配耗时高低低低低第二届第二届eBPF开发者大会开发
6、者大会XDP ACL 方案研究因为因为 bitmap 方案满足高方案满足高 ACL 规则复杂度、低匹配耗时的需求,所以需要在规则复杂度、低匹配耗时的需求,所以需要在 XDP 网关项目中做网关项目中做 POC,确认能够在确认能够在 XDP 网关项目中落地。网关项目中落地。确认点:确认点:1.ACL 规则能从规则能从 ETCD 下发到下发到 XDP bpf maps。2.XDP bpf maps 正确保存正确保存 ACL 规则的数据。规则的数据。3.网络包能匹配到网络包能匹配到 ACL 规则。规则。第二届第二届eBPF开发者大会开发者大会XDP ACL方案实现讲解方案实现讲解第二届第二届eBPF开