将此“ip”命令转换为“post-up”挂钩中的“route”命令

将此“ip”命令转换为“post-up”挂钩中的“route”命令

我无法ip通过post-up中的挂钩使静态路由命令成为永久命令/etc/network/interfaces。以下是相关详情:

/etc/network/interfaces

# The loopback network interface
auto lo
iface lo inet loopback

# Network A
allow-hotplug eth0
iface eth0 inet static
address 10.1.10.100
netmask 255.255.255.0
gateway 10.1.10.1

# Network B
allow-hotplug eth1
iface eth1 inet static
address 192.168.100.1
netmask 255.255.0.0
gateway 127.0.0.1

相关ip命令及路由表

ip route add 192.168.50.0/24 via 10.1.10.100 dev eth0
# This command makes things happy...

$ ip route show
default via 10.40.16.1 dev eth0
10.1.10.0/24 dev eth0  proto kernel  scope link  src 10.1.10.100
192.168.0.0/16 dev eth1  proto kernel  scope link  src 192.168.100.1
192.168.50.0/24 via 10.1.10.100 dev eth0

(不工作)post-up/post-down钩子

#/etc/network/interfaces

# Network A
allow-hotplug eth0
iface eth0 inet static
address 10.1.10.100
netmask 255.255.255.0
gateway 10.1.10.1
post-up route add -net 192.168.50.0 netmask 255.255.255.0 eth0
post-down route del -net 192.168.50.0 netmask 255.255.255.0 eth0

# Network B
allow-hotplug eth1
iface eth1 inet static
address 192.168.100.1
netmask 255.255.0.0
gateway 127.0.0.1

免责声明

ip route add...命令可以解决问题,但我需要这是一个永久的静态路由,因此这些post-up东西。我似乎无法正确理解语法。当我在本地测试网络上运行尝试版本时,重新启动后路由不会显示在路由表中,因此我认为由于语法错误/etc/network/interfaces而无法运行挂钩。post-up

更新

管理对于/etc/network/interfaces给我有关命令语法的线索没有太大帮助,post-up这就是我发现的全部:

张贴

启动接口后运行命令。如果此命令失败,则 ifup 中止,避免将接口标记为已配置(即使它确实已配置),打印一条错误消息,并以状态 0 退出。这种行为将来可能会改变。

答案1

只需将ip命令添加为up命令即可/etc/network/interfaces(无需翻译为routepost-up是 的别名up):

allow-hotplug eth0
iface eth0 inet static
   address 10.1.10.100
   netmask 255.255.255.0
   gateway 10.1.10.1
   up ip route add 192.168.50.0/24 via 10.1.10.100 dev eth0

不需要down,因为当接口关闭时,通过该接口的任何路由都将自动删除。

旁白:您要通过刚刚提出的本地 IP 地址添加到另一个网络的路由吗?该系统是否被用作网关?

编辑:

updown等标签pre-up就是这样:指示当时需要运行哪些命令的标签。这些命令可以是任何事物,例如发送电子邮件或其他任何内容。没有特殊语法...

相关内容