DUICUO

OpenWrt: ホームルーターファームウェアのオープンソース代替

自宅でこの記事を読んでいる方は、おそらくLTE/5G/DSL/Wi-Fiルーターを使ってインターネットに接続しているでしょう。このタイプのデバイスは通常、ローカルデバイス(スマートフォン、PC、テレビなど)間のデータパケットのルーティングを処理し、内蔵モデムを介してWWWへのアクセスを提供します。ご家庭のルーターには、デバイスの設定用のWebベースのインターフェースが搭載されていることが多いでしょう。これらのインターフェースは、一般ユーザー向けに設計されているため、過度にシンプルになっていることがよくあります。

より多くの設定オプションが必要で、プロ仕様のデバイスにお金をかけたくない場合は、OpenWrt などの他のファームウェアを検討する必要があります。

OpenWrtの機能

OpenWrtは、組み込みネットワークデバイス向けのLinuxベースのオープンソースオペレーティングシステムです。主に、様々な家庭用ルーターのオリジナルファームウェアの置き換えに使用されます。OpenWrtは、DNSサーバー(dnsmasq)、Wi-Fiアクセスポイント(AP)とクライアント機能、モデム機能用のPPPプロトコルなど、優れたルーターに求められる便利な機能をすべて備えています。さらに、標準的なファームウェアとは異なり、これらすべてを自由に設定可能です。

LuCI Webインターフェース

OpenWrtは、コマンドライン(SSH)またはGUI設定インターフェース(LuCI)を介してリモートで設定できます。LuCIは、Luaで記述された軽量で拡張可能なWebベースのGUIで、デバイスの詳細な設定を可能にします。設定に加えて、LuCIはリアルタイムグラフ、システムログ、ネットワーク診断など、豊富な追加情報を提供します。

LuCI Webインターフェース

LuCI には、より多くの構成オプションを追加するためのオプションの拡張機能がいくつかあります。

書き込み可能なファイルシステム

もう一つの特長は、書き込み可能なファイルシステムです。既存のファームウェアは通常読み取り専用ですが、OpenWrtはOverlayFSとSquashFS/JFFS2ファイルシステムを組み合わせた巧妙なソリューションにより、書き込み可能なファイルシステムを搭載しており、機能拡張のためのパッケージをインストールできます。ファイルシステムアーキテクチャの詳細については、OpenWrtのドキュメントをご覧ください。

伸ばす

OpenWrtには関連パッケージマネージャー「opkg」があり、FTPサーバー、DLNAメディアサーバー、OpenVPNサーバー、ファイル共有用のSambaサーバー、電話制御用のAsteriskなどの追加サービスをインストールできます。もちろん、一部の拡張機能には適切なハードウェアリソースが必要です。

モチベーション

ルーターのメーカーのファームウェアを変更することで、デバイスに修復不可能な損傷を与えたり、保証が無効になったりするリスクを冒す必要があるのか​​と疑問に思うかもしれません。デバイスが期待通りに動作しているのであれば、おそらく変更すべきではありません。稼働中のシステムには絶対に触れてはいけません!しかし、機能を拡張したい場合や、デバイスに設定オプションが不足している場合は、OpenWrtが解決策になるかどうか検討してみてください。

私の場合、キャンプ中に適切な場所に設置できるトラベルルーターが必要です。他のデバイスがこのローカルWi-Fiアクセスポイント(AP)への良好な接続を維持できるようにするためです。ルーターは通常のクライアントとしてインターネットに接続し、他のデバイスが接続できるようにWi-Fiアクセスポイントをブロードキャストします。こうすることで、すべてのデバイスがこのルーターのアクセスポイントに接続するように設定でき、他の場所ではルーターのクライアント接続設定を変更するだけで済みます。さらに、キャンプ場によってはアクセスコードが1つのデバイスしか提供されない場合もありますが、この設定によって接続性を向上させることができます。

旅行用ルーターとして TP-Link TL-WR902AC を選んだ理由は次のとおりです。

  • とても小さい
  • 2本のWiFiアンテナ
  • 5V電源(USB)
  • 低消費電力
  • コスト効率が良いです(約 30 ドルで手に入ります)。

その大きさをご理解いただくために、Raspberry Pi 4 と並べてみると次のようになります。

Raspberry Piの隣にTP-Link TL-WR902AC

ルーターは必要なハードウェア機能をすべて備えていましたが、デフォルトのファームウェアでは思い通りの設定ができないことがすぐに分かりました。このルーターは主にWi-Fiアクセスポイントとして設計されており、既存のWi-Fiネットワークを複製したり、オンボードのイーサネットポート経由でネットワークに接続したりすることができます。しかし、デフォルトのファームウェアでは、これらの用途には対応しきれていません。

(LCTT翻訳者注:このモデルは中国では販売されていません。3G/4G USBネットワークカードを挿入することでインターネットに接続できることが特徴です。ただし、中国では販売されていないため、どの国産3G/4G USBネットワークカードに対応しているかの情報はありません。調べたところ、HuaweiのE3372h-320が対応しているようです。関連する実務経験のある方は、知見を共有していただけると幸いです。)

国内で販売されている他の類似モデルは、イーサネットまたはWi-Fi経由でのみインターネットに接続できます。この場合、3G/4G経由でしかインターネットに接続できない場合は、ポータブルWi-Fi/モバイルルーターを別途購入する必要があります。

幸いなことに、ルーターは OpenWrt を実行できたので、それを使用して元のファームウェアを置き換えることにしました。

インストール

LTE/5G/DSL/WiFiルーターが最低要件を満たしている場合は、OpenWrtを実行できる可能性が高いです。次のステップは、ハードウェアリストを確認し、お使いのデバイスが互換性のあるファームウェアパッケージとしてリストされているかどうか、そしてどのファームウェアパッケージを選択すべきかを確認することです。TP-Link TL-WR902ACのOpenWrtページには、内部ストレージのフラッシュ方法を説明したインストール手順も記載されています。

ファームウェアのフラッシュプロセスはデバイスによって異なる可能性があるため、ここでは詳しく説明しません。簡単に言うと、特定のIPアドレスを持つネットワークインターフェース上のTFTPサーバーにデバイスを接続し、OpenWrtファームウェアファイルの名前を変更し、リセットボタンを押してデバイスを起動する必要がありました。

構成

フラッシュが成功すると、デバイスは新しいファームウェアで起動するはずです。OpenWrtはデフォルトのファームウェアに比べて機能が豊富なため、起動に時間がかかる場合があります。

設定を開始するには、PCとルーターの間に直接イーサネット接続を確立する必要があります。OpenWrtはDHCPサーバーとして機能し、PCのイーサネットアダプターをDHCPクライアントとして設定します。

Fedora Linux では、ネットワーク アダプタの DHCP クライアント モードを有効にするには、まず次のコマンドを実行して接続の UUID を見つける必要があります。

 $ nmcli接続表示
名前 UUID タイプ デバイス
有線接続1 7a96b...27a イーサネット ens33
virbr0 360a0...673 ブリッジ virbr0
testwifi 2e865...ee8 wifi --
virbr0 bd487...227 ブリッジ--
有線接続2 16b23...7ba イーサネット--

変更する接続の UUID を選択し、次を実行します。

 $ nmcli接続変更 <UUID> ipv4.method auto

これらのコマンドの詳細については、Fedora Web Wiki を参照してください。

ルーターに接続したら、Webブラウザを開いてhttp://openwrt/にアクセスします。LuCIログインマネージャーが表示されます。

LuCIログイン

ユーザー名として​root​使用し、パスワードは空白のままにします。

WiFiとルーターの設定

WiFi アンテナを設定するには、「ネットワーク」メニューをクリックし、「ワイヤレス」を選択します。

LuCI ワイヤレス構成

私のデバイスでは、上側のアンテナ​radio0​は2.4GHzモードで動作し、 ​MOBILE-INTERNET​というローカルアクセスポイントに接続されています。下側のアンテナ( ​radio1​ )は5GHzで動作し、 ​OpenWrt_AV​というSSIDのアクセスポイントが関連付けられています。「編集」ボタンをクリックすると、デバイス設定が開き、デバイスがLANネットワークに属しているかWWANネットワークに属しているかを確認できます。私の場合、アクセスポイント​OpenWrt_AV​ LANネットワークに属し、 ​MOBILE-INTERNET​へのクライアント接続はWWANネットワークに属しています。

LuCI設定画面

設定されたネットワークは、「インターフェース」パネルの「ネットワーク」の下に表示されます。

装備リスト

必要な機能を実現するには、ネットワークトラフィックをLANとWWANネットワーク間でルーティングする必要があります。ルーティングは「ネットワーク」パネルの「ファイアウォール」セクションで設定できます。デフォルトではネットワーク間のトラフィックがルーティングされ、受信パケット(WWANからLANへ)はファイアウォールを通過する必要があるため、ここでは何も変更していません。

ファイアウォール設定

したがって、インターフェースがLANか(W)WANのどちらに属しているかを把握しておく必要があります。この概念により、特に初心者にとって設定が比較的容易になります。詳しくは、OpenWrt Networking Basicsガイドをご覧ください。

専用ポータル

公共Wi-Fiアクセスポイントは通常、プライベートポータルで保護されており、アクセスコードまたは類似のコードの入力が必要です。このポータルは通常、アクセスポイントに初めて接続し、任意のウェブページを開こうとしたときに表示されます。このメカニズムは、アクセスポイントのDNSサーバーによって実装されています。

OpenWrt はデフォルトで、接続されたクライアントが DNS リバインディングによる攻撃を受けないようにするセキュリティ機能を有効にします。OpenWrt のリバインディング保護は、専用ポータルがクライアントに転送されるのも防ぐため、専用ポータルにアクセスできるようにするには、リバインディング保護を無効にする必要があります。このオプションは、「ネットワーク」メニューの「DHCP と DNS」パネルにあります。

OpenWrtを試す

OpenWrtにアップグレードしたことで、汎用ハードウェアをベースにした柔軟なトラベルルーターが手に入りました。OpenWrtを使えば、ルーターの設定と拡張性を完全にカスタマイズでき、洗練されたWeb GUIのおかげで初心者でも簡単に使えます。一部のルーターにはOpenWrtがプリインストールされているものもあります。また、利用可能なソフトウェアパッケージを数多く用意しているので、ルーターの機能を拡張することも可能です。例えば、私はvsftpdというFTPサーバーを使って、接続したUSBドライブに映画やテレビ番組を保存しています。プロジェクトのホームページをチェックしてみてください。OpenWrtに乗り換える理由が数多く見つかるはずです。

画像提供:Stephan Avenwedde、CC BY-SA 4.0