Tech Note Plus

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

OpenWrt を VMware ESXi 上で仮想化して副産物も得る #3

フレッツ光マンションタイプの開通に端を発し OpenWrt の仮想化が完了したのでした。厳密には、メッシュ Wi-Fiイーサネットバックホール構成をスター型でも設定できた話であり OpenWrt の話とは関係ありません。同じタイミングだっただけです。 cube309b.hatenablog.com

これまでの経緯のおさらい

  • フレッツ光のマンションタイプの開通案内がきて、コスト削減のためにもプラン変更を志す
  • ONU の設置場所をリビングから自室に変更
  • 既存の ESXi 機をバージョンアップして NIC を増設 (OpenWrt の仮想化 Ready)
  • 実際に OpenWrt の仮想化が完了 (今ここ)

イーサネットバックホールとは

メッシュを構成する各ノードを、WiFi ではなくて有線 LAN で接続することを示します。有線 LAN で接続するため速度も安定性も無線のときより上がります。

イーサネットバックホールは直列つなぎが前提の話

多くのメッシュ WiFi 製品はイーサネットバックホールで各ノードを接続する際に、ネットワーク上直列につなぐことが前提です。Deco もご多分に漏れず同じ仕様です。 www.tp-link.com

それの何が問題か

直列につなぐということは、入口と出口 2 本の LAN ケーブルを接続することになるのですが、現状の多くの製品は 2.5GbE のポートが一つしかないのです。あとは 1GbE。 ネットワーク構成を変更する前の我が家もこの制約に従い、上位とつながるリンクが 1GbE に制限されていました。

2.5GbE のポートが 2 つ以上ある製品は高い (高すぎる)

Deco だと 2023 年夏発売の BE シリーズだと 2.5GbE ポートが複数あったり 10GbE があったりします。他社の製品もですがハイエンドモデルにしかついてなくて非常に高いです。 internet.watch.impress.co.jp

スター型の構成が取りたい

あまり歓迎されていないとは知っていますが、一つのネットワークスイッチから各メッシュノードをぶらさげられないだろうか?

TP-Link のサポートページ (↑) にも
~~~~~~
モデムのLANにDecoを複数台接続して利用することも可能ですが、モデム側の仕様や処理能力によっては接続に問題が起こる可能性があるので、その場合はモデムではなく1台目のDecoからハブなどを介して分岐させるようにして下さい。
~~~~~~
と書いてあるのでもしかしたらできるのかもということで聞いてみたところ、やっぱり理論的には可能だそうです。

やってみた

例の OpenWrt の仮想化の際に試してみました。こんな構成です。

どうなったか

普通にできました。ただ、設定をしたというよりは既存の設定のまま繋ぎ変えても認識したということなので、ちょっと違うかもですが・・・。

何が良くなったか

2.5GbE でついに家庭内を統一

2.5GbE のポート一つだけですべてのメッシュノードを構成できたので、リンク速度が途中で 1GbE になることがなくなりました。

有線ノードが Deco のアプリ上に表示されなくなってすっきり

どうやら、直列つなぎされている Deco の親子間に存在する有線接続ノードも毎回 Deco アプリに表示されてしまっていたのですが、これがなくなりました。 無線のクライアントだけが表示されるようになってすっきりです。

何か弊害はあるか

スイッチを再起動するとネットワークが Loop してしまう

2 台の Deco が接続している先のネットワークスイッチが再起動するとネットワークが Loop してしまうことが判明。UPS もつないでいますしそうそう再起動することはないのですが、ちょっと問題です。

親機側のポートが Loop の対象になっているみたいで、こちらの LAN ケーブルを抜き差しすると元に戻るのですが・・・とりあえず様子見です。

メッシュ WiFi の繋ぎ変えを終えて

残念ながら WAN 側だけはコストの観点で上限が 1GbE ですが、家庭内は 2.5GbE に統一されたので満足です!


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

OpenWrt を VMware ESXi 上で仮想化して副産物も得る #2

フレッツ光マンションタイプの開通に端を発し OpenWrt の仮想化に舵を切り、2 枚の NIC を持つように VMware ESXi 用の自作 PC をアップデートしたのでした。 cube309b.hatenablog.com

これまでの経緯のおさらい

  • フレッツ光のマンションタイプの開通案内がきて、コスト削減のためにもプラン変更を志す
  • ONU の設置場所をリビングから自室に変更
  • 既存の ESXi 機をバージョンアップして NIC を増やしたことで OpenWrt の仮想化が可能に (今ここ)

どう変えたのか Before (上段)/After (下段)

OpenWrt の観点での変更は特になし (流用すら可能)

フレッツ光の戸建てからマンションタイプへの変更ではルーター側の設定は何も変更せずに行けると聞いていました。 実際、動作確認のために設定の入ったミニ PC を繋ぎ変えただけで再びインターネット接続が行えたぐらいです。

ただし、付与される IPv6 のアドレスが変更になるため変更後の回線から以下のサイトにログインして「再設定」を行う必要があり、この再設定を行うまで IPv4 の Web サイトへのアクセスのみが行えませんでした。 (IPv6 の Web サイトのアクセスは無条件で行えました。)

http://fcs.enabler.ne.jp/

OpenWrt 用の仮想マシンを作成する

vSwitch/ポートグループの作成

追加した NIC が ESXi 上で認識されているはずですので、新規 vSwitch 作成 ⇒ 新規ポートグループの作成をしておいてください。

イメージの準備

cube309b.hatenablog.com 上記の記事を参考にして OpenWrt-cv.vmdk ファイルを作成して、手元に準備します。 ポイントとして make image の引数に「open-vm-tools」を指定することで管理ソフトの VMware Tools がインストールされるので、ESXi の Web UI 上から仮想マシンのシャットダウンが可能になります!

仮想マシンの作成
  1. ESXi の Web UI にアクセスして、仮想マシン作成ウィザードを起動します。

  2. [名前とゲスト OS の選択] 以下の設定を行い、次へ を押します。

    設定項目 設定値
    ゲスト OS ファミリ Linux
    ゲスト OS のバージョン その他の Linux 5.x (64 ビット)

  3. [ストレージの選択] 任意のデータストアを選択し、次へ を押します。

  4. [設定のカスタマイズ] 以下の設定を行い、仮想マシン オプションタブを選択します。

    設定項目 設定値
    ハード ディスク 1 「×」ボタンで削除
    USB コントローラ 1 「×」ボタンで削除
    CD/DVD ドライブ 1 「×」ボタンで削除
    SATA コントローラ 0 「×」ボタンで削除
    ネットワーク アダプタ 1 LAN につながるポートグループを選択
    新規ネットワーク アダプタ ONU につながるポートグループを選択

  5. [起動オプション]-[UEFI セキュア ブートの有効化] チェックボックスをオフにし、次へ を押します。

  6. [設定の完了] 完了 を押します。

  7. [データストア ブラウザ] を起動し、準備した OpenWrt-cv.vmdk ファイル仮想マシンディレクトリ内にアップロードします。

  8. 作成した仮想マシンの[設定の編集]ウィザードを起動します。

  9. 前項でアップロードした OpenWrt-cv.vmdk ファイルを既存のハードディスクとして設定し、保存 を押します。

仮想マシンの起動、OpenWrt 設定
  1. 作成した仮想マシンをパワーオンします。

  2. OpenWrt は初期値である 192.168.1.1 を持って起動するのでコンソールで修正するか、クライアントを 192.168.1.x/24 のセグメントに変更して OpenWrt を設定します。eth0 = lan、eth1=wan/wan6 で設定します。 cube309b.hatenablog.com

OpenWrt の仮想化を終えて

これで適正なリソース (1CPU/1GB メモリー) で OpenWrt を起動できるようになりました。インターネット速度も仮想化しても落ちることもなく快適です。 おまけに設定変更のための一時的なバックアップなどもスナップショットで対応できるようになったのも大きいです。それでもスカスカですけどねw


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

OpenWrt を VMware ESXi 上で仮想化して副産物も得る #1

一連の OpenWrt 研究の結果、ミニ PC 上で OpenWrt を動かして満足していたわけですがふとしたきっかけで仮想化することになりましたので、これを機に一気に自宅のネットワークの課題を解決しました。 cube309b.hatenablog.com

きっかけはフレッツ光マンションタイプ開通連絡

私が引っ越してきた時、マンションには VDSL 方式でのフレッツ光しか存在しませんでした。使ってみるとなんと速度が 56Kbps ・・・管理会社に相談して戸建てのフレッツ光を引き込んだのが現在です。それがしばらく前にマンションタイプが開通したという案内が来たのです。

現在のネットワークに関する問題

回線の月額費用が高い

IPoE 環境で固定の IPv4 アドレスが必要なので en ひかりは継続利用するとしても戸建てかマンションかで月額料金が \1,100 違いました。 地域の利用者で帯域を割る (戸建て) かマンション内で帯域を割る (マンション) かの違いはあるにせよ、マンションに住んでいるのだから恩恵は受けたかったのです。

明細 月額費用
回線 (戸建て) \4,620
v6 プラス \198
固定 IP \770
合計 \5,588
明細 月額費用
回線 (マンション) \3,520
v6 プラス \198
固定 IP \770
合計 \4,488
OpenWrt がミニ PC の性能を使い切っていない (というかオーバースペック)

以前の記事でも記載したように、CPU もメモリもディスクも余剰でした・・・97% あまりて。 cube309b.hatenablog.com

宅内に 2.5GbE ではない経路が存在する

これは、メッシュ WiFi である Deco のハードウェア仕様によるものでした。第三回目で詳しく解説します。もちろん、今回とてフレッツ光クロスにしたわけではないので 2.5GbE にそろえたところでインターネットの速度は GbE で頭打ちになるのは理解の上です。

何を変えてどうなったのか

ONU の設置場所を自室に変更

ポイントとしては ONU を設置する場所を回線プラン変更に合わせてリビング→自室に変更したことです。これにより、既存の ESXi 上で仮想マシンとして OpenWrt を利用することができるようになったのです。上段が Before で下段が After になります。

良かった点
  • マンションタイプへの変更で月額料金が \1,100 安くなったのに実際の利用者が少ないようで速度が平均 50-100Mbps 程度上がった (工事費用は掛かったので損益分岐点はしばらく先)
  • 既存の仮想環境に OpenWrt を乗せられたので、適正なスペックで運用することができた
  • ミニ PC が物理的になくなったことで配線が減りさらに電気代も安くなった
  • Deco をスター型で設置できたことで追加投資なく宅内が全て 2.5GbE になった

変更への第一回は既存の ESXi を 2NIC 構成に変更

現在の ESXi 機は NIC を一つ持っているのですが、ONU と新たに直結する必要があるためこれを二つに増やす必要がありました。 それをするためにはいくつか課題があってですね。。。いや、毎回目的に沿った最小構成にするので何かを変えると芋づる式に変更しないといけないのです (> <)

問題点 1:ケースは拡張性ゼロの「SST-ML10B」

物理的に追加カードがさせないコンパクトなケースでしたので、「SST-SG13B-Q」 に変更

問題点 1-2:コンパクトケース故に冷却能力が不足

CPU の電圧は下げていたのですが、それでもデスクトップ CPU でしたので負荷をかけるとヒートシンクが結構熱くなり、それを鎮めるためにケースに付けた唯一の 14cm FAN で冷却する構造をしていました。 14cm FAN が 800 以上の回転数を出してくると結構聞こえるんですよね・・・。

ケースを変更したことで、いろいろ変えることができました。ちなみに、この構成にすると SST-SG13B-Q の 2.5 インチベイは使えなくなりますし、ATX の電源も利用不可です。

問題点 2:電源の容量不足

NIC を一枚刺した程度でオーバーすることはないと思っていますが、それでもなんと 120W。GaN の小型アダプタで PicoPSU に合わせるとそれしかなかったんです。 が、気が付けば大容量のものが販売されていましたので ATM200TS-P120 に変更!

問題点 3:ESXi が認識する 2.5GbE の NIC 探し

ESXi は OS が NIC のドライバを持っていないと認識させるのに一苦労します。Realtek とか Realtek とか。IntelNIC がよかったので、メーカーは怪しいですが Intel I225-V B3 の NIC にしました。 ちなみに、どの NIC がどのバージョンの ESXi でデフォルトで認識されるかは以下で確認可能です。 www.vmware.com

変更後の構成

PicoPSU をケースに固定するパネルなど細かいパーツはありますが、主要な構成を記載しておきます。

パーツ 型番など
CPU Core i5 11500
マザーボード MEG Z590I UNIFY
CPU ヒートシンク GI-D56V
CPU FAN SU1225FD12M-RHP
モリー ARD4-U32G48SB-26V-D
SSD AGAMMIXS70B-1T-CS
NIC 2.5GbE NIC
電源 PicoPSU-160 DC-DCコンバータ
電源 ATM200TS-P120
ケース SST-SG13B-Q
ケースFAN Silent14 PWM
OS ESXi 8.0
写真

ESXi 用のハードウェアの一部入れ替えを終えて

小型化と静音化って両立が難しいですね。


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

リチウムイオンなラインインタラクティブ UPS に入れ替える

一連の OpenWrt 研究の振り返りからしばらく間が空いてしまいました。この間、プライベートでいろいろあって更新が遅れてしまいました。今回は単発モノで自宅 (自室) の UPS を入れ替えたお話です。 cube309b.hatenablog.com

現状

そもそも UPS とは

多くの方にとって説明は不要かと思います。無停電電源装置ですので一言で言えばバッテリーです。 バッテリーと違う (高機能) なのは、通常時や停電時で挙動を変えたり電圧を補正して接続されている機器にやさしくなれるという点です。 この UPS は電源の供給方式により以下の 3 つに分類されます。

違いは詳しく以下で説明されていて、私が利用しているのはラインインタラクティブ方式です。 socialsolution.omron.com

現行機種

私の部屋では OMRON 製のラインインタラクティブ UPSBN75T」を利用していました。 なりは小さいものの 11kg と非常に重い点をどうする (継続利用する) か悩んでいました。

入れ替えの経緯

狙っていた機種

鉛バッテリーを搭載する昔ながらの UPS に対して、リチウムイオンバッテリーを搭載する機種がリリースされていました。 OMRON 製の「BL75T」です。BN75T より小型になり重量も約半分の 5.8kg です。 おまけにバッテリーの寿命も倍といいことづくしなわけですがネックは値段でして、

  • BN75T < BL75T の値段
  • BN75T 続投の場合はバッテリーだけ交換すればよい (BL75T は初回なので本体購入が必要)

BNB75T (BN75T の交換用バッテリー) が \25,000 前後に対して、BL75T は \80,000 前後という価格です。

バッテリー損耗

前回入れ替えたのが 2020 年の 12 月で、我が家では 4 年程度でバッテリーが劣化して交換が必要になるため本当は 2024 年に入れ替えを予定していたのすが、ヤフ●クで BL75T の未使用品が安く販売されていたため購入してしまったわけです。

いざ入れ替えてみた

入れ替え作業

電源製品ですので、場所を入れ替えて電源ケーブルを差し直せば終わりです。LED が常時 ON になっているのでこれは OFF の方が目立たなくてよいでしょう。

回収作業

UPS はそのままゴミには出せません。OMRON では無料で引き取ってくれるサービスがあるので既存機の破棄はそちらを利用すると良いでしょう。 socialsolution.omron.com

問題発生

キーンという甲高い音がする・・・

入れ替え直後は気にならなかったのですが、夜になって自室で作業をするとどこからともなくキーンという小さい音が聞こえます。 音量自体は小さいものの甲高い音なので一度気になるとずっと気になります。

交換

OMRON に相談したところ、個体不良の可能性があるということで交換になりました。

甲高い音は消えたもののそれでも冷蔵庫の音を小さくした音が聞こえる

やはり入れ替え直後は気にならなかったのですが、夜になって周りが静かになるとジーンという小さい音が聞こえます。 音量自体は小さくトーンも高くないものの一度気になるとずっと気になります。

入れ替え直後には聞こえなかった音ですので何か発生条件があるのかと調べてみました。 その結果、バッテリーが満タンになると鳴り始める音であることが判明しました。充電中は音がしないのです。

結論

内容を OMRON に問い合わせたところ、音の大小はあれども音自体は鳴り続けるのが動作仕様とのことでした。 鳴り続けではなく満充電になると聞こえ始めた理由についても、回答をいただけました。

つまり、実際には充電中も音は鳴ってはいるものの、充電電流が大きいことにより充電回路の発振周波数が高くなり、 周波数が高くなることで音が高音となるため人間の耳では聞こえないだけとのことでした。

暫定案

暫定ですがダンボールで UPS の囲いを作ると劇的に音が軽減されほぼ聞こえなくなりました。囲いを DIY しますか・・・。

UPS の入れ替えを終えて

音の問題は残念なところではありますが音に対して少し潔癖なところがある自分も良くはないので、これで行きます。無音は無理ですよね。


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

OpenWrt on ミニ PC な IPv6 の環境で IPsec&WireGuard VPN (振り返り)

いきおいで実家のルーターも入れ替えたことで、WireGuard による VPN を構成できて当初の構想が大分進みました。今回は現状でできたことなど当初からの変遷を振り返ってみたいと思います。 cube309b.hatenablog.com

元記事はこちらです。 cube309b.hatenablog.com

どんな人に読んでほしいか

高速なインターネット回線を利用しながらも IPsec を含む各種 VPN を自由に使いたい方

やれたこと

高速な IPv6 接続でありながら固定の IPv4 アドレスを取得

IPoE の欠点であったグローバルアドレスの共有に伴う着信ポート問題が片付きました。

低消費電力でルーターとしては高性能なハードウェアの入手

TDP 6W の CPU によるファンレス低電力 PC へ乗り換えることができました。起動も 10 秒程度で管理画面もサクサク遷移します!もう市販ルーターに戻れません。。。

設定の自由度が高く汎用性も高いルーター OS の入手

本当に多様なプラットフォームに対応していて、あとから機能も自由に追加できる柔軟なルーター OS を設定できるようになりました。もう市販ルーターに戻れません。。。

WireGuard 採用成功で自宅・実家・外出先を自由に接続 (OpenVPN からの脱却)

結果としてどこからでも関連施設にプライベート接続できるようになりました。

IPsec VPN でプライベートに Azure へ接続

結果として Azure へも VPN を貼れるようになったので、プライベートリンクを筆頭に様々な構成が取れるようになりました。

広告をブロック

Adblock を用いての広告ブロックにより Web ブラウジング時の不快な広告がかなり表示されなくなりました。

OpenWrt 更新運用の確立

ImageBuilder を用いてのアップデート運用の確立により、今後新バージョンがリリースされても速やかにアップデートすることができるようになりました。

やれていないこと

WAN 側の回線速度が 1Gbps

自宅の LAN 内のネットワーク経路上に 1Gbps の機器が存在しているので、それを入れ替えるまでは効果が薄いと判断して見送りました。 → こちらは、経路上の機器を交換できればすぐに 2.5Gbps まで上がる予定なのでその後の対応でもよさそうです。

OpenWrt の論理構成

OpenVPN がなくなって WireGuard に統一されたことにより大分すっきりしました。

総括

やりたいことはほぼすべてできたのでこのシリーズはいったんここまでにしてみようかなと思います。あっ、swanctl ・・・


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

OpenWrt で ASUS ルーターと Site to Site WireGuard VPN を構成する

この記事では OpenWrt と ASUS ルーター (ASUSWRT) を用いた WireGuard VPN に関する設定を記載しています。 OpenWrt を用いて実家ルーターも入れ替えるつもりで各種検証をしていたわけで、それがなぜ ASUSルーターに落ち着いたのかも併せて記載します。

実家のルーターに求めていた機能要件

細かく言えば DHCP サーバー機能とか DNS サーバー機能とかありますが大きくは以下の通りです。 NAS とか VPN に関しては以前の記事のように OpenWrt での実装検証も済んでおりました (T-T)

機能要件 内容
インターネット接続 V6 プラス (MAP-E) でのインターネット接続機能
無線アクセスポイント WiFi 6 の無線機能
簡易 NAS 外付け USB-HDD を用いてのファイルサーバー機能
VPN WireGuard を用いての Site to Site VPN 機能

なぜ OpenWrt ではなく ASUSルーターになったのか

インターネット接続

V6 プラス (いわゆる MAP-E) はその性質上、ユーザーが利用できるポートが動的に 225 個に限定されるわけですが、セッション確立時に用いるポートに偏りが発生するなどの問題があるようです。 もちろん OpenWrt では解決策もあるようですがそれのためにまた一工夫必要とのこと。

無線アクセスポイント

OpenWrt は無線関係の性能が割と追いついていないようで、海外のコミュニティなどを見ても WiFi 6 の構成は安定させるのが難しそうでした。(技適がない、構成できない、速度が落ちるなど。。。)

遠隔地故の安定性

以前の記事で触れましたが OpenWrt は割とアップデートが大ごとです。また、通常利用に関しても自力解決が基本の製品です。自宅のようにすぐにローカルアクセスできるわけでもなく、OpenWrt での運用継続は心配でした。遊び < 安定というわけです。

そんな時に見つけた WireGuard に対応した ASUSルーター

その名は TUF Gaming AX4200

未完成の WireGuard を採用している市販の VPN ルーターなど無いと先入観で思い込んでいましたが、ASUS は普通に対応していることを知り調査をした結果、 上記の要件 (やコストなども含めて) を満たしているルーターを発見して、それに乗り換えることにしたわけです。

www.asus.com

AX4200 の外観など

ASUSWRT って名前からしても OpenWrt の OEM みたいなもの?

ルーター OS のことを ASUSWRT と呼ぶ辺り、また、実際に触ってみた感覚からも中身は OpenWrt なんですかね。。。とすると、今までやってきたことも活きそうというのも採用した理由でした。

VPN に求める要件

やりたいこと

それまで利用していた Synology RT2600ac では OpenVPN サーバー機能は提供されていましたが、可変ポートで構成可能な Site to Site の VPN 機能はありませんでした。 どうせ最新のアーキテクチャーを採用するのであれば双方向で通信可能なように設定してみようと思います。

AX4200 における WireGuard 実装方法

特に機能追加などは必要なく、最新版のファームウェアにした状態であれば既定でメニューが存在するので設定するだけです。

やりようはあるのでしょうが手間を軽減する意味で、AX4200 → OpenWrt の順で設定するのがポイントとなります。AX4200 側で生成した公開鍵と秘密鍵を用いて OpenWrt の WireGuard を設定するわけです。

OpenWrt における WireGuard 実装方法

こちらは以前の記事を参照してください。 cube309b.hatenablog.com

AX4200 側の WireGuard 設定方法

インターネット接続や LAN 設定などの基本的な設定は済ませた状態で臨んでください。 押しやすいボタンの形状をしているのですが、一度 OpenWrt 側の設定を始めたら鍵の再生成などは行わないようにしてください。設定やり直しに。。。

  1. [VPN サーバー]-[WireGuard VPN]-[詳細設定] Pre-shared Key (Secret) を有効に変更し、残り 2 つを無効化します。

  2. [VPN サーバー]-[WireGuard VPN]-[全般] 以下の設定を行い、全ての設定を適用 を押します。

    設定項目 設定値
    Tunnel IPv4 and / or IPv6 Adress 重複しない任意のアドレス
    Listen Port V6 プラスで利用可能なポート番号 ※

    ※ [システムログ]-[IPv6] v6plus Usable Port Range: に表示される。便利や・・・

  3. [VPN サーバー]-[WireGuard VPN]-[全般]-[VPN クライアント] 追加 をし、以下の設定を行い、適用 を押します。

    設定項目 設定値
    Address 前項で作成した「重複しない任意のアドレス」のレンジ内の IP
    Allowed IPs (サーバー) OpenWrt 側の LAN のアドレス
    Allowed IPs (Client) AX4200 側の LAN のアドレス
  4. 作成が終わったクライアントのエクスポート画面から PrivateKey、PublicKey、PresharedKey を控えます。

OpenWrt 側の WireGuard 設定方法

以前の記事で GUI 設定手法はお伝えしたので今回は CLI での設定方法で記載します。なお、設定自体はコマンドで実際に行ったのですが、ブログ掲載用に中身を修正した後の実行はしていません。

  1. SSH で OpenWrt に接続し、変数を定義します。

    VPN_DEF="定義の全体的な名称 (任意)"
    VPN_S1N="OpenWrt 側の定義の名称 (任意)"
    VPN_S1G="OpenWrt 側のグローバル IP アドレス"
    VPN_S1L="OpenWrt 側の LAN 内のアドレス (前項で指定した値)"
    VPN_S1P="OpenWrt 側の待ち受けポート"
    VPN_S2N="AX4200 側の定義の名称 (任意)"
    VPN_S2G="AX4200 側のグローバル IP アドレス"
    VPN_S2L="AX4200 側の LAN 内のアドレス (前項で指定した値)"
    VPN_S2P="AX4200 側の待ち受けポート (前項で指定した値)"
  2. 続けて、鍵情報をファイルに出力します。

    echo 前項でエクスポートした PrivateKey の文字列 > ${VPN_S1N}.key
    echo 前項でエクスポートした PublicKey の文字列 > ${VPN_S2N}.pub
    echo 前項でエクスポートした PresharedKey の文字列 > ${VPN_DEF}.psk
  3. 最後に、実行コマンドを入力します。

    uci set network.wg0=interface
    uci set network.wg0.proto="wireguard"
    uci set network.wg0.private_key="$(cat ${VPN_S1N}.key)"
    uci set network.wg0.listen_port=${VPN_S1P}
    uci set network.wg0${VPN_S2N}=wireguard_wg0
    uci set network.wg0${VPN_S2N}.description=${VPN_S2N}
    uci set network.wg0${VPN_S2N}.public_key="$(cat ${VPN_S2N}.pub)"
    uci set network.wg0${VPN_S2N}.preshared_key="$(cat ${VPN_DEF}.psk)"
    uci add_list network.wg0${VPN_S2N}.allowed_ips=${VPN_S2L}
    uci set network.wg0${VPN_S2N}.route_allowed_ips="1"
    uci set network.wg0${VPN_S2N}.persistent_keepalive="25"
    uci set network.wg0${VPN_S2N}.endpoint_host="${VPN_S2G}"
    uci set network.wg0${VPN_S2N}.endpoint_port="${VPN_S2P}"
    uci commit network
    uci add_list firewall.@zone[0].network="wg0"
    uci add firewall rule
    uci set firewall.@rule[-1].family="ipv4"
    uci set firewall.@rule[-1].proto="udp"
    uci set firewall.@rule[-1].src="wan"
    uci set firewall.@rule[-1].target="ACCEPT"
    uci set firewall.@rule[-1].name="Allow-WireGuard(${VPN_DEF})"
    uci set firewall.@rule[-1].dest_port=${VPN_S1P}
    uci commit firewall
    /etc/init.d/network restart
  4. これで接続可能になるので動作確認を行ってください。

加えて外部からモバイル等で接続する

もちろん可能でして、私は 外部 → 自宅 ⇔ 実家の Hub 型で構成しました。 この構成のポイントは、両端は直接つながっていないため、外部側にも実家側にもお互いのアドレスを Allowed IPs に含める必要があるというのがポイントです。

Point to Site の接続方法は以下を参考にしてください。 cube309b.hatenablog.com

おまけ (Samba に WireGuard 越しで接続できない)

AX4200 上に簡易 NAS の機能を構成したわけですが、WireGuard VPN 越しだと一切つながりません。LAN 内からは接続できます。 これは、Samba が既定で WireGuard VPN インターフェースでリッスンしていないことによるものです。そのため、以下の対応が必要となります。

  1. [管理]-[システム]-[サービス] SSH を有効にするを選択してください。

  2. SSH で AX4200 に接続し、/tmp/etc/smb.conf ファイル内の interfaces 行と hosts allow 行にアクセスさせたいセグメントを追加します。

  3. smbd nmbd のサービスを再起動させます。

設定のための参考サイト

設定に当たっては、以下の情報を参考にしました。が、正直意味が分からなかったので自分で試しました。。。当然ですが、ASUSASUS の想定ですし。

www.asus.com

実家のルーター入れ替えを終えて

ついに OpenVPN を止めて WireGuard に乗り換えることに成功しました。次回はちょっと現状を振り返る会にしてみたいなと。


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

OpenWrt でファイル共有 (Samba) を試す!

この記事では OpenWrt のファイル共有に関する設定を記載しています。なお、実装ミドルウェアは Samba となります。

ファイル共有に求める要件

やりたいこと

もうお分かりだと思いますが実家のルーターを OpenWrt へ入れ替えたいわけです。となると現在実行している機能は移行の必要がでてくるのです。

OpenWrt は WindowsLinux とインストール方法に大きな違いがあって、「OS のインストール」という行為がなく、イメージを展開した記録媒体からそのまま起動して稼動します。しかも、1GB もいらないぐらいの容量 (既定で 100MB 少々)。

この性質を考慮すると、保全性の観点から USB メモリ起動が一番良いのです。こんな感じでアップデートや検証にハードウェアを使いまわせるからです。

  • 本番の設定が入った USB メモリを抜く
  • アップデートを含む検証用の USB メモリを差して検証する
  • 検証が終わったら本番の設定が入った USB メモリを差す

もちろん仮想というプラットフォームがあるので完全に論理的な検証であれば仮想でやった方が早いですが、物理的な検証の場合実機でやることに越したことはありません。

とすると、せっかく存在するミニ PC 上の高速なストレージ用帯域が無駄になってしまうわけなので、高速な内蔵ディスク (NVMe SSD) を差して NAS に回せばよいということになります。

OpenWrt におけるファイル共有の実装方法

OpenWrt では追加のモジュールを導入して設定をすることで、ファイル共有を構成できます。なお、ファイル共有は関係コンポーネントが多いため大分割愛した絵になっています。

ファイル共有の設定方法

ディスクマウント、Samba、管理画面(日本語化含む)
  1. [システム]-[ソフトウェア] フィルターblock-mount と入力し、インストール を押します。
    ※ 一度 OS を再起動してしまうとパッケージリストの取り直しが必要なので、その場合は「リストを更新..」を実施してください。
  2. 依存関係の確認が行われるので インストール を押します。
  3. パッケージが読み込まれるので、閉じる を押します。
  4. 1-3 を繰り返します。パッケージ名は luci-app-samba4 です。最近のアップデートなのか言語ファイルは本体のモジュールのインストール時に Suggest ってでて既定でチェック済みなので一緒にインストールしてくれるようになったようです。
  5. 再起動すると、画面上部に [システム]-[マウントポイント] と [サービス]-[Network Shares] の二つが出現します。
ディスクマウント

Linux であれば既定でディスク管理系のツールがインストールされているのですが OpenWrt は追加でモジュールを入れるまで利用できません。 導入は簡単なのですが、あえて導入は避ける方向で手順を構成しています。

  1. SSH で OpenWrt に接続し、以下を入力してディスク追加前の構成を覚えておきます。

    ls -l /dev/sd*

  2. ディスクの追加後に OS を再起動して再度同じコマンドを実行して、差分を控えます。(私の場合、/dev/sdb が追加した内蔵の SSD でした)

    ls -l /dev/sd*

  3. SSH で OpenWrt に接続し、以下を入力して追加ディスクをフォーマットし、マウント用のポイントを作成します。

    mkfs.ext4 /dev/sdb
    mkdir /file
  4. [システム]-[マウントポイント]-[マウントポイント] 追加 を押します。

  5. UUID から先ほどフォーマットしたディスクを選択し、マウントポイントに前項で作成したポイントを指定した上で、保存→保存&適用を押します。

  6. [システム]-[マウントポイント]-[マウント済みファイルシステム] 追加した設定が反映されていることを確認します。

Samba の設定
  1. [サービス]-[Network Shares]-[Shared Directories] 追加 を押します。

  2. [サービス]-[Network Shares]-[Shared Directories] 追加された行に対して以下の設定を行い、保存&適用 を押します。

    設定項目 設定値
    名前 共有名。\IP アドレス\ここの部分の文字列
    Path 前項で作成したマウント用のポイント
    Allowed users 個人利用であるものの任意文字列のユーザーでのアクセスを推奨
    Allow guests 個人利用であるもののチェックオフ推奨
    Create mask 0777。NAS からの exe 実行とか・・・

Samba 用ユーザーの作成
  1. SSH で OpenWrt に接続し、fileadmin:x:1001:1001:smb user:/dev/null:/bin/false を最終行に追加します。fileadmin は前項で設定した SMB アクセス許可ユーザーの文字列。

    vi /etc/passwd
  2. 以下を実行して、作成したユーザー用のパスワードを設定します。

    smbpasswd -a fileadmin
  3. 以下を実行して、ファイル共有のルートフォルダの所有者を変更します。

    chown -R fileadmin /file
動作確認と性能
  1. Windows 機からネットワークドライブの割り付けを実施し、動作を確認します。 \OpenWrt の IP アドレス\Samba で設定した「名前」

  2. 同じ仮想環境上にあるクライアント機からファイルをコピーしたところかなり高速な値がでました。少なくとも OpenWrt だから遅いということにはならないかなと。

その他

OS アップデート時の対応

以前にも記載したように、OpenWrt のアップデートは「再設定」と覚えておいた方がよいぐらいのものですので、再設定時のポイントについて記載します。 とはいっても、基本的には今までの流れをもう一度流すだけです。コマンドなどにしておけばあっという間に完了します。その上で。

  1. mkfs.ext4 /dev/sdb は行わない。当たり前ですよね・・・フォーマットしてしまったらデータがなくなってしまいます。
  2. chown -R fileadmin /file は行わない。既にデータがあるので所有権の書き換えなどは不要です。なお、Windows と違ってシステム ID などは存在せず、新規作成時と同じ情報で作成したユーザーであれば同一と扱われます。

本当にこれぐらいしか新規の時と違いがありません。

設定のための参考サイト

設定に当たっては、以下の情報を参考にしました。

openwrt.org openwrt.org

OpenWrt のファイル共有設定を終えて

こうして OpenWrt を使って Windows からのファイル共有が可能になりました。あと一つ。。。


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