两个 ISP,两个路由器,一个 Linux 机箱

两个 ISP,两个路由器,一个 Linux 机箱

我是 IP 路由新手,在设置两个链接时遇到了困难。我有一个 Linux 机器,它连接到 192.168.1.1 eth0,IP 地址为 192.168.1.135。这是我的机器主要使用的 Internet 连接。它还连接到 192.168.8.1 eth1,IP 地址为 192.168.8.100。此 Internet 连接是备用的,仅用于 ssh 接入(或用于轻量级任务)。我已经能够通过两个链接建立出站连接。

我希望能够从两个公共 IP 地址 ssh 进入该框。目前,我无法在 上 ssh 进入该框eth1。我推测问题是因为 上的 ssh 连接的响应eth1是从 发送的eth0

在 中/etc/iproute2/rt_tables,我添加了:

10 isp
13 gsm

在 shell 中,我运行

ip route add default via 192.168.1.1 dev eth0 table isp
ip route add default via 192.168.8.1 dev eth1 table gsm
ip route add default via 192.168.1.1 dev eth0 # default table

我错过了什么?

非常感谢您的帮助!

答案1

除默认路由表之外的路由表不会自动使用。您需要为此设置策略路由规则:

ip rule add from 192.168.1.135 lookup isp
ip rule add from 192.168.8.100 lookup gsm

(尽管您可能不需要“isp”规则,因为您的默认表已经涵盖了该规则,并且没有理由重复所有内容。)

答案2

您需要确保 SSH 可以接受来自两个接口/IP 子网的连接。

更多信息请查看https://unix.stackexchange.com/questions/115893/how-to-enable-two-network-interfaces-both-for-internet-in-ubuntu12-04

答案3

我能够解决这个问题。我认为我走在正确的轨道上。最重要的是,我忘记刷新缓存了。我通过以下方法解决了这个问题:

$ sudo ip route add default via 192.168.1.1 dev eth0 tab 1
$ sudo ip route add default via 192.168.8.1 dev eth1 tab 2
$ sudo ip rule add from 192.168.1.135/32 tab 1 priority 500
$ sudo ip rule add from 192.168.8.100/32 tab 2 priority 600
$ sudo ip route flush cache

我还无法利用我已有的内容来获得该解决方案/etc/iproute2/rt_tables,但由于路由非常简单,因此我不太在意名称。

一如往常,感谢大家的反馈。

相关内容