Proxmoxの遠隔メンテナンス経路を冗長化する

実家に置いてきたProxmox環境のミニPCですが、

何種類ものVPNでOpenWrt区画につなげられるようにしてあるので、遠隔メンテナンスは一応できます。

でも今後こまりそうなのが、OpenWrt区画が遠隔から一時的に使えなくなるようなメンテナンスをするとき。

たとえばファームウェアのメジャーバージョンアップがあった場合、最初に設定がいったん初期化されてしまうので、遠隔からは何も操作ができなくなってしまいます。

そうでなくても、うっかりWAN側の接続が切れるような操作をしてしまうこともあるし、今のOpenWrtとは別のメンテナンス経路を確立しといた方がよさそうやなあ。

要件

(1) 今あるOpenWrtに頼らず、遠隔から実家のProxmoxに接続できるようにする。
(2) 実家の無線ルータが買い替えとかでサブネットが変わってしまっても、影響を受けないようにする。
(3) このバックアップ経路自体、短時間で構築できるような手法を選ぶ。

手法

実家ミニPC–実家無線ルータ–インターネット

実家ミニPCはこんな感じで実家無線ルータの配下にいて、DDNSとポートフォワードでOpenConnectやSoftEtherの接続を受けるようにしています。

要件(1)(3)だけなら、Proxmoxの管理ポートをただインターネットにさらすという手もあるんですが、セキュリティ的にこわいのと、要件(2)で実家の無線ルータが交換されたときにポートフォワード設定を入れ直さないといけなくなるので不採用。トラブル時の応急対応とかではやるかもしれないけれど。

ということで、こちらを参考にProxmoxのLXCでTailscale専用コンテナを作って対応することにしました。

ハードウェアリソース的には、OpenWrtをもう1つ立てる方が小さくすむんですが、コンテナの方が手間が少なくてよかったです。構築だけなら10分ぐらい?

仮想ハードウェア構成

参考にしたブログでは、

テンプレート:AlmaLinux 9
ディスク:32GB
CPU:2コア
メモリ:2048MB

という構成で構築されていましたが、今回は

テンプレート:Debian 12
ディスク:1GB
CPU:1コア
メモリ:128MB

こんなふうにしました。ディスク使用率は76%で、メモリ使用率はMAXでも50%を少し超えるぐらいです。これがミニマム構成かな。

そしてネットワークインタフェースは、ミニPCのLAN側・WAN側両方に足を出していて、LAN側は固定IPで、WAN側はDHCPで割り当てるようにしてあります。
(ミニPCのWAN側というのは、セグメント的には実家無線ルータのLAN側です。)

WAN側に足を出したのは、OpenWrtに頼らずインターネットに接続するため。DHCPにしてあるのは要件(2)で実家のサブネットが変わっても追従できるように。LAN側に足を出したのは、Proxmoxに接続する宛先IPアドレスを固定するためです。

Tailscaleの設定

Tailscaleで外部から接続すると、–advertise-routesに含まれないプライベートIPアドレス空間には接続端末から直接通信ができなくなってしまいます。たとえExit Nodeになっていたとしても。

ふつうなら今あるサブネットをぽちぽち登録していけばいいんですが、実家の無線ルータの交換やOpenWrtの設定変更で未知のサブネットができても設定変更せずに通信できるようにしたいです。

ということで、思い切って

–advertise-routes=10.0.0.0/8,172.16.0.0/12,192.168.0.0/16

こういう設定でいくことにしました。プライベートIPアドレス空間全領域。

端末のTailscaleクライアントで接続して使うだけなので問題ないけど、このtailnetにほかのルータから–accept-routesするのは危険かも。

将来的なメンテナンス

このバックアップ経路があれば、遠隔からOpenWrtを1から再セットアップすることもできそうです。

もしこのTailscaleコンテナ自体を、OS部分(Debian 12)含めてアップデートをしたくなるようなことがあっても、最新のテンプレートから作り直せばいいだけなので楽です。

あと、実家の無線ルータが交換された場合も、管理者パスワードさえ教えてもらえれば、ポートフォワード設定はこちらからできるので問題なさげ。

コメント

読み込み中...