我正在尝试为透明设备(从现在起称为 TD)设置测试台。目标是确保它能够正确转发和记录。我只需要在测试台中使用 1 台机器 + TD。是的,两台机器会更容易,但我被要求研究只使用一台。像这样:
+–––––––––––––––––––––––––+
| Linux |
+––––––––––––+––––––––––––+
| eth1 | eth2 |
| 10.0.0.1 | 11.0.0.1 |
+–––––––+–-––+–––-+–––––––+
| |
| |
+––+-–––––––-+––+
| Transparent |
| Device |
+–––––––––––––––+
我不确定这是否可行,但目标是这样的:在 Linux 机器上,我可以将任何 IP 流量发送到 11.0.0.1,并将其路由到 eth1,记录在 TD 上,并在 eth2 上接收。另一个方向也是如此。我希望我的测试脚本只使用普通的 Linux IP 堆栈,通过在 10.0.0.1 和 11.0.0.1 上打开套接字,将测试数据发送到其中一个,然后查看另一个是否接收到它。
我已经看过这些了,但没有成功:
- https://stackoverflow.com/a/8539870/375735
- 我可以让它工作一半。如果我从本地路由表中删除 10.0.0.2,将其重新添加为单播路由,并添加 arp 条目,那么我就可以 ping 10.0.0.2 并看到 echo 请求到达我想要的位置。但没有回复。当我尝试执行另一半(本地表中没有本地条目)时,ping 失败,并显示“connect:无效参数”。
- https://serverfault.com/a/586347/216716
- Linux 机器没有网络命名空间。
- https://serverfault.com/a/128680
- 仍在尝试,但尚未成功。当然,设置略有不同,因为 TD 不是路由器。