gpt4 book ai didi

linux - 是否可以在使用 XDP 捕获数据包并在用户空间中处理后重新传输数据包?

转载 作者:太空宇宙 更新时间:2023-11-04 10:09:15 25 4
gpt4 key购买 nike

我需要编写一个位于两台服务器之间的应用程序,并通过向每个数据包添加特定的 HTTP header 来修改从一台服务器发送到另一台服务器的 HTTP 数据包。
显然它必须尽可能快地完成,我发现通过使用 eBFP 和 XDP,我可以捕获高性能的数据包,但据我所知,XDP verdicts 是 abort、drop、pass 和发送
使用 tx verdict 我可以将捕获的数据包发送到用户空间程序进行修改,但我不知道如何在 header 修改后发送数据包?本视频here是对使用 eBPF 和 XDP 可以做什么的解释,它说它可以完成,但我找不到如何做。
任何帮助将不胜感激。

最佳答案

据我所知,XDP_TX 不会让数据包通过用户空间。它将在它来自的同一个 NIC 上返回数据包。此外,您可以修改数据包,但我看不到扩展数据包的简单方法。因此,要编写额外的 header ,您必须覆盖一些数据。

看起来你有两个选择:

  • 依靠 L7 HTTP 反向代理(添加 header )
  • 如果您想阻止数据包到达您的主机并将它们发回,请使用 nfqueue。

关于linux - 是否可以在使用 XDP 捕获数据包并在用户空间中处理后重新传输数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50089569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com