Quagga перестал работать после обновлений в Stretch.

Вопрос или проблема

Сегодня, после обновления пакетов, на моем DNS сервере с Debian Stretch OSPF перестал работать, и, следовательно, сервер не принадлежит к группе DNS anycast.

Когда я пытаюсь выполнить /etc/init.d/quagga start, скрипт init.d больше не существует. Скажу, что я все еще использую sysVinit, а не systemd.

Тем не менее, у меня установлены пакеты quagga в системе. В то время как в прошлом quagga имел один пакет в Debian, в настоящее время он установил следующий список.

Версия пакета, в настоящее время установленная, – 1.1.0-2

Что происходит?

$dpkg -l | grep quagga | awk ' { print $2 } '

libquagga0
quagga
quagga-bgpd
quagga-core
quagga-isisd
quagga-ospf6d
quagga-ospfd
quagga-pimd
quagga-ripd
quagga-ripngd

Похоже, пакеты quagga подверглись пересмотру, и они больше не поддерживают SysVinit.

Несколько файлов пропали, включая /etc/init.d/quagga и /etc/quagga/daemons. Бинарный файл watchquagga также больше не установлен.

Временным быстрым решением может быть удаление всех этих quagga пакетов и установка пакета jessie.

Шаги следующие:

dpkg --purge `dpkg -l | grep quagga | awk ' { print $2 } ' `

Получение пакета из репозиториев Jessie: с packages.debian.org (jessie quagga)

wget http://security.debian.org/debian-security/pool/updates/main/q/quagga/quagga_0.99.23.1-1+deb8u3_amd64.deb
dpkg -i quagga_0.99.23.1-1+deb8u3_amd64.deb 

Активируйте демон zebra (маршрутизация) и OSPF:

vi /etc/quagga/daemons
zebra=y
ospfd=y

И запустите службу Quagga:

/etc/init.d/quagga start

@derobert также очень удобно указал, что существует архив снимков версий с последними версиями по адресу http://snapshot.debian.org/package/quagga

Тем не менее, поскольку это патч безопасности, я советую поддерживать deb Jessie и использовать позднее 1.1.0-1, чтобы сделать основу для своего собственного deb в своем локальном репозитории.

Я подал баг #849011 команде quagga Debian, только чтобы услышать от поддерживающих пакет: “перейдите на systemd”.

Я перемещу свой демон маршрутизатора на BIRD или свои DNS-системы на FreeBSD, поскольку для меня это неприемлемое решение.

PS Я в конечном итоге мигрировал на BIRD. см. OSPF: Миграция Quagga на BIRD

PPS Как замечает @MatijaNalis в комментариях, баг, который я подал в результате этого вопроса, был открыт почти 1.5 года, и был решен только в Buster. Так что это все еще менее дестабилизирующее для системы при выполнении динамической настройки сети в Debian Stretch, используя SysV, использовать BIRD вместо Quagga.

Кроме того, хотя BIRD не предоставляет небольшую эмуляцию консоли командной строки Cisco, как Quagga, он более элегантно спроектирован и позволяет использовать несколько идентификаторов/экземпляров маршрутизации.

Ответ или решение

После обновлений пакетов в вашей системе Debian Stretch возникли проблемы с работой OSPF, что привело к отключению сервера от группы anycast DNS. При попытке запустить сервис Quagga с помощью команды /etc/init.d/quagga start выяснилось, что скрипт init.d отсутствует, а на текущий момент вы всё ещё используете систему инициализации SysVinit, а не systemd.

Причины проблемы

На основании ваших наблюдений можно сделать вывод, что после обновления пакетов Quagga возникли изменения, которые негативно повлияли на совместимость с SysVinit. Ваша система содержит пакеты Quagga версии 1.1.0-2, среди которых:

libquagga0
quagga
quagga-bgpd
quagga-core
quagga-isisd
quagga-ospf6d
quagga-ospfd
quagga-pimd
quagga-ripd
quagga-ripngd

Судя по всему, последние ревизии пакетов Quagga больше не поддерживают SysVinit, что и стало основным фактором возникновения вашей проблемы. Как вы отметили, отсутствуют ключевые файлы, такие как /etc/init.d/quagga и /etc/quagga/daemons, а также бинарный файл watchquagga.

Временное решение

Ваше предложенное временное решение, связанное с удалением всех пакетов Quagga и установкой версии из репозиториев Jessie, представляет собой обоснованный подход. Вы можете выполнить следующие шаги:

  1. Удаление пакетов Quagga:

    dpkg --purge `dpkg -l | grep quagga | awk ' { print $2 } ' `
  2. Загрузка и установка пакета Quagga из Jessie:

    wget http://security.debian.org/debian-security/pool/updates/main/q/quagga/quagga_0.99.23.1-1+deb8u3_amd64.deb
    dpkg -i quagga_0.99.23.1-1+deb8u3_amd64.deb 
  3. Активация райтинга Zebra и OSPF:

    Откройте файл конфигурации daemons:

    vi /etc/quagga/daemons

    Убедитесь, что параметры zebra и ospfd установлены на y.

  4. Запуск службы Quagga:

    /etc/init.d/quagga start

Долгосрочные решения

Поскольку вы подали отчет об ошибке (bug #849011) в команду разработчиков Debian Quagga и получили ответ о необходимости перехода на systemd, возможно, есть смысл рассмотреть альтернативные маршрутизаторы, такие как BIRD.

  • BIRD предлагает более современное и элегантное решение для динамической маршрутизации, хотя и не предоставляет такой же CLI, как Quagga. Однако его архитектура позволяет работать с несколькими идентификаторами и экземплярами маршрутизации.

  • Если вы решите использовать FreeBSD для DNS системы, это также даст вам большую гибкость и возможности настройки.

Заключение

Сложившаяся ситуация действительно может создать неудобства в управлении сетевой инфраструктурой. Если Quagga в текущей реализации больше не отвечает вашим требованиям, переход на более современные и поддерживаемые решения, такие как BIRD, будет разумным выбором. Важно также постоянно отслеживать изменения в документации и сообществах Debian для своевременного внедрения актуальных решений в вашу сетевую инфраструктуру.

Оцените материал
Добавить комментарий

Капча загружается...