繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM