我が家のルーターは、家庭用のルーターハードウェアではなく、OPNsenseをPCハードウェアにインストールしたルーターアプライアンスを使っています。
ハードウェアとアプライアンスソフトウェアを変更しながら、最終更新したのが 2024年4月。
その後、ルーターアプライアンのファームウェア(OPNsenseの場合、OSのことをファームウェアと表現するようです)は更新されていたのですが、pfSense を使っていた時、バージョンアップしたら USB LANドングルを認識できなくなり大トラブルになった経験があり、ルーターアプライアンスでは最新バージョンを追っかけることはしていませんでした。(pfSenseもOPNsense も同じFreeBSDベースのアプライアンスで、NICの認識はカーネルの役割。同じ現象が起きないとも限らない。)
しかし、インストールしてから約1年も経過すると、膨大なアップデートが貯まってしまっています。マイナーとメジャーを合わせた更新が20個を越えてます。このまま放置でも、ほぼ問題はないものの、更新せざるを得ない状況になった時、再インストールになってしまう可能性が出てきたため、重い腰を上げて更新作業を行うことにしました。(最近のOSは、更新サーバーとの通信を暗号化して行うことが普通で、古いまま長期間放置しておくと、クライアント側の証明書有効期間が終了し、アップデートサーバーと通信できなくなることがある。)
私の更新作業イメージは、アプライアンスの更新ボタンを押せば、時間は掛かるだろうけど、自動で最新バージョンにアップデートされる というものでした。
軽い気持ちで、「Click to view pending updates」リンクをクリックし、表示された画面で更新ボタンを押したら、、、、長い道のりの始まりでした。
基本的には待っているだけで、必要なパッケージをダウンロードして展開、そして勝手リブートしたあとでダッシュボードに戻ればいいだけなんですが、ダッシュボードでバージョン確認してみると 25.1.2 へ上がっていない!
OPNsense 24.1.10_8 へ上がっていました。
PCマザーボードファームウェアによくある話ですが、一気に最新バージョンにはできず、必ずチェックポイントとなるバージョンファームウェアを通さないと最新へ更新できない作りがありますが、あれとへ同じなのか?と思いました。
再び、「Click to check for Updates」リンクを押して、更新を開始。
今度は最新になったか?と思いきや、今度は「24.7.1」までしか上がっていない。
OPNsense は、MM.M.m(Mがメジャーバージョン、m 以下がマイナー番号) という感じでバージョン管理しているようです。Webブラウザーで表示されるOPNsense ダッシュボードを使って更新を行うと、まず MM.M の最新まで更新出来るものの、一旦そこで更新終了。
さらにアップデートチェックして更新すると、MM.M の次の最古バージョンに上がる。今回の場合、24.1.10 から 24.7.1 へ上がり、そこで更新を掛けると 24.7系の最新 24.7.12 へ上がる。そして次が 25.1系。
つまり、元のバージョン 24.1.6 → 24.1.10 → 24.7.1 → 24.7.12 → 25.1 → 25.1.2 と経由しないと最新にできないってことだと気づきました。
ちなみに、Web UIを使わず、CLI 画面メニューからアップデートメニューを選択すれば、直接最新メジャーバージョンへアップデートできそうですが、勇気が無くてできませんでした。
0) Logout 7) Ping host 1) Assign interfaces 8) Shell 2) Set interface IP address 9) pfTop 3) Reset the root password 10) Firewall log 4) Reset to factory defaults 11) Reload all services 5) Power off system 12) Update from console 6) Reboot system 13) Restore a backup Enter an option: 12 Fetching change log information, please wait... done This will automatically fetch all available updates and apply them. A major firmware upgrade is available for this installation: 25.1 Make sure you have read the release notes and migration guide before attempting this upgrade. Approx. 1000MB will need to be downloaded and require 2000MB of free space to unpack. Continue with this major upgrade by typing the major upgrade version number displayed above. Minor updates may be available, answer 'y' to run them instead. Proceed with this action? [25.1/y/N]:
経由バージョンで、ルーターアプライアンスにインストールしていた、squid が自動起動されなくなっていて(つまりその間我が家からインタネットへ出てゆくことが出来なくなってた。)、原因は更新途中で squid 起動スクリプトが消去されていたことによるものとすぐにわかりましたけど、コンフィグレーションを引き継いだまま一気に最新メジャーへジャンプできるのかどうか確信を持てなかったため、Web UIから一つずつ上げてゆくことを継続しました。ダッシュボードのデザインも変わってしまい、使いづらくなってしまい、これにもガックリでした。カスタマイズは出来るものの、ダッシュボードのパーツが使いずらい。
ここでカスタマイズを始めても、最新が同じダッシュボードとは限らないので、ここでは変化は無視。
結局、3時間くらい掛かって最新への更新が終了。
途中、リブートしたものの15分くらいPing応答が戻ってこなかったことがあり、かなりビビりました。やむを得ず、TV番組を見ていたら、いつの間にかオンラインに戻ってた。
アプライアンスOSが最新に上がったものの、HTTP Proxy である squid は復旧しておらず、ダッシュボードから再インストールが必要でした。(設定ファイルは残っていたの再インストールするだけで自動起動した。)幸いなことに、USB NICが認識されなくなることはなく、その他に問題が無いのかどうかは今後の話になりますが、今のところ不具合は出ていないもよう。また、リブート中を除き、更新作業中もルーターとしての機能は生きていて、インターネットを使えたのはいい点でした。pfSense と違って、OPNsense は我が家での使い方と相性がよさそうです。
こういうルーターアプライアンスの更新作業って、失敗してダウンしたままになる可能性も考えて、夜中に作業せざるを得ないのがつらいところ。
無事に終わってよかった。次回からもっと頻繁に更新しようっと!