linux - 客户端A发送数据包时将源MAC地址更改为客户端B,但客户端B的模块在服务器发送后无法接收数据包

标签 linux network-programming mac-address ipv4 netfilter

我有 3 个主机:

客户A

客户端B

服务器。

我有以下测试场景:

客户端A将原始数据包发送到服务器(将源mac地址更改为客户端B的)

Server reply this packet(我用tcpdump来确定Server已经回复了这个包)

Client B在netfilter pre-routing上安装了一个注册hook函数的模块,但是没有收到任何信息。

有谁知道为什么客户端 B 的钩子(Hook)函数什么都接收不到?

谢谢!

最佳答案

可能是因为您的交换机在客户端 A 的端口上看到了客户端 B 的 MAC 地址,并且记住了该地址。因此它将在以太网端口上将回复发送到客户端 A,而不是客户端 B 的 erhernet 端口。

这似乎是网络问题,而不是编程问题。因此,这个问题在不同的论坛上可能更合适。

关于linux - 客户端A发送数据包时将源MAC地址更改为客户端B,但客户端B的模块在服务器发送后无法接收数据包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17480751/

相关文章:

linux - 如果网络连接断开,读取驻留在 smb 装载上的文件的系统调用将永远挂起?

c++ - 如何使用 WSASend() 和 IOCP 模拟阻塞 send()?

ios - 如何以编程方式获取 iphone 的 MAC 地址

linux - Systemtap - 从内核空间调用系统调用

c - 为什么 posix_spawn() 在 popen() 工作的地方失败?

linux - OS调度和RTOS调度的区别

network-programming - 专用网络(如 IPv4)问题

compact-framework - Compact Framework 中的 MAC 地址

c - C 代码中打印的 MAC 不正确

linux - 如何从 .key 文件中提取公钥和私钥?