eo光ホームゲートウェイの設定項目が限られていたため、TrueNAS SCALE上の仮想マシンにOpenWrtを導入してルーターにしました。TrueNASの10GbEポートをLAN側とWAN側に分け、OpenWrtからPPPoE接続しています。
IPv4のダウンロード測定では約4.87Gbpsを記録。IPv6もPPPoEでプレフィックスを取得し、LANクライアントにグローバルIPv6アドレスが付くところまで確認できました。
構成
- NAS: TrueNAS SCALE 25.04.2.6
- ルーターVM: OpenWrt 25.12.6(x86-64、UEFI)
- TrueNASのNIC: 10GbEを3ポート搭載
- OpenWrt VM: 1 vCPU、メモリ512MiB
- VMの仮想NIC: VirtIOを2個
- LAN: TrueNAS
eno1→ OpenWrteth0、OpenWrtのアドレスは172.18.18.6/21 - WAN: TrueNAS
eno2→ OpenWrteth1、eo光へ接続 - LAN側DHCPv4: OpenWrtでは無効。クライアントのIPv4ゲートウェイは
172.18.18.6 - eo光ホームゲートウェイ:
192.168.0.1
TrueNAS SCALEにOpenWrtをインストール
1. OpenWrtのディスクイメージをダウンロード
OpenWrt公式サイトからx86/64用のgeneric-ext4-combined-efi.img.gzをダウンロードし、展開して.imgファイルを用意します。ISOインストーラーではなく、OpenWrtがインストール済みの仮想ディスクイメージです。TrueNASから読み込めるデータセットに置きます。
2. TrueNASで仮想マシンを作成
TrueNASの「Virtual Machines」からVMを追加し、Linux系ゲストを選びます。今回の設定は次のとおりです。
- CPU: 1 vCPU
- メモリ: 512MiB
- 起動方式: UEFI
- ディスク: 既存イメージを選び、展開したOpenWrtの
.imgを指定 - NIC: VirtIO
- コンソール: シリアルコンソールを使用
TrueNASの画面やバージョンによって、既存イメージを選択する欄の名称は異なる場合があります。ディスクに新規の空イメージを作るのではなく、ダウンロードしたOpenWrtのイメージをVMの起動ディスクとして指定します。
3. LAN/WAN用のNICを割り当てる
VMにVirtIO NICを2個用意し、TrueNASの物理インターフェイスへ接続します。
| 用途 | TrueNASの物理NIC | OpenWrtの仮想NIC |
|---|---|---|
| LAN | eno1 | eth0 |
| WAN | eno2 | eth1 |
OpenWrt側のeth0/eth1と物理ポートの対応は、TrueNASのVMデバイス画面で確認します。VMの画面出力は使わず、シリアルコンソールから初期設定しました。
LAN側でIPv6のNDP/RAを通すため、TrueNASのNICデバイス設定にある「Trust Guest Filters」も有効にしました。NICデバイスを追加・変更するときは、VMを停止してから作業します。
4. OpenWrtを起動してLANを設定
VMを起動し、TrueNASのシリアルコンソールからOpenWrtに接続します。初回起動後にrootパスワードを設定
別でDHCPサーバがいるので
LAN側のDHCPv4サーバーは無効にしました。
管理用PCのアドレスや経路を切り替える際は、OpenWrtのLANアドレスへ接続できることを先に確認します。
5. WANでPPPoEを設定
LuCIのネットワーク設定でWAN用インターフェイスを作成し、物理デバイスにeth1、プロトコルにPPPoEを指定します。eo光の接続IDとパスワードを入力し、WANインターフェイスをファイアウォールのwanゾーンに割り当てます。
設定を適用したあと、状態画面でPPPoEが接続され、IPv4アドレスが取得できていることを確認します。LANクライアントのゲートウェイもOpenWrtへ変更し、外部へ通信できるか確認します。
IPv6のプレフィックスを取得してLANへ配布
当初はPPPoEインターフェイスにリンクローカルIPv6しか見えず、IPv6が使えているか判断できませんでした。PPPoEインターフェイスの詳細設定でIPv6アドレス取得を「自動」、Request IPv6-prefixを64に設定し、PPPoEインターフェイスをファイアウォールのwanゾーンに割り当てたところ、IPv6用のppp0_6が現れました。
その後、状態画面でDHCPv6クライアントの委譲プレフィックス(PD)を確認でき、LANクライアントにもグローバルIPv6アドレスが割り当てられました。公開用の記事では、取得した実際のプレフィックスや端末固有のアドレスは伏せています。
つまずいた点
TrueNASの物理NIC名とOpenWrtのNIC名は別
TrueNAS側のNIC名はeno1、eno2でした。一方、OpenWrt VMからは仮想NICとしてeth0、eth1と見えます。配線を入れ替える前に、VMの各NICがどのTrueNAS物理NICへ接続されているかを確認すると切り分けやすくなります。
TrueNAS側のWANポートが一時設定のままだった
WAN用のeno2は、一時的なDHCP設定でアドレスを取得しただけで、TrueNAS側の本設定が済んでいませんでした。そのためリンクが落ち、OpenWrtから上流へ通信できなくなりました。VM内でWANが接続済みに見えても、TrueNASホスト側の物理NICが有効であることを確認する必要があります。
PPPoE再接続後にIPv4経路が復旧
IPv6の設定を調べている途中でIPv4の通信も止まりましたが、PPPoEを再接続すると戻りました。設定変更後は、IPv6だけでなくIPv4のデフォルトルートと疎通も確認します。
速度測定
IPv4を指定した30秒間のダウンロード測定では、約18.28GBを転送し、平均4.874Gbpsでした。eo光ルーター直結で測った約4Gbpsを上回り、当初の目標だった3Gbpsも超えました。アップロードはこの測定では行っていません。
IPv6は以前の測定で約700Mbpsでしたが、今回プレフィックス配布まで確認した後の速度はまだ測り直していません。
まとめ
TrueNAS SCALE 25.04.2.6のVMにOpenWrt 25.12.6をディスクイメージから起動し、eno1をLAN、eno2をWANとして割り当てました。PPPoE接続でIPv4を通し、IPv6はDHCPv6-PDでプレフィックスを取得してLANクライアントへの割り当ても確認できました。IPv4のダウンロード測定は約4.87Gbpsでした。
測定値はこの環境、測定先、測定時点での結果です。アップロード速度や長時間の安定性を示すものではありません。