如何通过中间本地接口路由流量?

如何通过中间本地接口路由流量?

我有一台带有 3 个 NIC 的 Ubuntu 服务器:

---------------------------------------------------------------
|                                                             |
|  ---------------      ---------------      ---------------  |
|  |     eth0    |      |     eth1    |      |     eth2    |  |
|  | 192.168.1.2 |      | 192.168.5.1 |      | 192.168.5.2 |  |
|  |     (gw)    |      |             |      |             |  |
|  ---------------      ---------------      ---------------  |
|        ▒▒                     ▒▒                   ▒▒       |
---------▒▒---------------------▒▒-------------------▒▒--------
         ▒▒                     ▒▒                   ▒▒
       router                   ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒
     192.168.1.1

▒▒  - wire

*为方便理解,更改了 NIC 名称和 IP 地址

eth0eth1是内置网卡,eth2是一个堆积的 PCI NIC,我正在为其编写一个低级代码。为此,我必须通过以下方式接收/发送来自/到某些 IP 地址的所有数据包eth2沿途:

eth2 <==> [eth1 ~~~~ eth0] <==> router <==> ISP

如果可行的话,需要这样的连接方案,以便将所有流量转储到eth1到/从eth2, 因为eth2在 Linux 网络堆栈之外运行,无法被 Wireshark 嗅探。

有没有办法组织这样的路由?

没有:

  • 连接方式eth2直接到路由器并在路由器端转储。
  • 根本无法访问路由器。
  • 在两者之间添加另一个交换机/路由器/PC的方法eth0eth2

据我了解,解决方案就在某个地方,ip route ... table local但我无法确定要添加哪些规则以及要删除哪些规则。

相关内容