0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenWrt & 4Gモデム & povoで月額無料のバックアップ回線を作る

Last updated at Posted at 2025-08-29

こっちもあるよ

はじめに

現在、enひかりクロスを自宅に引いています。特に障害などで困ったことはありませんが、なんとなく冗長化したくなりました。
いろいろと調べてはみたものの、固定回線や○○Airなどはどうしても月額数千円はかかってしまいます。
使う頻度が低い回線に毎月そこまで支払えるほど大富豪ではないので、今回はOpenWrtと4Gモデムとpovoを使って本体代と月額料金を限界まで抑えてバックアップ回線を用意しようと思います。

Wi-Fiの詳細設定についてはここでは触れません。
電波法とかめんどくさいので。

電波法うんぬんが書いてあるところ

使用する機材

TP-Link Archer C7 v5

USBポートを搭載していて、Flash16MiB/RAM128MiBを搭載しており、中古価格が2,000円程度と安いためこちらを使用します。

Sierra Wireless EM7455

技適マークの付いたEM7455をaliexpressで発掘したのでこちらを使用します。QMIに対応しているデバイスなので、OpenWrt側でもQMI通信を使用します。
だいたい2~3,000円くらいです。
落とし穴が一つあり、○○メーカー用などと書かれているモジュールはロックがかかっており、対応するデバイス以外で使用できないためファームの書き換えが必要になります。
4Gルーター用などと書かれているものが良いと思います。

対応バンド

B1 (2100)、B2 (1900)、B3 (1800)、B4 (1700)、B5 (850)、B7 (2600)、B8 (900)、B12 (700)、B13 (700)、B20 (800) 、B25 (1900)、B26 (850)、B29 (700)、B30 (2300)、B41 (2500/TDD)

技適のないEM7455や4Gモジュールを使うと電波法違反となります。
また4G通信は技適未取得機器を用いた実験等の特例制度の対象外なので、自分で技適を通すか技適の通ったモジュールを買う以外に選択肢はありません。

NGFF <-> USBコンバータ

NGFFモジュールをUSBポートで使えるようにするためのコンバータです。
外部電源ポートがついているものが良いと思います。
こちらは500円くらいで買えると思います。

OpenWrtのセットアップ

特別なことは何もないです。
Archer C7の場合、WebUIからOpenWrtを投入できます。

Archer C7の場合は、ファームウェアのファイル名をfirmware.binのような短い名前にしてください。

インストール後の画面

001.png
カスタムファームをビルドするかブートローダー書き換えしないと16MiBフルに使えないことをインストールしてから知った
ちっちゃいUSBハブ買ってextrootにすれば良いと思います。
私はどうせ4Gルーター以外の機能を搭載する予定はないのでこのまま行きます。

必要なパッケージのインストール

sshのコマンドラインかWebUIから次のパッケージをインストールします。
QMI用のパッケージとシリアル通信用のものです。
kmod-usb-net-qmi-wwan uqmi luci-proto-qmi picocom kmod-usb-serial-qualcomm modemmanager luci-proto-modemmanager

インストールが終わったら再起動します。

再起動後、ネットワーク -> インターフェース -> インターフェースを新規作成から、プロトコル一覧に QMIセルラー モデムマネージャーがあるか確認してください。

ModemManagerについてはあとで解説します。
QMIセルラーで接続できた方はModemManagerを入れなくていいです。

002.png

モジュール動作チェック

WindowsPCに刺して通信チェックをします。
03.png

04.png

モデム動作モードの切り替え

特定メーカー版からGeneric版への切り替えは調べたらいっぱい出てくるので頑張ってください。
今回私が購入したのはGeneric版なので、MBIMオンリーからQMIまでの切り替えを書きます。

参考リンク: ThinkPad X270にLTEモジュールSierra Wireless EM7455を取り付ける。

AT用COMポートの有効化

私が買ったモジュールはMBIMオンリーモード(COMP 9)で動作しておりシリアル通信ができなかったため、まずはCOMポートの有効化を行います。
適当なUbuntu系のLiveUSB環境を用意して、次の手順を実行します。

QMIユーティリティのインストール

# apt update
# apt install libqmi-utils

ModemManagerの停止

# systemctl stop ModemManager

モード変更

現在のモードを確認します。

# qmicli -p -d /dev/cdc-wdm0 --dms-swi-get-usb-composition
[/dev/cdc-wdm0] Successfully retrieved USB compositions:
    USB composition 6: DM, NMEA, AT, QMI
    USB composition 8: DM, NMEA, AT, MBIM
[*] USB composition 9: MBIM

このように、COMP9だとATポートが使えません。
買ったときにCOMP6COMP8だった方はここをスキップしてQMIの有効化から続けてください。

COMP8へ変更します。

# qmicli -p -d /dev/cdc-wdm0 --dms-swi-set-usb-composition=8
# qmicli -p -d /dev/cdc-wdm0 --dms-set-operating-mode=reset

モデムが再起動してOSで認識されたら取り外してOKです。
LiveUSB環境もこの後は使わないので閉じて構いません。

OpenWrt側でQMIを有効化

picocomでモデムのATポートに接続し、モードを切り替えます。

# picocom /dev/ttyUSB2
picocom v3.1

port is        : /dev/ttyUSB2
flowcontrol    : none
baudrate is    : 9600
parity is      : none
databits are   : 8
stopbits are   : 1
escape is      : C-a
local echo is  : no
noinit is      : no
noreset is     : no
hangup is      : no
nolock is      : no
send_cmd is    : sz -vv
receive_cmd is : rz -vv -E
imap is        :
omap is        :
emap is        : crcrlf,delbs,
logfile is     : none
initstring     : none
exit_after is  : not set
exit is        : no

Type [C-a] [C-h] to see available commands
Terminal ready

# ここからコマンド実行
AT!ENTERCND="A710"
OK
AT!USBCOMP=1,1,10D
OK
AT!RESET

AT!RESET実行後は接続が切れるので、Ctrl+A->Ctrl+Xでpicocomを終了します。

状態確認

# ls /dev
bus         mtd0        mtd3ro      mtd8        mtdblock4   ptmx        ttyS1       ttyS4       urandom
cdc-wdm0    mtd0ro      mtd4        mtd8ro      mtdblock5   pts         ttyS10      ttyS5       watchdog
console     mtd1        mtd4ro      mtd9        mtdblock6   random      ttyS11      ttyS6       zero
fd          mtd10       mtd5        mtd9ro      mtdblock7   shm         ttyS12      ttyS7
full        mtd10ro     mtd5ro      mtdblock0   mtdblock8   stderr      ttyS13      ttyS8
gpiochip0   mtd1ro      mtd6        mtdblock1   mtdblock9   stdin       ttyS14      ttyS9
hwrng       mtd2        mtd6ro      mtdblock10  null        stdout      ttyS15      ttyUSB0
kmsg        mtd2ro      mtd7        mtdblock2   port        tty         ttyS2       ttyUSB1
log         mtd3        mtd7ro      mtdblock3   ppp         ttyS0       ttyS3       ttyUSB2

の後に/dev/cdc-wdm0が見えていれば書き換え完了です。

ModemManagerのインストール

私の環境だといろいろやらかしてしまったのでModemManagerに切り替えます。

まだインターフェースを作成していないかたはこっちでやったほうがパッケージ容量食わないので良いと思います。
インターフェース設定もAPN設定すればなんとかなります。

modemmanagerluci-proto-modemmanagerをインストールして、ルーターを再起動します。

09.png

接続設定

インターフェース作成

インターフェースを作成します。
適当な名前を付け、プロトコルにモデムマネージャーを選択して作成します。

05.png

インターフェース設定

APNにpovo.jp、認証タイプはなしにします。
他はデフォルトで大丈夫です。

06.png

ファイアーウォール設定

wanゾーンを割り当てます。

07.png

接続チェック

保存して適用すると、IPv4とv6アドレスが表示されているはずです。
適当なサイトにアクセスして、ページが閲覧できればIPv4ルーターの構築は完了です。
見れない場合は、ネットワーク -> インターフェース -> wwan -> 詳細設定 -> カスタムDNSサーバーから適当に1.1.1.1などを指定してみてください。

10.png
wanwan6が無いのは一時的に消してるだけなので気にしないでください。

nmcliの接続ステータス

root@OpenWrt:~# mmcli -L
    /org/freedesktop/ModemManager1/Modem/0 [Sierra Wireless, Incorporated] EM7455B
    
root@OpenWrt:~# mmcli -m 0
  ----------------------------------
  General  |                   path: /org/freedesktop/ModemManager1/Modem/0
           |              device id: b104fdee9690f126c318a339012b2R***********
  ----------------------------------
  Hardware |           manufacturer: Sierra Wireless, Incorporated
           |                  model: EM7455B
           |      firmware revision: SWI9X30C_02.24.03.00 r6978 CARMD-EV-FRMWR2 2017/03/02 13:36:45
           |         carrier config: default
           |           h/w revision: 1.0
           |              supported: gsm-umts, lte
           |                current: gsm-umts, lte
           |           equipment id: 35343108*******
  ----------------------------------
  System   |                 device: /sys/devices/platform/ahb/1b000000.usb/usb1/1-1
           |                physdev: /sys/devices/platform/ahb/1b000000.usb/usb1/1-1
           |                drivers: qmi_wwan, qcserial
           |                 plugin: sierra
           |           primary port: cdc-wdm0
           |                  ports: cdc-wdm0 (qmi), ttyUSB0 (ignored), ttyUSB1 (gps),
           |                         ttyUSB2 (at), wwan0 (net)
  ----------------------------------
  Status   |         unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (0), sim-puk2 (0)
           |                  state: connected
           |            power state: on
           |            access tech: lte
           |         signal quality: 42% (recent)
  ----------------------------------
  Modes    |              supported: allowed: 3g; preferred: none
           |                         allowed: 4g; preferred: none
           |                         allowed: 3g, 4g; preferred: 4g
           |                         allowed: 3g, 4g; preferred: 3g
           |                current: allowed: 3g, 4g; preferred: 4g
  ----------------------------------
  Bands    |              supported: utran-1, utran-3, utran-4, utran-5, utran-8, utran-2,
           |                         eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, eutran-7, eutran-8,
           |                         eutran-12, eutran-13, eutran-20, eutran-25, eutran-26, eutran-29,
           |                         eutran-41
           |                current: utran-1, utran-3, utran-4, utran-5, utran-8, utran-2,
           |                         eutran-1, eutran-2, eutran-3, eutran-4, eutran-5, eutran-7, eutran-8,
           |                         eutran-12, eutran-13, eutran-20, eutran-25, eutran-26, eutran-29,
           |                         eutran-41
  ----------------------------------
  IP       |              supported: ipv4, ipv6, ipv4v6
  ----------------------------------
  3GPP     |                   imei: 35343108********
           |            operator id: 44051
           |          operator name: KDDI
           |           registration: home
           |   packet service state: attached
  ----------------------------------
  3GPP EPS |   ue mode of operation: csps-2
           |    initial bearer path: /org/freedesktop/ModemManager1/Bearer/2
           |     initial bearer apn: povo.jp
           | initial bearer ip type: ipv4v6
  ----------------------------------
  SIM      |       primary sim path: /org/freedesktop/ModemManager1/SIM/0
           |         sim slot paths: slot 1: /org/freedesktop/ModemManager1/SIM/0 (active)
           |                         slot 2: none
  ----------------------------------
  Bearer   |                  paths: /org/freedesktop/ModemManager1/Bearer/4

フォールバック回線を設定する

mwan3を使用して、有線回線が落ちたとき自動でwwanにフォールバックするように設定します。
mwan3はデフォルトだとIPv4/IPv6デュアルスタック回線を1つのインターフェースで扱えないため、論理インターフェースを作成します。
23.png
※デバイスの@wwan6@wwanに読み替えてください。

24.png
※デバイスの@wwan6@wwanに読み替えてください。

25.png

mwan3のインストール

mwan3luci-app-mwan3をインストールします。

11.png

インターフェースメトリック設定

各インターフェースメトリックを変更します。
wanwan6を10に、wwanwwan6を20に設定します。

wan

12.png

wan6

13.png

wwan

14.png

wwan6

26.png

インターフェース設定

ネットワーク -> MultiWan Managerに移動します。
wanbwanb6を削除します。
インターフェースタブへ移動し、wwanwwan6を追加します。

15.png

それぞれ画像のように設定します。

wwan

16.png

wwan6

27.png

メンバー設定

Memberタブへ移動します。
既存の設定をすべて削除します。

wan

wan_m1_w1という名前のメンバーを追加します。
インターフェース -> wan
メトリック -> 1
重み -> 1
に設定します。

17.png

wan6

wan6_m1_w1という名前のメンバーを追加します。
インターフェース -> wan
メトリック -> 1
重み -> 1
に設定します。

18.png

wwan

wwan_m2_w1という名前のメンバーを追加します。
インターフェース -> wan
メトリック -> 2
重み -> 1
に設定します。

19.png

wwan6

wwan6_m2_w1という名前のメンバーを追加します。
インターフェース -> wan
メトリック -> 2
重み -> 1
に設定します。

28.png

ポリシー設定

ポリシータブへ移動します。
既存の設定をすべて削除し、failover_v4failover_v6という名前のポリシーを追加します。
IPv6 対応のサイトには IPv6 優先で接続したいので、wan6_m1_w1 -> wan_m1_w1wwan6_m2_w1 -> wwan_m2_w1の順で追加します。

image.png

ルール設定

httpsルールを削除し、default_rule_v4default_rule_v6をそれぞれ画像のように設定します。

21.png
failover_policyfailover_v4に読み替えてください。

22.png
failover_policyfailover_v6に読み替えてください。

動作確認

ここまで設定が完了したらWANの有線ケーブルを抜き、4Gネットワークにフェイルオーバーするか確認します。

image.png

自動で切り替わっていれば、構築からバックアップまですべて完了です。
お疲れ様でした。

おまけ

QMIセルラープロトコルで接続する

インターフェース作成前に次のコマンドを実行します。
私は先にインターフェースを作成してしまったので、ロックをどうやっても外せずModemManagerに移行しました。
EM7455はIPアドレス形式に802.3ではなくraw_ipを要求するので、openwrtから渡される形式を変えてあげます。

# ifconfig wwan0 down
# echo Y > /sys/class/net/wwan0/qmi/raw_ip 
ifconfig wwan0 up

再起動後も適用されるように、/etc/rc.localを編集します。
exit 0の上に追記します。

sleep 15
echo Y > /sys/class/net/wwan0/qmi/raw_ip

たぶん大丈夫です。
たぶん。
ロックされててOperation not Permittedとか言われたらModemManagerに切り替えてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?