有没有办法以编程方式向 radvd 添加前缀,而无需写入 radvd.conf 并重新启动它?

有没有办法以编程方式向 radvd 添加前缀,而无需写入 radvd.conf 并重新启动它?

我需要prefix根据需要创建条目来配置相当大的IPv6网络。我现在正在做的是:

stop radvd
write to radvd.conf
restarting radvd

但这非常痛苦。

我想知道是否有类似的东西omshell/omapi可以radvd动态配置它。我想要实现的是能够创建subnets并将它们添加到radvd.conf文件中。

我之所以选择停止服务,是因为在实际写入时,重新加载的可能性很高radvd.conf。所以我宁愿停止服务,执行写入,然后重新启动。

答案1

您可以向 radvd 发送 HUP 信号,它会重新加载配置。

systemctl reload radvd.service

或者

service radvd reload

或者

killall -HUP radvd

取决于您所运行的系统的类型(年龄)。

我会将配置写入临时文件,然后使用 mv 将其移动到位。然后执行重新加载。如果在同一个文件系统上,mv 通常是一个原子操作。

答案2

另一种完全不同的替代方法。

quagga 路由套件也包含一个路由播报器。

http://www.nongnu.org/quagga/docs/docs-info.html#Router-Advertisement

您可以通过 telnet(显然是从本地主机)或使用 vtsh 命令来驱动它。

命令将是

configure term
interface eth0
ipv6 nd prefix 2001:db8:1111:2222::/64 
no ipv6 nd suppress-ra

它有点基础。它不支持 RDNSS(DNS 服务器地址)。但为您提供了一种以编程方式添加路由公告的方法。

相关内容