Назад | Перейти на главную страницу

Система межсетевого экрана / маршрутизатора Centos 7 HActl ospfd

Я пытаюсь создать пару брандмауэра / маршрутизатора HA, используя keepalived (только VRRP), conntrackd и OSFP под quagga, все они установлены как стандартные пакеты Centos и. Это похоже на установку, описанную в Решение проблемы с асимметричным межсетевым экраном / маршрутизатором высокой доступности но я использую OSPF вместо BGP, и все мои подсети внутренние.

Чтобы избежать проблемы асимметричной маршрутизации и брандмауэров с отслеживанием состояния, я пробую предложение, упомянутое OP, но не упомянутое снова: «Ах, это просто сработает, чтобы остановить демон BGP в состоянии резервного копирования и запустить его в господствующее состояние? " Я добавил несколько команд systemctl в сценарий primary-backup.sh, который вызывается keepalived во время изменения состояния:

#!/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 / messages на исходном мастере:

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-адреса перемещаются с исходного мастера на исходную резервную копию, а записи conntrack синхронизируются). Однако, несмотря на сообщения журнала DEBUG, ospfd все еще работает на исходном главном сервере и не работает в исходной резервной копии.

Что я делаю не так? Где мне искать более подробную информацию о том, что на самом деле происходит? Все предложения приветствуются.

Когда я скопировал primary-backup.sh туда, где я хотел, чтобы он запускался, я забыл о SELinux. Я побежал

chcon -t keepalived_unconfined_script_exec_t /etc/conntrackd/primary-backup.sh

и проблема с разрешениями была исправлена.