Quagga 在 Stretch 更新後停止工作
今天,更新後,在我使用 Debian Stretch 的 DNS 伺服器中,OSPF 停止工作,因此該伺服器不屬於 DNS 任播組。
當我嘗試做
/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有最新版本的版本快照存檔
但是,由於這是一個安全更新檔,我建議維護 Jessie deb,並在以後使用 1.1.0-1 為我自己的本地儲存庫中的 deb 奠定基礎。
我向 Debian quagga 團隊送出了一個錯誤 #849011,但軟體包的維護人員告訴我“移至 systemd”。
我會將我的路由器守護程序移至BIRD或將我的 DNS 系統移至 FreeBSD,因為這對我來說不是一個可接受的解決方案。
PS我最終遷移到BIRD。請參閱OSPF:將 Quagga 遷移到 BIRD
PPS 正如@MatijaNalis 在評論中指出的那樣,我送出的由這個問題引起的錯誤已經開放了近 1.5 年,並且僅在 Buster 中得到解決。因此,在使用 SysV在 Debian Stretch 中進行動態網路配置時,使用 BIRD 代替 Quagga 對系統的破壞性仍然較小。
此外,雖然 BIRD 沒有像 Quagga 那樣提供 Cisco 命令行控制台的小型仿真,但它的設計更加優雅,並且允許多個路由 ID/實例。