我可以将发往本地接口的流量路由到另一个接口吗?

我可以将发往本地接口的流量路由到另一个接口吗?

我正在尝试为透明设备(从现在起称为 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 不是路由器。

相关内容