Debian 中的 IP 数据包转发

Debian 中的 IP 数据包转发

我用机器 A←–→B←–→C 设置了一个物理网络。 IP 和以太网配置总结如下:

A(eth0: 10.10.10.2) ←—→ (eth0: 10.10.10.3)B(eth1: 192.168.0.3) ←—→ (eth1: 192.168.0.2)C

我想从 A 向 C 发送一个 UDP 数据包。tcpdump数据包 A 如下所示:10.10.10.2:10000-->192.168.0.2:10001(10000 或 10001 是端口号)。当然,数据包必须经过 B,从eth0B 进入并通过 出去eth1

B 的路由表已配置为子网 192.168.0.0/24 至eth1。且/proc/sys/net/ipv4/ip_forward为 1。

tcpdumpB 确认可以在 接收 UDP 数据包eth0。但eth1什么也没有(C 也没有),这意味着数据包没有正确转发。 ( iptablesB 站没有任何下降政策。)

我在虚拟机上重新创建了拓扑,并且它有效。但在真实的物理机上,它不起作用。我还尝试编写一个简单的内核模块,每当检测到目标端口为 10001(如前面的示例)的传入 UDP 数据包时,netfilter该模块就会执行此操作printk("some messages"),但 Linux 内核仍然不会打印任何内容。

附言。 B的操作系统是Debian 6.0.10(挤压)。

如果有人能够阐明这个问题,我将非常感激。

相关内容