申请试用
HOT
登录
注册
 

eBPF / XDP firewall and packet filtering

阳春白雪
/
发布于
/
3254
人观看

iptables是为linux主机创建防火墙的典型工具。我们已经在facebook上使用它们在我们的服务器上跨不同的层设置主机防火墙。在这个方案中,我们引入了一个基于ebpf/xdp的防火墙解决方案,用于包过滤,并且与iptables实现具有奇偶性。我们讨论了这个问题的各个方面。以下是这些方面的简要总结,我们将在论文/演示中进一步详细介绍。
设计和实施:
我们使用bpf表(映射、lpm尝试和数组)来匹配适当的包头内容。
防火墙的核心是一个ebpf过滤器,它解析一个包并查找收集匹配值的所有相关映射。逻辑规则集应用于这些收集的值。此逻辑集的读取类似于人类可读的高级防火墙策略。对于iptable规则,在每个规则内联的所有详细匹配条件中,这样的策略级表示很难推断。
性能优势和与iptables的比较
iptables对每个规则进行线性匹配,直到找到匹配为止。在我们的建议中,我们使用包含所有规则的密钥的bpf表(映射),使得包匹配非常高效。然后,我们使用收集到的结果应用该策略,这将导致iptables的显著加速。
易于策略/配置更新和维护
网络管理员拥有防火墙,而应用程序开发人员通常需要打开其应用程序才能工作的端口。使用ebpf过滤器的方法,我们在执行策略的过滤器和表示需要过滤的特定端口和前缀的关联映射的内容之间创建逻辑分隔。该策略归网络管理员所有(例如:向Internet打开的端口、从特定前缀中打开的端口、删除所有其他端口)。数据(端口号、前缀等)现在可以属于一个单独的逻辑部分,该部分向应用程序开发人员提供一个预定的目的地来更新其数据(例如:包含打开到内部子网的端口的文件等)。这减少了两个不同功能之间的摩擦,减少了人为错误。
部署经验:
我们在边缘基础设施中部署此解决方案以实现防火墙策略。
我们更新配置,重新加载过滤器以及包含用于过滤的键和值的各种映射的内容
bpf程序数组
我们使用bpf程序阵列的能力来链接不同的程序,如速率限制器、防火墙、负载均衡器等。这些是创建一个丰富的、高性能的网络解决方案的基础。
提出一个完全通用的防火墙解决方案,将现有iptables规则迁移到基于ebpf/xdp的过滤
我们提出一个建议,可以将现有的iptables规则转换为一个性能更好的ebpf程序,主要是用户空间处理和验证。

0点赞
1收藏
3下载
相关推荐
确认
3秒后跳转登录页面
去登陆