gpt4 book ai didi

linux - 使用 iptables 和 nfqueue 进行数据包转发

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

我有 3 台机器 - A、B、C,我正在尝试做一些类似于 DNAT 的事情。

1)A向B发送数据包。

2)B收到数据包并修改后发送给C。

在机器 B 上,我使用 iptables 和 nfqueue 来接收数据包。

iptables -I INPUT -p tcp -j NFQUEUE --queue-num 1

在机器 B 上,(1) 我修改数据包(让我们将修改后的数据包称为 new_packet),(2) 我使用原始套接字将 new_packet 发送到机器 C,以及 (3) 丢弃机器 B 收到的原始数据包。

我觉得这些步骤是多余的(这会增加延迟),应该有更好的方法来做到这一点。

是否有可能破坏机器B收到的原始数据包,然后简单地将数据包转发到C。

附注iptables 中的 DNAT 功能没有用,因为我需要做更多修改。

最佳答案

我知道这个问题是 7 个月前提出的,但恕我直言,处理数据包的最快方法是编写内核模块。在用户空间处理所有这些东西会大大降低速度。顺便说一下,在这种情况下没有零拷贝,所以再一次 - 内核模块是最好的解决方案

关于linux - 使用 iptables 和 nfqueue 进行数据包转发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27512435/

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