我有一台带有 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 地址
eth0和eth1是内置网卡,eth2是一个堆积的 PCI NIC,我正在为其编写一个低级代码。为此,我必须通过以下方式接收/发送来自/到某些 IP 地址的所有数据包eth2沿途:
eth2 <==> [eth1 ~~~~ eth0] <==> router <==> ISP
如果可行的话,需要这样的连接方案,以便将所有流量转储到eth1到/从eth2, 因为eth2在 Linux 网络堆栈之外运行,无法被 Wireshark 嗅探。
有没有办法组织这样的路由?
没有:
- 连接方式eth2直接到路由器并在路由器端转储。
- 根本无法访问路由器。
- 在两者之间添加另一个交换机/路由器/PC的方法eth0和eth2。
据我了解,解决方案就在某个地方,ip route ... table local
但我无法确定要添加哪些规则以及要删除哪些规则。