Debian 系统上的路由表是如何填充的?我知道ip route
可以使用一系列命令来手动操作路由表,但是系统启动时路由表最初是如何填充的,以及在什么情况下路由表会更新?
答案1
使用 Debian 系统时,只要网络接口打开或关闭,路由表就会自动填充。请参阅man interfaces
,man ifup
, 和man ip
了解详细描述。
本质上,ifup
从静态定义的接口读取配置位/etc/network/interfaces
,然后使用它们ip route add
来创建适当的路由。对于配置为使用 DHCP 的接口,ifup
从 DHCP 服务器请求配置位,然后使用它们ip route add
来创建这些路由。当接口被关闭时,ifdown
删除本应添加的路由根据当前配置。因此请注意,当配置发生变化时, 删除的路由ifdown
可能与 最初添加的路由不一样ifup
。
在 中/etc/network/interfaces
,可以使用pre-up
、post-up
、pre-down
和钩子来手动操作路由表(或运行用于其他目的的命令)。post-down
脚本/etc/network/if-*.d/*
为更复杂的任务提供了额外的钩子。