每当我的系统从网络路由器获得分配给它的新的一站式服务地址时,我都想运行一个systemd IPv6 (这将在启动时,并在整个正常运行时间内周期性地运行)。
理想情况下,此事件仅用于IPv6地址更新,而不包括潜在的IPv4地址更改。
是否有可能用systemd监视这类事件的网络dbus活动?
我的最终目标是,每当发生这种情况时,都要命中动态DNS端点,这样系统的IPv6 DNS记录就不会过时。
发布于 2017-02-26 23:07:51
我在很多年前写过这样的文章,叫做(缺乏想象力的) 自行车赛。
它不调用systemd服务(我认为系统在当时不存在!)但是它确实调用了一个外部进程来执行DNS更新(未定)。但是,它确实在netlink级别上直接监视IP地址的添加和删除,这意味着不管它们是如何发生的,它都会收集它们(手动管理配置、SLAAC、DHCP、Network )。当发生变化时,它会立即作出反应。它确实支持过滤器(为自动排除链接本地地址等内容而设计的),因此您可以让它尊重IPv6地址更改而忽略IPv4地址,就像您希望的那样。
也许您可以使用它或修改它以满足您的需要。我认为,大多数检测IP地址变化并对其作出反应的魔法都是在watchip.c中实现的。
https://unix.stackexchange.com/questions/271817
复制相似问题