我正在尝试设置一个多宿主 Debian 系统,以便每个接口都有一个默认路由,而不仅仅是系统的默认路由。这是一个众所周知的设置,但我似乎无法让它工作,而且我不确定如何以我有限的网络知识来最好地排除故障。
作为参考,这些是我关注的主要信息来源 http://www.thegeekstuff.com/2014/08/add-route-ip-command/#comments https://ubuntuforums.org/showthread.php?t=2044148 http://lartc.org/lartc.html#LARTC.RPDB.MULTIPLE-LINKS https://unix.stackexchange.com/questions/4420/reply-on-same-interface-as-incoming
我尝试了两种方法
- 接口启动后更改 IP 路由(DHCP/手动)
- 编辑 /etc/network/interfaces 文件以使用 post-up / post-down (静态)
但我最终只选择一条默认路线。
我已将新的 IP 表添加到 /etc/iproute2/rt_tables
然后我手动应用更改,但最终得到相同的 IP 路由输出
这是我的接口文件的最新版本的示例,结果相同。
我想学习如何解决这个问题,但也愿意寻求解决方案。
谢谢
答案1
通常,只有一个默认路由。在多宿主设备上,在路由到 Internet 的接口上设置默认路由。仅/etc/network/interfaces
包含default
该接口的设置。如果其他接口可以访问非本地路由,则可能需要其他路由。尝试限制这些路由的数量。
看起来您正在尝试进行分割路径路由。在配置中去掉default
和规范,并使用命令来配置路由。每个接口只需要几行,例如:gateway
post-up
post-up ip route add 192.168.30.0/24 dev eth1 src 192.168.30.100 table T2
post-up ip route add default via 192.168.30.1 table T2
post-up ip route add 192.168.30.0/24 dev eth1 src 192.168.30.100
post-up ip rule add from 192.168.30.100 table T2
您可能需要使用命令ip rule show
来显示您的路由规则表。
这仍然会让你没有default
本地流量的默认路由。NAT 和伪装增加了额外的复杂性。
使用类似的防火墙工具shorewall
可能会简化事情,特别是当您想要跟踪和平衡流量时。