Elecom WRC-X3200GST3 に OpenWrtをいれて、IPoE + PPPoEでつなぐ

 おはようございます。watura です。 先日、note アプリチームで年末の技術投資Daysと題して,業務とは関係のない技術投資を行なう2日間を実施しました。

アプリとは違うこと、かつ、興味があることを2日間やる。よし!ルーターにOpenWrtをいれるぞ!ということでやってみました。
なお、ルーターにOpenWrtなんで?流れはこのマガジンに記事を追加していくつもりです。

OpenWrtとは

OpenWrtは、無線LANルーターやその他のネットワーク機器向けの、オープンソースのオペレーティングシステムです。一般的な家庭用ルーターに、より高度な機能を追加できる特別なソフトウェアだと考えてください。

たとえば、通常のルーターでは設定できない詳細なネットワーク制御や、VPNサーバーの構築、通信の優先制御など、プロ向けのような高度な機能を利用できるようになります。

また、不要な機能を削除してルーターの動作を軽くしたり、新しい機能を追加したりすることも可能です。技術に詳しくない方には少し難しい面もありますが、インターネットで公開されている手順に従えば、誰でも導入することができます。

多くのネットワーク機器メーカーもOpenWrtに対応しており、世界中で広く使用されている信頼性の高いシステムです。

Claude Pro

メリット

高度なカスタマイズ性:
ルーティング、ファイアウォール、VPNなど、ネットワーク設定を細かく調整可能。標準ファームウェアでは制限される機能も自由に設定でき、自分好みのネットワーク環境を構築できます。細かな制御で、より快適なネットワーク利用を実現。

豊富な機能:
VPNサーバー/クライアント、QoS、ポートフォワーディングなど、標準ファームウェアにはない高度な機能が利用可能。Adblockやファイル共有など、様々なパッケージで機能を拡張できます。ルーターを多機能サーバーのように活用可能。

セキュリティ:
定期的なセキュリティアップデートで脆弱性に対処。ファイアウォール設定を細かく調整し、セキュリティを強化できます。SSHアクセスで安全なリモート管理も可能です。セキュリティを重視する方にもおすすめです。

パフォーマンス:
軽量なOSのため、標準ファームウェアよりパフォーマンスが向上する場合も。不要な機能を削除し、メモリやCPUの使用量を削減。古いルーターでもOpenWrtで延命できる可能性があります。ルーターの性能を最大限に引き出したい方に。

自由度:
メーカーの制約を受けずに、自由にルーターを制御可能。様々なハードウェアに対応し、対応機種も豊富。オープンソースなので、コミュニティのサポートも受けやすく、安心して利用できます。自分の思い通りにルーターを使いこなしたい方に。

学習:
ネットワークの知識を深め、Linuxの操作やコマンドラインインターフェースにも慣れることができます。ネットワークの仕組みを理解するための良い教材にもなります。技術的な知識を向上させたい方にもおすすめです。

Gemini

Geminiにメリットを簡潔に!おねがいしたら長々と返してくれました。めっちゃはやくていいんですけども。

ELECOMのWRC-X3200GST3-B

OpenWrtをいれるルーターはELECOMのELECOMのWRC-X3200GST3-Bになります。このルーターについても生成してもらいました。
なお、独自機能、セキュリティ機能はOpenWrtで消し飛ばすので関係ないです。現在、ASUSのルーターをつかっているのですが、そのルーターをAPとしてつかい、X3200GST3は有線ルータとしてつかいます。なので、無線機能についてもどうでもいいやという感じになります。

ELECOMのWRC-X3200GST3-Bは、高性能なWi-Fi 6対応のギガビットルーターです。

## 主な仕様
- 最大通信速度:5GHzで2,402Mbps、2.4GHzで800Mbps[1]
- 外形寸法:幅47.0mm×奥行147.0mm×高さ190.0mm[1]
- 重量:約570g[1]
- アンテナ:内蔵アンテナ×8(2.4GHz送受信用×4、5GHz送受信用×4)[1]

## 特徴
**高速通信性能**
- 3階建ての建物でも700Mbps以上の通信速度を維持[2][3]
- OFDMA、MU-MIMO対応で複数端末の同時接続に強い[3]

**ネットワーク機能**
- IPv6(IPoE)対応[3]
- 独自機能「らくらくQoS」搭載でWeb会議やオンライン学習の通信を最適化[2]
- トレンドマイクロ社セキュリティ機能搭載[2]

**接続性**
- LANポート×4、WANポート×1[1]
- 有線LANポートは10/100/1000Mbps対応[1]
- WPA3/WPA2などの最新セキュリティ規格に対応[1]

このルーターは特にテレワークやオンライン学習環境に適しており、マンション4LDKまたは戸建て3階建てまでの使用に推奨されています[3]。

Citations:
[1] https://gmobb.jp/service/docomohikari/bbr-spec/WRC-X3200GST3-B/
[2] https://www.elecom.co.jp/products/WRC-X3200GST3-B.html
[3] https://my-best.com/products/364415
[4] https://kakaku.com/item/K0001333330/

Perplexity

OpenWrtのインストール

スクショをとりながらすすめていたらよかったのですが、わすれていたのでスクショ等はありません。なお、残念すぎるくらい簡単にOpenWrtをインストールできます。ルーターによってはかなり面倒そうなものもたくさんあるので、簡単なルータでよかったです。

ELECOM WRC-X3200GST3へのOpenWrtのインストール方法を説明します。このデバイスは非常に簡単にOpenWrtを導入できます[1][2]。

## インストール手順

1. OpenWrtのファームウェアを入手
- openwrt.orgから「ファームウェア」をダウンロードします[2]。

2. ルーターの準備
- WRC-X3200GST3をルーターモードで起動します
- PCとルーターをLANケーブルで接続します

3. ファームウェアの更新
- ブラウザで`http://192.168.2.1`にアクセス
- 「その他設定」→「ファームウェア更新」を選択
- 「ローカルファイル指定」でダウンロードしたファームウェアを選択
- 「適用」をクリックし、約120秒待機[1][2]

4. 初期設定
- 再起動後、`http://192.168.1.1`にアクセス
- ユーザー名:`root`、パスワード:なし でログイン[2]

Perplexityをちょろっと編集

ネットワーク設定

ネットワーク設定をしていきます。

PPPoE(IPv4)

自宅サーバーを動かしているため、DS-LiteなどのIPv4 over IPv6 はあまり嬉しくありません。今使っているIIJではPPPoEとIPoEを一緒につかうことができるので、PPPoEを使うようにしています。

Network→Interfaceで、wan を編集します。画像ではpppoe-wanになっていますが、初期状態の場合はDHCPになっていたと思います。

設定画面をひらき、ProtocolをPPPoEにします。そして、IDとパスワードを入力します。保存したら Save & Applyをして、接続してくれることを祈ります。セッション情報などの関係か、つながるまでに時間がかかる場合がありました。

これで、PPPoE(IPv4)接続が出来るようになりました。

IPoE(IPv6)

wan6をまずは設定します。wan6の設定画面をひらき、DHCP Serverを開きます。DHCPをセットアップする的なボタンが表示されていると思うのでセットアップします。
IPv6 Settingをひらき画像のようになるように設定します。

全部Relay

つぎに、br-lanも設定します。
こちらも同様にDHCP→IPv6 Settingsを開きます。
そして、同様に全部relay modeにします。

Save & Apply します。これで、IPv6もつながります!

とかで、IPv6かどうかをみれます。詳しくは OpenWrt フレッツ光 IPoE 設定で検索するといっぱい出てきます。

どハマりポイント(MacだけIPv6でつながらなくなった)

さて、ここまでほぼほぼAIで生成してもらいながら書いてきました。書いてきたというよりはコピペしてきました。さて、検索したらいっぱい出てくるよ!と書いたものの、今回遭遇した事態についてかかれているページがほぼ見つからなかったので、メモとして残しておきます。

発生した事象というのが、IPv6での接続がすごく不安定でだいたいIPv4だけになるというものでした。

現象

  • 1回IPv6でつながった

  • 何かがおこってつながらない端末がでてくる

    • iPhone つながる

    • Ubuntu つながる

    • iPad つながる

    • Mac つながらない

  • Mac はもう二度とつながらない

  • ルーターを初期化してやり直したらつながった

mac 2台のうち1台がつながっていたタイミングとかもあったので、なかなか状態がわからず、諦めようとしていました。

ルーターを初期化した後、安定してつながっていたのですが、間違えてルーターのコンセントを引っこ抜いてしまうというミスをしました。
そして、macだけがつながらなくなりました。。。

なにか、キャッシュされているものが消えた…

ただしく、通信するためにはIPアドレスとマシンの関係を知る必要があります。猛烈にざっくりと書くと

ルーター「 2400:abcd:1234:xxxx:ssss ってだれですか?」
Mac 「はい!私です。MACはAB:12:CD:EF:GGです。」
ルーター「覚えておくね!では、パケットどうぞ!」
次回からは、覚えているので、「パケットどうぞ」だけですみます。

これは、IPv4でもIPv6でも行われていることなんですが、IPv6だと少しややこしさがあるようです。そして、そのややこしさのせいで今回の問題が発生してしまったようです。

ULAとLLA

IPv6のULA (Unique Local Address)とLLA (Link Local Address)について説明させていただきます。

ULA (Unique Local Address):
- プライベートネットワーク用のIPv6アドレス
- プレフィックスは「fc00::/7」で始まります
- グローバルなインターネットには経路広告されません
- 組織内やサイト間の通信に使用されます
- グローバルに一意である可能性が高いですが、保証はありません

LLA (Link Local Address):
- 同一リンク(セグメント)内でのみ有効なアドレス
- プレフィックスは「fe80::/10」で始まります
- ルータを超えた通信はできません
- 自動的に設定される(SLAAC)
- 主にIPv6の基本機能(近隣探索など)に使用されます

主な違い:
- スコープ: ULAはサイト内、LLAはリンク内のみ
- 用途: ULAは組織内通信、LLAは基本機能用
- 設定: ULAは手動/DHCPv6、LLAは自動設定
- 経路制御: ULAはルーティング可能、LLAは不可

これらのアドレスはIPv6ネットワークの重要な構成要素として、異なる目的で使用されています。

Claude

ULAとLLAというものがあり、これが今回の原因だったようです。Claudeの説明を読んでもよくわからないのですが、GlobalなIP, ローカルのIP, もういっこLocalなIPという3種類のIPをもつようです。
そして、MacはULAを使った宛先の問い合わせには返事をしないとのIssueがありました。

対処方法としては、問い合わせにULAを使わないようにするだけです。

Interface → Global Network Optionsに IPv6 ULA-Prefix を空にします。Save & Apply をして再起動もしておきます。

Status → Routing → IPv6 Routing → IPv6 Neighbours にMacのIPアドレスがあれば成功です。(再起動直後だと問い合わせが発生していないので、まだないかもしれないです)mac以外だとULAがセットされた問い合わせでも返事してくれているようなので、動いているようです。(iOSもちゃんと返事する)

これで、IPv6も安定して使えるようになりました。

ついでにPrometheus/Grafanaでグラフを見れるようにしてみました。

意味のないグラフ。検索したらやり方がすぐでてくる

まとめ:技術投資Days

IPv6というものや、ルーターを含めてIPv6を構成するいろいろなものについての理解が少し深まりました。LLAとULAの違いとかまだ、試験にでてきたらxをとってしまいそうなところも多々あるのですが、知識が増えたという…ではよかったのではないかと思います。

社会人をしているとこういう一般的な技術仕様とかに関することって勉強する機会があまりないので、よい、投資になったのではないかと思います。
 こういう、コンピュータサイエンスにはいってきそうな、幅広い知識はまた勉強したいですね。

なお、ds-liteによる接続もわりとさくっとできていて、2日間のうちの6割くらいはULA問題の調査にかかっていました。
また、同時に物理的に2.5GbEでmacつないだり2.5GbEスイッチいれたりとかってして遊んでいたので,その時間も含まれています。
1GbEのRPiにたいして、2.5GbEのmacからiperf3をしたら、1GbEだったときよりちょっと早くなったりしていました。
RPiにもUSBで2.5GbEアダプタをつないだのですが、Clientとしてなら早くなったのに、サーバーとしてだとめっちゃ遅いという謎な現象も発生していました。ここは調査していないですが、USB SSDで起動しているのも原因の一つ?とちょっと考えています。