我的接口文件中有这个:
auto eth1
iface eth1 inet static
address 20.135.251.218
netmask 255.255.255.252
up route add default gw 20.135.251.217 dev eth1 metric 1
如果我运行ifconfig eth1 down
,默认网关将从路由表中删除。但是当我这样做时ifconfig eth1 up
,默认网关不会添加到路由表中。我有两个具有不同度量的默认网关,因此只有另一个网关出现在路由表中。我已将 gc_timeout 设置为10
。我正在尝试实施答案中提到的解决方案这个问题。如何在打开界面时自动添加默认网关?
答案1
您可以使用Advanced Routing (iproute2)
Linux 内核的功能更好地在多个 Internet 连接之间实现负载平衡。
默认情况下,Linux内核维护着三个路由表。您可以使用以下命令查看这三个:
$ ip rule list
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
当您发出route -n
命令时,它会给出路由表的条目main
。
您可以使用以下命令查看这三个路由表中每一个的条目:
$ ip route list tables local
$ ip route list tables main
$ ip route list tables default
pradeep
您可以使用以下命令集添加新的路由表:
$ echo 200 pradeep >> /etc/iproute2/rt_tables
$ ip rule add from all table pradeep
我认为您想要做与此处讨论的完全相同的事情:多个提供商的路由
答案2
好吧,我刚刚在另一个问题中写完一些关于死网关检测和多宿主路由设置的邻居不可达的内容。也许我的回答进一步阐明该主题。