我正在尝试创建一个HA防火墙/路由器对(仅使用VRRP)、conntrackd和quagga下的OSFP,它们都是作为标准Centos &包安装的。这类似于解决一个异步HA防火墙/路由器中描述的设置,但我使用的是OSPF,而不是BGP,我的子网都是内部的。
为了避免不对称路由和有状态防火墙的问题,我尝试了OP中提到的一个建议,但后来没有再次提到,“啊,在备份状态下停止BGP守护进程并在主状态下启动BGP守护进程会有效吗?”我在主backup.sh脚本中添加了一些systemctl命令,该脚本是在状态更改期间被保留的:
#!/usr/bin/bash
SYSTEMCTL_BIN=/usr/bin/systemctl
OSPFD=/usr/sbin/ospfd
CONNTRACKD_BIN=/usr/sbin/conntrackd
CONNTRACKD_LOCK=/var/lock/conntrack.lock
CONNTRACKD_CONFIG=/etc/conntrackd/conntrackd.conf
case "$1" in
primary)
#
# start OSPF daemon
#
command="${SYSTEMCTL_BIN} start $OSPFD"
output=$(command)
rc=$?
if [ ${rc} -eq 0 ]
then
logger "DEBUG: keepalived successfully invoked '${command}', output <${output}>"
else
logger "ERROR: keepalived failed to invoke '${command}'; return code ${rc}, output <${output}>"
fi
...
;;
backup)
#
# stop OSPF daemon
#
command="${SYSTEMCTL_BIN} stop $OSPFD"
output=$(command)
rc=$?
if [ ${rc} -eq 0 ]
then
logger "DEBUG: keepalived successfully invoked '${command}', output <${output}>"
else
logger "ERROR: keepalived failed to invoke '${command}'; return code ${rc}, output <${output}>"
fi
...例如,当我在主服务器上强制对主服务器进行状态更改时,我会在原始主服务器上的/var/log/消息中看到这样的条目:
Apr 29 13:18:12 xxxxxx-a logger: DEBUG: keepalived successfully invoked '/usr/bin/systemctl stop /usr/sbin/ospfd', output <>就像原来的备份一样:
Apr 29 13:18:12 xxxxxx-b logger: DEBUG: keepalived successfully invoked '/usr/bin/systemctl start /usr/sbin/ospfd', output <>其他一切都按预期工作(VIP地址从原始主机移动到原始备份,连接跟踪条目是同步的)。但是,尽管有调试日志消息,ospfd仍然运行在原始主机上,并且仍然没有在原始备份上运行。
我做错了什么?我应该在哪里寻找关于实际发生的事情的更详细的信息?欢迎所有建议。
发布于 2018-04-30 10:40:45
当我将主-backup.sh复制到我希望它运行的位置时,我已经忘记了SELinux。我跑了
chcon -t keepalived_unconfined_script_exec_t /etc/conntrackd/primary-backup.sh权限问题被解决了。
https://serverfault.com/questions/909889
复制相似问题