gpt4 book ai didi

c - 如何将 skb 推送到 Linux 网络堆栈的特定点?

转载 作者:太空狗 更新时间:2023-10-29 17:03:58 30 4
gpt4 key购买 nike

我想将 skb 推送到 Linux 网络堆栈的 prerouting 点。有什么办法吗?我使用了 dev_queue_xmit()netif_rx() 函数,但我认为它们不能将 skb 推送到 Linux 网络堆栈的 prerouting 点。

enter image description here

最佳答案

我不是很清楚 这个 skb 来自哪里。在用户区,有两种方法可以做到这一点。一种是使用 tun 设备(只需将数据包写入)。另一种是使用 libpcap(它具有发送隐藏在所有接收内容中的原始数据包的鲜为人知的功能)。

你说你想通过注册一个ioctl(可能意味着添加你自己的ioctl)然后从用户空间调用ioctl来做到这一点.当您已经可以在不修改内核的情况下实现这一点时,您为什么要这样做并不是很明显。但是,如果您确实想这样做,我要做的是遵循 tun 驱动程序使用的路径,并执行与 write() 等效的操作在新的 ioctltun 设备。这可能意味着有一个类似于 tun 的接口(interface)作为数据包的来源。我怀疑系统中的数据包需要某种源接口(interface)。

关于c - 如何将 skb 推送到 Linux 网络堆栈的特定点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21086384/

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