[英]packet forwarding using iptables and nfqueue
我有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。
PS iptables中的DNAT功能没有用,因为我需要做更多修改。
我知道这个问题是在7个月前提出的,但是恕我直言,处理数据包的最快方法是编写内核模块。 在用户空间中处理所有这些东西会大大降低速度。 顺便说一句,在这种情况下,没有零拷贝,所以再一次-内核模块是最好的解决方案
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.