IPv6 之后无法使用 NetworkManager 后置脚本

IPv6 之后无法使用 NetworkManager 后置脚本

我相信我在 NetworkManager 中发现了一个错误,但不确定。我使用的是 Ubuntu 14.04(我认为 ubuntu 版本在这里并不重要),并且安装了 network-manager=0.9.8.8-0ubuntu7.3,我的网络配置确实由 NetworkManager 管理。

我想在连接建立后运行一些自定义命令,然后发现有一个 dispatcher.d 文件夹,您可以在其中放置要在后期(NM 调用它)阶段运行的自定义脚本。这些脚本在后期运行非常重要,因为我想在连接建立后更改路由表。我想添加一个新的 IPv6 路由,该路由具有指定的源地址,因此我无法通过 Network-Manager 设置来执行此操作,因为没有选项可以提供具有指定源地址的路由(我猜只是 NM 的东西)。

不幸的是,这些脚本是在 IPv4 配置提交并完成后运行的,但在 IPv6 配置完成之前。事实证明,如果尚未进行 IPv6 配置,我就无法添加 IPv6 路由,因此我无法在后期阶段对我的连接进行任何 IPv6 修改。这听起来像是一个错误。

一些证据是我的系统日志,其中我看到一行指出 IPv4 设置正在提交,后面跟着我的脚本的自定义输出,后面跟着一行指出 IPv6 更改已安排好(紧接着开始)。

有人可以建议一种在 NetworkManager 连接建立后向我的路由表添加自定义 IPv6 路由的方法吗?

我可以采取一种混乱的解决方案,比如让我的脚本生成一个子进程,在应用路由之前休眠几秒钟,然后让父进程死亡,让 NetworkManager 继续运行并在子进程停止休眠并添加路由之前设置我的 IPv6 地址。如果这是唯一的方法,那么 NM 软件本质上是有缺陷的,并且会歧视 IPv6 用户。

相关内容