在Debian上设置持久路由表


13

我已经通过删除一个规则并为第二个接口eth1添加两个新规则来修改了路由表:

route del -net 10.1.2.0 netmask 255.255.255.0
route add -host 10.1.2.51 eth1
route add -host 10.1.2.52 eth1

我希望规则能够在重新启动后幸存下来。我可以编写一个简单的rc脚本来删除1条规则并插入2条new,但是我想知道是否有一种配置ifconfig的方法,而不是在启动接口时为接口(eth1)添加路由规则,或者甚至更好,指定应添加哪些规则。

什么是干净的方法?是否ifconfig可以指定路由自定义规则?

Answers:


21

post-up当界面出现时,您可以将呼叫添加到挂接中。接口配置位于中/etc/network/interfaces。这里有个例子:

auto eth1
iface eth1 inet dhcp
  post-up route del -net 10.1.2.0 netmask 255.255.255.0
  post-up route add -host 10.1.2.51 eth1
  post-up route add -host 10.1.2.52 eth1
  pre-down route add -net 10.1.2.0 netmask 255.255.255.0
  pre-down route add -host 10.1.2.51 eth1
  pre-down route add -host 10.1.2.52 eth1

手册页-接口

调出 command
界面后,使用post-up Run命令。如果此命令失败,则ifup将中止,避免将接口标记为已配置(即使它确实已配置),打印错误消息,并以状态0退出。

pre-down command
在关闭接口之前运行命令。如果此命令失败,则ifdown中止,将接口标记为已取消配置(即使尚未真正取消配置),并以状态0退出。

此外,在Linux上,“ net-tools” route已被弃用,应使用iproute2软件包中的工具代替。

进一步阅读:


我能否代替删除第一条规则,而不是首先阻止它创建?无论如何,如何创建路由规则?从网络设置中/etc/network/interfaces?我怎么知道,发布后运行时,要删除的规则已经存在?手册页没有说明在什么时间创建。
Martin Vegter

1
由于我既不知道您的网络也不知道您的主机配置,因此我无法确定此路由是如何进入路由表的。它带有DHCP租约吗?如果没有,请检查您的服务,/etc/init.d并调查哪些服务可以修改路由表。也可以查看/etc/network包含子目录。
Marco Marco

5
post-uppre-down是别名updown分别。|| :在行的末尾添加a 将使命令失败,并且不会干扰ifup / ifdown。我通常将此添加到中route del,以防路由尚不存在,因此无法删除。
蒂诺2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.