使用框中的第二个 NIC 创建路由

使用框中的第二个 NIC 创建路由

操作系统:Linux

我需要一些关于如何设置路由表的建议。我有一个盒子,里面有两个物理网卡 eth0 和 eth1,以及两个关联的 IP IP1 和 IP2(均属于同一子网)。我需要设置一条路由,强制所有从 IP1 到 IP3(属于同一子网)的消息都通过 IP2。我有一个原始套接字捕获程序在 IP2 上监听(这不是用于恶意用途)。

我已经将路由表设置为

目标网关 Genmask 标志 指标参考使用 Iface   
   IP3 IP2 255.255.255.255 UGH 0 0 0 eth1

如果我在添加上述规则时尝试指定 eth0,则会收到错误“SIOCADDRT:网络无法访问”。我从路由的联机帮助页中了解到,如果指定的 GW 是本地接口,那么它将用作传出接口。

设置此规则后,如果我执行跟踪路由(-i eth0),数据包将首先到达默认网关,然后到达 IP3。

如何强制从 eth0 发往 IP3 的数据包首先到达 IP2。我无法更改网关的路由表。

请提出建议。

答案1

如果我理解正确的话,你需要基于策略的路由,特别是基于源的路由。下面是一个简单的如何就能做到这一点。

其理念是,传统路由通过查看 IP 标头中的目标地址字段并将其与路由表进行比较来做出路由选择。基于策略的路由可以查看其他字段,甚至查看 TCP 端口等其他项目。对于基于源的路由,它会查看 IP 标头中的源地址字段。

相关内容