NanoPi R5CにOpenWrtをいれる

おはようございます。waturaです。IPv6のndp周りでどハマりしましたが、無事に安定稼動するルーターを手に入れました。
そうすると次はより良い環境が欲しくなります。

前の記事でも書いていますが、2025年に置いても10GbE環境の構築は恐ろしくお金がかかります。なので、構築するのは2.5GbE環境です。

2.5GbEのスイッチを導入しました。また、MacBookとはUSB-C Ethernet Adapterで繋ぐようにしました。

WiFiはろくな速度が出ないので、有線1択です。このアダプタにしたのは安かったからです。

ルーター

候補

お値段的に問題がすくなく、少しでも10GbEを使える選択肢

  • Buffalo  WXR-5950AX12

    • 10GbE x 2

    • OpenWrtがうごく

    • WXR-6000AX12も同系列

    • 中古ならかえる値段

  • TP-Link BE7200

    • 10GbE x 1、2.5GbE x 1

    • OpenWrtはうごかない

    • 新品でもかえる値段

  • BananaPi R4

    • OpenWrtが動く

    • SFP+ x 2

      • 変換アダプター

      • XikeStor Switch とならつなげる

    • わりと予算オーバー

      • 変換アダプター

      • ケース

2.5GbEが使える候補

  • nanopi R6S, R5S, R5C

    • OpenWrtが動く

    • 2.5 GbE x 2

  • BPI-R3

    • SFP x 2

      • R3とは違い

  • BPI-R3 mini

    • 2.5 GbE x 2

  • Radxa e52c


その他の候補

有象無象の10GbEやSFP+, 2.5 GbE の載っている mini PC

選定

なんとなく、buffaloとかTP-Linkはいやだよね。でも、安くていいよねぇ。しかもbuffaloのは10GbE x 2 だよ!とうところで、悩みました。でも、いろいろ遊ぶならば,TP-Linkはルーターしか出来ないので微妙。BuffaloはOpenWrtもいれれるしいいよね〜。SBC系やnanopi面白そうだよねえ
とマジでとりとめもなく半月くらい上記の候補をググり続けて調べていました。(Perplexityとかで調べてたので、いずれはググるは死語になる?)

結論としては、OpenWrtが問題なくうごきそうで、かつ、お安くて、小さいNanoPi R5Cを購入しました。
メタルケースつきで1万円切っているというところが決め手ですね。
WiFiは使わないので,M.2 E-KeyじゃなくてM-Keyだったら最高of最高って感じだったのですが、本体サイズ的にもあわなそうなので残念でした。

Radxa e52cは安くてよかったのですが、OpenWrt対応がまだ微妙そうだったり、本体の拡張性が低そうだったのでやめました。
BPI系はSFP→rj45に変換する系が高いし、発熱するので不便そうだったのでやめました。
TP-LinkとかBuffaloはメーカーがスキじゃないのでやめました。


NanoPi R5CにOpenWrtをいれる

NanoPiにはFriendlyWrtというOpenWrtのフォークが入っています。なので、そのままそれを使うのもありです。
動かしてみた感想としては、ぜんぜんいらないものがいっぱい入っているなぁという感想でした。なので、OpenWrtをいれてみました。

インストール方法

入れ方は簡単です。

OpenWrtのダウンロード

Ext4の方をダウンロードします。

FriendlyOpenWrt

にログイン

http://192.168.2.1
ID: root
PW: password

write to eMMC

ダウンロードしたOpenWrtを書き込みます

Partitionサイズの問題

もともとのPartitionが超ちっちゃくて悲しい感じになっているので、root fs を最大まで大きくします。
まずは、必要なツールのインストールです。

opkg update; opkg install parted losetup resize2fs

私の環境では /dev/mmcblk1 にデータが入っていたので、/dev/mmcblk1 として書いていますが,一応どこに入っているのかは確認しておいたほうがいいです。

Partitionをでかくしていく

parted -f -s /dev/mmcblk1 resizepart 2 100%
reboot
losetup /dev/loop0 /dev/mmcblk1p2 2> /dev/null
resize2fs -f /dev/loop0
reboot

これで、OpenWrtをNanoPi R5Cで使えるようになりました。

iperf3

2.5GbEアダプタを接続したMacBookPro(Client)

[  5]   0.00-1.00   sec   279 MBytes  2.33 Gbits/sec
[  5]   1.00-2.01   sec   281 MBytes  2.36 Gbits/sec
[  5]   2.01-3.00   sec   280 MBytes  2.36 Gbits/sec
[  5]   3.00-4.00   sec   281 MBytes  2.36 Gbits/sec
[  5]   4.00-5.01   sec   276 MBytes  2.31 Gbits/sec
[  5]   5.01-6.01   sec   281 MBytes  2.36 Gbits/sec
[  5]   6.01-7.00   sec   281 MBytes  2.36 Gbits/sec
[  5]   7.00-8.00   sec   281 MBytes  2.36 Gbits/sec
[  5]   8.00-9.00   sec   281 MBytes  2.36 Gbits/sec
[  5]   9.00-10.00  sec   282 MBytes  2.35 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  2.74 GBytes  2.35 Gbits/sec                  sender
[  5]   0.00-10.01  sec  2.73 GBytes  2.35 Gbits/sec                  receiver

2.5GbEアダプタを接続したMacBookPro(Server)

[  5]   0.00-1.00   sec   277 MBytes  2.32 Gbits/sec
[  5]   1.00-2.00   sec   280 MBytes  2.35 Gbits/sec
[  5]   2.00-3.00   sec   281 MBytes  2.36 Gbits/sec
[  5]   3.00-4.00   sec   281 MBytes  2.36 Gbits/sec
[  5]   4.00-5.00   sec   279 MBytes  2.34 Gbits/sec
[  5]   5.00-6.00   sec   279 MBytes  2.34 Gbits/sec
[  5]   6.00-7.00   sec   281 MBytes  2.36 Gbits/sec
       [  5]   7.00-8.00   sec   279 MBytes  2.34 Gbits/sec
[  5]   8.00-9.00   sec   279 MBytes  2.34 Gbits/sec
[  5]   9.00-10.00  sec   280 MBytes  2.35 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  2.73 GBytes  2.35 Gbits/sec               sender
[  5]   0.00-10.00  sec  2.73 GBytes  2.34 Gbits/sec                  receiver

MacBookPro(WiFi)(Server)

[  5]   0.00-1.00   sec  69.1 MBytes   579 Mbits/sec
[  5]   1.00-2.00   sec  67.0 MBytes   562 Mbits/sec
[  5]   2.00-3.00   sec  56.8 MBytes   476 Mbits/sec
[  5]   3.00-4.00   sec  62.1 MBytes   521 Mbits/sec
[  5]   4.00-5.00   sec  60.4 MBytes   506 Mbits/sec
[  5]   5.00-6.00   sec  64.1 MBytes   538 Mbits/sec
[  5]   6.00-7.00   sec  64.2 MBytes   539 Mbits/sec
[  5]   7.00-8.00   sec  65.8 MBytes   551 Mbits/sec
[  5]   8.00-9.00   sec  69.4 MBytes   582 Mbits/sec
[  5]   9.00-10.00  sec  67.0 MBytes   562 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec   646 MBytes   542 Mbits/sec sender
[  5]   0.00-10.01  sec   644 MBytes   540 Mbits/sec                  receiver

WiFはもうちょいでてほしいんですが、まあ、そんなもんかなぁという数値ではあります。というわけで、iperfするくらいならば、2.5GbE環境が出来てきたという感じになります。

OpenWrtの設定自体は前の記事を参照してください。

なお、光クロスだとこの記事の設定だとうまくいかないので修正が必要でした。また、今回はMap-eをつかう契約にしたのでDS-Liteの設定とかも全部不要になったので大幅に変わったという感じでした。

この記事にあるスクリプトをつかってマッピングをちゃんとしてあげないと、Bundle installすらできないつらい環境になってしまっていました。


ほぼ理論値でてた