OpenWRTカスタムルータをスタンバイルータにセットアップ

投稿者: | 2021年2月13日

OpenWRTの勉強用にと4年以上前に買ったおそらくリサイクル品なカスタムルータを、自宅のセカンドルータに仕立てるべくセットアップしました。

ずっとジャンクの片隅に埋もれていたそれは、淘寶で当時RMB169+送料で購入していました。大まかな仕様は以下の通り。

  • CPU   : MediaTek MT7620A
  • RAM   : 256MB
  • Flash : 16MB
  • Power : DC5V
  • Interface: LAN 100M x4, WAN 100M x1, USB, microSD

基板上に記載されているOYE-0001と言う型番で検索すると、元々は哦耶科技のWiFiルータOYE-0001らしく、おそらくその中古品から基板だけを取り出しファームウェアを書き換えたり、FlashやRAMをカスタマイズしたりして販売しているようです(Aliexpressでは未だに売られています)。

 

Hardware

カスタムメイドっぽいアクリル板ケースを分解してハードウェアを確認します。

図01.OYE-0001カスタムルータ分解全景

図01.OYE-0001カスタムルータ分解全景

RJ45コネクタ群のうちWiFiアンテナ側の1つがWANで、残る4ポートは全てLANになっています。基板上のその後ろには少し短めのピンヘッダが立っていて、シリアルコンソール接続が可能です。

図02.基板表裏

図02.基板表裏

図03.ピンヘッダ付近拡大

図03.ピンヘッダ付近拡大

 

Pandorabox→OpenWRT

購入時にはOpenWRT Barrier BreakerベースのPandoraBoxが導入されていました(購入時rootのパスワードが機器裏に紙で貼り付けてありました)。そのブートの様子は以下の通り。

何も触らないうちにもうSQUASHFSのエラーが頻発することもあって、ファームウェアをOpenWRT最新へアップグレードしてみます。まずはOpenWRTのOYE-0001デバイスページへ。

ページ下方の「Firmware OpenWrt Upgrade URL」欄に掲載されているリンクをクリックして、アップグレード用ファームウェアバイナリをダウンロード。

PandoraBox WebUIを「System→Backup/Flash Firmware」と辿り、ページ一番下の「Flash new firmware image」でダウンロードしたファイルを指定し、「Flash Image」します。「Keep settings」にチェックを入れましたが、再起動後にIPアドレスやパスワードなど全てデフォルトへ戻ってました。

図04.OpenWRT19.07ファームウェアへ更新

図04.OpenWRT19.07ファームウェアへ更新



こうして奇しくも私の持っているOpenWRT機器の中でも、最新のビルドになりました。

 

Basic Setup as Standby Router

今回このルータを自宅のスタンバイルータに仕立てます。普段はWAN・LANに繋がっているだけの待機状態も、自宅不在時のメインルータ障害時には、外からのアクセスを通じてメインルータの死活調査や簡易リブータを介しての再起動の試行、復旧の見込みが無ければ暫定メインルータに昇格してネットワークアクセスを確保を担ってもらいます。

スタンバイルータも自身がデフォルトゲートウェイだと信じています。メインルータと同じLANサブネットに配置しているので、その処理には問題ありませんが、メインルータのOpenConnectVPNのトンネルサブネットのような、見知らぬLANセグメントをどう処理すれば良いか、スタンバイルータに静的ルーティングを設定しておく必要があります。

図05.Set Static Route on Standby Router

図05.Set Static Route on Standby Router

一般的にルータのルーティングテーブルは以下のようになっています(192.168.100.1はメインルータのトンネルゲートウェイ)。

コンソールよりuciコマンドを使ってセカンダリルータに静的ルーティングを追加します。

設定保存後、機器を再起動すると追加した経路が有効になります。

luci上では「Network→Static Routes」で設定することができ、現在のルーティングテーブルは「Status→Routes」で確認可能です。

図06.Static Routes設定

図06.Static Routes設定

図07.Routes Status確認

図07.Routes Status確認

これでメインルータのVPN経由で、スタンバイルータへアクセス可能になりました。

 

Mount SD Card

このルータにもmicroSDスロットがあるので、GL-AR750Sの時と同様ここにジャンクSDカードを挿して簡易ストレージにしようと、作業を進めるも、システムは前回とは異なりほぼ素の状態なので、更に以下のパッケージをインストールする必要がありました。

図08.Mount Points設定

図08.Mount Points設定

作業に当たってはこちらの記事を参考にさせて頂きました(鳴謝!)。記事では追加したSD領域をoverlayに加えてシステムを拡張するところまで書かれていて、こちらも一度試してみたい試みです。

次にvnstatを入れて追加したこのストレージを恒久的なDB保存先とし、日報メールをPythonで送るところまで構築したり、他のOpenWRT機器とのssh鍵認証を設定し、設定バックアップを相互に持ち合う仕組みを組んだりしましたが、これらについては以前の記事通りでした。

 

DDNSの設定

外からのVPNアクセス時に有ると便利なDDNSも設定しておきます。DDNSプロバイダは既にメインルータで使っているMyDNS.JPにします。既存のIDに子IDを追加し、運営からEメールで子IDのパスワードを受け取ったら、サブドメインをDELEGATEレコードとして登録しておきます。

続いてOpenWRT側の設定です。DDNSスクリプトとluciインターフェイス、そしてhttpsでの更新を使いたいので「wget」もインストールしました。

今回のようにCLIでluciのパッケージを追加した後、ブラウザをリロードしたり、次のコマンドでuHTTPdサービスを再起動しても、追加された機能が反映されないことがよくあります。

こちらのフォーラムによると、システムが持っているキャッシュを消し去る必要があるようで、確かに/tmp下にはそれらしきファイルやフォルダが。/tmpはtmpfsなので再起動してしまえば再構築されます。

 

それでは「Services→Dynamic DNS」にて新規に作成しましょう。基本設定ではMyDNS.JPより受け取った子IDの情報と新しく追加したサブドメインを入力。パッケージ「wget」が入っていないと、「Use http Secure」項が現れないので注意が必要です。

図09.DDNS基本設定

図09.DDNS基本設定

上図のPath to CA-Certificate欄を空白のままにしていると、次のようなサーバ証明書エラーが記録されてIPが更新されません。

サーバ証明書が無ければ、当該欄に「IGNORE」と平打ちすることで、チェック自体を無効にすることが可能です。続く詳細設定では、WANアドレスを検出する方法とインターフェイスを次のように指定します。

図10.DDNS詳細設定

図10.DDNS詳細設定

Overview頁に戻り、設定したDDNSにプロセスIDが付与されていれば、モニタリング中です。

図11.DDNS Overview

図11.DDNS Overview

DDNSの設定が終わったので、OpenConnect VPNを構築に移ります。これもGL-AR750Sメインルータに構築した時と同じ手順ですすめますが、設定テンプレートタブは変更の必要はありませんでした。尚、ログインユーザ情報を登録したら、必ずサービスを再起動(Enabledのチェックを外してApply→再度チェック入れてApply)させないと反映されないことに留意。

図12.OpenConnect VPN接続中

図12.OpenConnect VPN接続中

最後にこのセカンダリルータのVPNサブネット192.168.101.0/24に対する静的ルーティングを、メインルータに設定しておくのを忘れずに。

 

 

設定を進めながら使っていると、やはりGL-AR750Sとは違って動きがもっさりしています。特にluciはエラーを吐く時が有ったのでコンソールからログを見ると、Out of Memoryでプロセスキル措置が発生していました。

もしもの時のための大事なバックドアなので、長期安定稼働に耐えられるのか、しばらく様子を見ながらメインルータの電源を制御する簡易リブーターの製作に掛かります。

コメントを残す

メールアドレスが公開されることはありません。

CAPTCHA