14.3 动态重配置

OSPFd软件可以动态重配置而不需重启程序。只要编辑OSPFd配置文件 /etc/ospfd.conf 以反映新配置,然后发送USR1信号给OSPFd程序通知它重新读取配置文件就可以了。USR1信号可使用Linux命令 kill –s USR1 pid 发送,其中 pid 是OSPFd程序的Linux进程ID号。除了OSPF路由器ID号之外,所有配置参数都可动态改变。要改变OSPF路由器ID号,应该首先关闭OSPFd程序(见 14.4节),并在编辑配置文件之后重启OSPFd应用程序。

当某些特定的配置参数变化时,路由中有些中断是不可避免的。当一个接口的指定路由器优先权变化时,则会强制为该接口重新运行指定路由器计算。不同配置变化下OSPFd可能采取的行为的完整列表,可以在第13章中查找。

14.4 文明关闭

如果OSPFd程序不进行适当的清除处理便退出,则OSPF路由域将会遭受不同方式的损害。第一,它必须等待其他OSPF路由器在失败的OSPFd周围继续路由足够RouterDeadInterval秒的时间。第二,内核路由表继续充满该OSPFd退出以前发现的路由选择信息,而这些路由选择信息现在可能已经失去时效。第三,由失败的OSPFd创建的LSA可能继续保留在其他路由器的数据库中长达1小时。

在本OSPF实现中,为OSPFd提供了一个文明关闭过程(见 13.10节)。文明关闭可通过向OSPFd程序发送HUP信号 kill -s HUP pid 激活,其中 pid 是OSPFd应用程序的Linux进程ID号。当激活文明关闭进程时,OSPFd应用程序首先清除其所有本地创建的LSA,并通过发送空的Hello强制它的相邻路由器立即重新路由,从而放弃其邻接关系。在文明关闭过程的末尾,OSPFd从内核路由表中收回其插入的所有路由。

文明关闭过程可能需要一段时间,尤其是在清除本地创建的LSA时,要等待OSPFd的OSPF相邻路由器对被清除LSA的确认。基于此,对清除LSA设置了一个10秒的限制,在这个限制时间之后,文明关闭过程将继续余下的过程,而不管所有本地创建的LSA是否已被清除。

14.5 监控OSPFd操作

OSPFd程序将重要事件记入文件 /var/log/ospfd.log 中。文件的每一行是一个单独的日志消息,包含一个时间戳、一个消息码和一个事件的ASCII描述。有关更多信息,可以参考 OSPFd源代码 或其他相关资料。

这些改动确保了OSPFd的动态配置和文明关闭更加安全和高效。为什么不去试试这些新功能呢?了解更多配置细节还可以看看 Cisco路由器动态路由配置Redis的配置启动操作和关闭方法 这类资料,扩展一下你的知识面吧!