操作系统:Linux
我需要一些关于如何设置路由表的build议。 我有一个包含两个物理网卡eth0和eth1以及两个相关IP IP1和IP2(同一子网)的盒子。 我需要设置一个路由,将强制从IP1到IP3(同一子网)的所有消息通过IP2。 我有一个原始的套接字捕获程序侦听IP2(这不是恶意使用)。
我已经build立了路由表
目标网关Genmask标志度量参考使用Iface IP3 IP2 255.255.255.255 UGH 0 0 0 eth1
如果在添加上述规则时尝试指定eth0,则会出现“SIOCADDRT:Network is unreachable”错误。 我从路由的手册中了解到,如果指定的GW是一个本地接口,那么它将被用作输出接口。
设置完此规则之后,如果我执行traceroute(-i eth0),则数据包首先进入默认网关,然后进入IP3。
我如何强制来自eth0的数据包到IP3先来到IP2。 我无法更改网关的路由表。
请build议。
如果我正确理解你,你需要基于策略的路由,尤其是基于源的路由。 这是一个简单的方法来做到这一点。
这个想法是,传统路由通过查看IP报头中的目的地址字段并将其与其路由表进行比较来进行路由select。 基于策略的路由可以查看其他字段,甚至可以查看其他项目,例如TCP端口。 在基于源路由的情况下,它查看IP报头中的源地址字段。