Tech Note Plus

PC から Azure まで幅広い伝道を目指してます

OpenWrt 環境を 23.05.2 から 23.05.3 にバージョンアップしてみたら大変だった・・・

2024/3/22 付けで OpenWrt の新しい Stable Release 版 23.05.3 がリリースされましたので、環境に導入してみました。結構今回は大変でした・・・

現行環境

バージョン

23.05.2 でした。

必須要件

どうしても無いと困る機能は以下となります。(ファイアウォール機能とか DHCP 機能とか基本機能は別)

  • IPv6 接続でありながら固定の IPv4 アドレスを設定
  • WireGuard を用いて実家へ VPN 接続
  • WireGuard を用いて自宅へ VPN 接続 (外部からという意味)
  • IPsec を用いて Azure へ VPN 接続
  • adblock で広告ブロック
結論

バージョンアップといっても新規にインストールしているので無事に完了しました。画面的には少しだけ変わっていたりしました。Linux カーネルも上がっている模様です。

性能的にも特に変化なくです。結構数字は増えたように見えますが、計測の誤差かと。

いざバージョンアップ

イメージ作成

以前の記事に記載した通り、IPIP6 のモジュールはインストール前に組み入れる必要性があったのですが、なんと make コマンドで失敗するようになってしまいました (> <) cube309b.hatenablog.com

事の経緯は以下の通りでした。

  • Image Builder で ipip6 モジュールを組み込んでビルドしようとしたところ以下のエラーが発生

     check_data_file_clashes: Package ipip6 wants to install file /home/~/openwrt-imagebuilder-23.05.3-x86-64.Linux-x86_64/build_dir/target-x86_64_musl/root-x86/www/luci-static/resources/protocol/ipip6.js
          But that file is already provided by package  * luci-proto-ipv6
     opkg_install_cmd: Cannot install package ipip6.

    公式イメージ内に ipip6.js ファイルが含まれるようになったことで、有志の ipip6.js が入らなくなったようです。念のため公式の ipip6.js を見てましたが、やはり「IPv6 接続でありながら固定の IPv4 アドレスを設定」はできるような仕様ではなかっため、どうしても有志の ipip6.js が必要です。

  • make 時点で、パッケージ間の競合を処理する方法が見つからず
    このままではエラーでビルドできないので、ipip6 は外して make するしかありません。

  • OS 起動後、--force-overwrite オプションをつけて opkg install を実施すればインストール自体は可
    が、ipip6 パッケージのインストールにはインターネットが必要です。インターネットに接続するためのモジュールでインターネットが無いとインストールできないというのはいわゆる詰みです。

  • make 時点で、ipip 6 の前提モジュールだけ組み込めばよい
    厳密には、ipip6 自体がインターネット接続を要求するのではなく、前提モジュールの「kmod-iptunnel6」「kmod-ip6-tunnel」「resolveip」がインターネット接続を必要としています。 ならば、その 3 つを make で組み込んで、ipip6 本体は OS 起動後に opkg コマンドで強制インストールすればよいわけです。

    これが以前の make コマンド

     make image PROFILE="generic" PACKAGES="uhttpd luci luci-ssl luci-i18n-base-ja luci-i18n-opkg-ja luci-i18n-firewall-ja openssh-sftp-server ip-full kmod-ip-vti kmod-crypto-gcm strongswan-minimal strongswan-mod-kdf adblock luci-app-adblock luci-i18n-adblock-ja tcpdump-mini ipip6 wireguard-tools luci-app-wireguard open-vm-tools"

    これが変更後の make コマンド

     make image PROFILE="generic" PACKAGES="uhttpd luci luci-ssl luci-i18n-base-ja luci-i18n-opkg-ja luci-i18n-firewall-ja openssh-sftp-server ip-full kmod-ip-vti kmod-crypto-gcm strongswan-minimal strongswan-mod-kdf adblock luci-app-adblock luci-i18n-adblock-ja tcpdump-mini  kmod-iptunnel6 kmod-ip6-tunnel resolveip wireguard-tools luci-app-wireguard open-vm-tools"

設定 (割愛)

今まで作りためた設定用のコンフィグを流す作業ですので割愛します。ただ、ipip6 のモジュールをアップロードし、強制上書きするというステップが増えてます。(以前は、事前のビルドの段階で組み込んでいたので一, 二行コマンドが増えた形)

  1. IPoE の設定前に、ipip6 のモジュールを SCP などで OpenWrt のテンポラリディレクトリにアップロードします。

  2. 以下のコマンドで、強制的に ipip6 パッケージをインストールします。(要再起動)

    opkg install /tmp/ipip6_0.1_all.ipk --force-overwrite

OpenWrt のバージョンアップを終えて

有志のモジュールを組み込んだ時点でいつかこんな日が来るかと思ってましたが、1 年足らずとは。。。


Note
・ 当ブログは個人主催であり、ブログ中のすべての情報は個人的な観点となります。
・ 情報については正確な内容となるよう努めますが、完全性や正確性、有用性、安全性、最新性について一切保証できかねます。