将所有流量从一个接口路由到具有不同 IP 的默认网关

将所有流量从一个接口路由到具有不同 IP 的默认网关

情况:

eth0-具有互联网访问的默认网络 IP:192.168.2.1 默认网关:192.168.2.254

eth0:1 192.168.2.2 虚拟网卡,与 eth0 相同,但 IP 不同。相同的电缆 此 IP 具有不同的互联网访问权限

eth1:192.168.0.1

eth2:192.168.1.1

来自 eth1 和 eth2 的所有流量都使用 192.168.2.1 路由到 192.168.2.254

我需要将来自 eth2 的所有流量路由到 192.168.2.254,但使用辅助 ip 192.168.2.2

我尝试了很多不同的配置,但没有成功。

答案1

您需要的是源策略路由。有关配置源策略路由的说明,请参见Linux 高级路由和流量控制指南

关键在于您要向系统添加一个新的路由表,名称类似 INET2(这些命令必须以 root 身份运行):

回显 200 INET2 >> /etc/iproute2/rt_tables

然后您要向主 IP 路由表添加一个源规则(我猜这是一个 /24 网络):

ip 规则从 192.168.1.0/24 表 INET2 添加

接下来,您需要为 INET2 表分配一个默认路由(您没有提到第二个连接的默认网关,所以我在这里猜测):

ip route 通过 192.168.2.253 dev eth0:1 表 INET2 添加默认

最后,您需要刷新系统上的路线缓存:

ip 路由刷新缓存

以这种方式创建的规则是短暂的,在系统重新启动时会消失(尽管 INET2 表会保留),因此您需要将规则放入网络接口的启动脚本中。具体如何执行此操作取决于您的特定 Linux 发行版,这实际上是另一个问题。

相关内容