OpenWRT ベースの無線LANルーター GL-MT300N-V2 を初期設定する

### はじめに
Wi-Fi ルーターとして使用している、[GL-MT300N-V2](https://www.amazon.co.jp/dp/B073TSK26W)[^6] の新しい Firmware 3.102 が4月16日に正式公開されました。クリーンな状態から初期設定し直してみました。
[^6]: GL.iNet 社製です。黄色い筐体のためか、Mango というニックネームがついているようです。 

### 管理画面の設定
#### 管理者パスワード
Firmware 更新後、管理画面が表示されます。「日本語」表示を選択して管理者パスワード設定画面へ進みます。
![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/bbef7559-3226-d486-140c-b9889b07c0f7.png)

パスワードの設定が完了すると、通常のログイン後に表示される最初の画面になります。左に各種設定メニューが表示されます。表示が日本語になっていない場合は、右上の矢印で示した選択肢を「日本語」へ変更してください。赤の左向き矢印で示した「無線」から設定していきます。
![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/7889052f-61b5-e843-84a3-0da1891313fb.png)

#### 無線
Wi-Fi のSSID およびパスワードは、デフォルト値のまま使用せず、必ず変更します。チャンネルは、auto が良いと思います。送信出力は、この例では「低」に設定しています[^1]。
なお、[Pre-Release 版を試した](https://qiita.com/strysd/items/6fe9e51ae8f3c82306ec)あとの報告が間に合わなかったようで、表示は「Max、高、高、低」のままでした。日本語が少しおかしいところがあります。
![04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/eb64e8ca-b7e6-72a8-5178-704158260798.png)

適用ボタンを押すと完了です。適用ボタンの代わりにチャンネル最適化ボタンが表示されますが、これは特に何もしなくても良いです。
試しにボタンを押すと、その時々での比較的空いているチャンネルを設定してくれるようです。この画像では4番になりました。
![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/7c60e953-e4f3-4e81-f4c0-e80fa37ba2c3.png)

[^1]: 1DK や 2DK の賃貸アパートの室内で使用する分には「低」で十分な出力が得られます。

#### タイムゾーン
次に、メニューから「タイムゾーン」を選び、同期ボタンを押します。

![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/ffe5a595-42df-9316-cc0b-01e066f970c9.png)

日時とタイムゾーン名が正しく設定できたら成功です。タイムゾーンのところをクリックすると、世界各地のタイムゾーン名へ変更することもできます。
![06_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/6d64ff10-1d84-8eb6-fe7e-890ee61bb49c.png)

### 高級機能
次に「高級機能」メニューに移りましょう。次の画面で管理者のパスワードが求められるので入力してログインします。
![07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/425a4e95-4c0c-2e55-ff6a-8af4c227d021.png)

#### 画面日本語化
「高級機能」は LuCI の画面です。初めに日本語化しましょう。上の横方向のバーのメニューから「System」＞「Software」を選びます。
![11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/506df53c-f0be-1044-071d-4b83f6337d4f.png)

使用できるパッケージのリストを取得するため、「Update lists」ボタンを押します。
![12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/db1746c7-e3ce-4ff9-e2b2-572aa28ff7ba.png)

取得できたら、現在インストール済の LuCI アプリケーションを確認しましょう。「Installed packages」タブをクリックします。
![13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/ef8cc8ed-baee-20dc-9016-1a808d73eed1.png)

Filter 欄に luci と入力して探すと、デフォルトでは下記のパッケージがインストール済です。このうち、名前が luci-app で始まる luci-app-firewall と luci-base の２つが画面表示に直接関係するものです。
> liblucihttp,  liblucihttp-lua
> luci
> luci-app-firewall,  luci-base
> luci-lib-ip, luci-lib-json, luci-lib-jsonc, luci-lib-nixio
> luci-mod-admin-full, luci-mod-rpc
> luci-proto-ipv6, luci-proto-ppp
> luci-theme-bootstrap

次に「Available packages」タブに移動し、LuCI を日本語化するためのパッケージを探します。Filter 欄に luci*ja と入力して一覧表示を待ちます。
![15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/2b9fbacc-fefb-e840-d8cb-3e170d5937a4.png)

luci-base を日本語化するためのパッケージとして、luci-i18n-base-ja があります。これをインストールします。
![15_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/47bc2ac8-9399-c64b-95d1-4f8c1bdc8206.png)

成功すると、このように表示されます。
![15_2_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/b15503e2-f8df-97f4-f602-d9bd1a7ef167.png)

同様にして、luci-i18n-firewall-ja もインストールします。
![15_3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/f8bd2267-f74d-912d-0b35-aed1faae2832.png)

2つともインストールが完了したら、上の横方向のバーのメニューから「 System」＞「System」 を選びます。
![16.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/4a9ad8ab-e82b-0ee9-7407-3319ab3815dd.png)

「Language and Style」タブを選択して、日本語を選択します。
![17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/2bd4f6a9-beae-33b6-9a33-6de2fbb50d7b.png)

日本語化が完了すると、このように表示されます。
![18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/aade2ec5-7a22-e8bf-efdf-eabfd3a45399.png)

#### 時刻
ここからは、いつも私がしている設定をいくつか紹介します。
下記の画像のように、GL-MT300N-V2 自身を NTP サーバーとして設定することができます。
また、GL-MT300N-V2 が見に行く上流の NTP サーバーは、
デフォルトでは 0.openwrt.pool.ntp.org から 3.openwrt.pool.ntp.org までが設定されています。
私の好みで日本地域の NTP サーバーを示す 0.jp.pool.ntp.org から 3.jp.pool.ntp.org までへ変更しています。
 
![20okonomi_sys_ntp.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/8cd076a2-055c-e47e-6306-493e7f1767e5.png)

#### ログ
ログ出力レベルを「デバッグ」から「注意」へ、Cron のログ出力レベルを「標準」から「警告」へ変更しています[^5]。

![20okonomi_sys_log.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/f3d4d3b1-5f6f-3191-23dc-d6ff7535c7a2.png)

[^5]: 見る必要性は少ないかもしれませんが、大量のログを見ずに少量のログで用が足りるならそれですませたい、と思っています。ログを詳しく見たいときに出力レベルを変更すればよいと割り切っています。

#### GUEST の起動を止める
ネットワーク・インターフェースのうち、私は GUEST を使う予定がないので起動を止めます[^9]。上の横方向のバーのメニューから「ネットワーク」＞「インターフェース」を選び、GUEST の行の右から2つ目にある「編集」ボタンを押します。

![21okonomi_net_guest_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/d98f5b36-1af5-8cd9-66d5-3106a041ec17.png)

詳細設定タブを選び、「デフォルトで起動する」のチェックを外します。下記の図には表示されていませんが、右下にある「保存＆適用」ボタンを押します。

![21okonomi_net_guest_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/cff69599-82af-a5ec-c480-3b4f96676050.png)

[^9]: Guest 用 Wifi を使用する必要がある場合は止めないでください。

#### DNS キャッシュを増やす
ブラウザで URL アドレスを入力すると、DNS サーバーへ問い合わせてURL に対応する IP アドレスを教えてもらっています[^3]。その結果をキャッシュしておく機能です。デフォルトでは150件ですが、メモリに余裕があるので、2048件へ変更しています[^4]。
上の横方向のバーのメニューから「ネットワーク」＞「DHCP 及び DNS」を選びます。詳細設定タブをクリックして下にスクロールすると、「DNS クエリ キャッシュのサイズ」という項目があります。

![21okonomi_net_dhcp_dns_2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/b2ec3013-19ff-90b8-b9a0-465af506b250.png)

ついでにこの詳細設定タブの最上部にある「ログの抑制」にもチェックしておきます。

![21okonomi_net_dhcp_dns_1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/9f595724-8c0f-e1a7-f140-1f6c4cb1e09e.png)

[^3]: IPアドレスの解決、といいます。
[^4]: ヒット率を計測して決めたわけではないので、もしかすると多すぎかもしれません。

#### wi-fi が ON の場合のみ LED 点灯
(20201227追記)
デフォルトでは、USB で電源を供給している間は、常に LED が点灯します。wi-fi の状態により LED の点灯有無を判断させることができます。
上の横方向のバーのメニューから「システム」＞「LED 設定」を選びます。下図のように定義すると、wi-fi が OFF なら消灯し、ON であれば LED を点灯するように変更できます。ただし USB で電源を供給し始めた直後は常に点灯します。ネットワーク関係の機能が動作し始めた後に点灯有無が判断されます。

![wifi_power.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/cc4aa4e7-3c3f-e909-2040-3d941eb8925e.png)


### 次にすること
LuCI からいくつかのアプリケーションを追加してみます。次回に続きます。

### NG なことが分かったこと。
#### LAN をジャンボフレーム対応化できない
(4月19日記載内容訂正)
「ネットワーク」＞「インターフェース」画面上では、最高 9200 を入力可能ですが反映されません。[^7]
GL-MT300N-V2 に Teraterm でログインし、br-lan の MTU を ipconfig コマンドで確認したところ、1500 のままになっていました。ipconfig コマンドを実行しながら試したところ、1500 を超える MTU を設定できないことがわかりました。1454 など 1500以下の値を入力すると反映されます。

なお、画面上で 9200 を超える値を入力すると赤い字になって警告されます[^8]。
![21okonomi_net_lan_teisei.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27855/6e79452e-3c6b-b79c-70d7-e75c10ed5105.png)


[^7]: PC 上のネットワーク・ドライバーでは、1バイト単位ではなく1KB 単位での選択になっている場合があります。
[^8]: GL-MT300N-V2 を2019年6月購入直後に MTU 値に大きな値を入力した時は、警告も何も表示されないまま保存されて起動しなくなり、工場出荷状態への復元が必要でした。GL-MT300N-V2 の場合は、1501 以上の値を入力したらエラー表示されると良いですね。