我正在研究一种解决方案,在该解决方案中,我需要将从一个以太网接口接收到的所有原始帧重新发送到另一个以太网接口。当 Wireshark 工作时,我能够在第一个以太网接口 (enp0s8) 中嗅探所有接收到的帧(使用 C 中的套接字 RAW),并且我能够将此帧重新发送到另一个以太网接口 enp0s9,我可以看到它Wireshark,内部。但是,这个帧并没有发送到 enp0s9 所属的内部网络。
测试场景包含三个 VM(VBox):
- 第一个,VM1,我从那里发送帧。一个网卡,内部网络(intnet1),IP:192.168.1.1。
- 第二个,VM2,我的代码正在运行,有两个 eth.interfaces(enp0s8 和 enp0s9)。两个网络适配器都作为内部网络。enp0s8:IP:192.168.1.254,intnet1。enpos9:IP:192.168.2.254,intnet2。
- 第三个,VM3,我正在等待我在 VM2 中运行的应用程序重新发送的帧。一个网络适配器,内部网络(intnet2),IP:192.168.2.1。
- Ping VM1 <-> VM2 工作。Ping VM2 <-> VM3 有效。
我想将任何帧(带有任何以太网标头和任何 IP 标头)重新发送到 enp0s9 和内部网络 intnet2。
提前致谢 ;)