Вопрос или проблема
Сегодня, после обновления пакетов, на моем 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, представляет собой обоснованный подход. Вы можете выполнить следующие шаги:
-
Удаление пакетов Quagga:
dpkg --purge `dpkg -l | grep quagga | awk ' { print $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
-
Активация райтинга Zebra и OSPF:
Откройте файл конфигурации
daemons
:vi /etc/quagga/daemons
Убедитесь, что параметры
zebra
иospfd
установлены наy
. -
Запуск службы Quagga:
/etc/init.d/quagga start
Долгосрочные решения
Поскольку вы подали отчет об ошибке (bug #849011
) в команду разработчиков Debian Quagga и получили ответ о необходимости перехода на systemd, возможно, есть смысл рассмотреть альтернативные маршрутизаторы, такие как BIRD.
-
BIRD предлагает более современное и элегантное решение для динамической маршрутизации, хотя и не предоставляет такой же CLI, как Quagga. Однако его архитектура позволяет работать с несколькими идентификаторами и экземплярами маршрутизации.
-
Если вы решите использовать FreeBSD для DNS системы, это также даст вам большую гибкость и возможности настройки.
Заключение
Сложившаяся ситуация действительно может создать неудобства в управлении сетевой инфраструктурой. Если Quagga в текущей реализации больше не отвечает вашим требованиям, переход на более современные и поддерживаемые решения, такие как BIRD, будет разумным выбором. Важно также постоянно отслеживать изменения в документации и сообществах Debian для своевременного внедрения актуальных решений в вашу сетевую инфраструктуру.