2025/10/14(火)Openwrt本体でメトリクスをグラフで見れるようにした
投稿日:
luci-app-statisticsとcollectdを入れて下図のように各メトリクスのグラフを見れるようにした。collectdは、システム情報を定期的に収集し、さまざまな方法で値を格納するメカニズムを提供する小さなデーモンで、luci-app-statisticsはそれをLuCI上に表示するためのものっぽい。
確認環境
| Env | Ver |
|---|---|
| OpenWrt | 24.10.0 |
セットアップ
- LuCIを開く
- System→Software
- luci-app-statisticsを入れる
- 画面リロード
- Statics→Graphからグラフが見れることを確認
この時点で幾つかのプラグインが導入されたが、消したり入れたりして、結果として以下のものを導入した。
Collectdのプラグイン設定
/etc/collectd.confをいじると変更できる。
基本的にはLoadPlugin hogeでhogeプラグインを読み込み、以下の書式で設定するようだ。設定がなければLoadPlugin hogeだけでよい。
<Plugin hoge>
Foo true
Bar 1
Baz "fuga"
</Plugin>
Collectdのプラグイン
collectd-mod-cpu:CPU使用率
| 設定 | 内容 | デフォルト |
|---|---|---|
| ValuesPercentage | trueであれば、パーセンテージで取れる |
true |
| ReportByCpu | trueであれば、コアごとに取れる |
true |
| ReportByState | trueであれば、システム、ユーザー、アイドルなど、状態ごとに取れる |
true |
設定はデフォルトのままで良さそう。
collectd-mod-interface:ネットワーク転送量
Network→Interfaces→Deviceにあるものが見れる。
br-lanとMAP-E、PPPoEが見たいので以下のようにした。
LoadPlugin interface
<Plugin interface>
Interface "br-lan"
Interface "map-wanmap"
Interface "pppoe-wanppp"
</Plugin>
collectd-mod-load:負荷(Load Average)
uptimeコマンドで出てくる内容と思われる。1を超えていれば過負荷、割っていれば余裕がある。
Wikipediaによると、1ならその時間平均で全てのプロセスが実行され、1.73なら73%のプロセスが実行待ちになったと言う事のようだ。これを1分、5分、15分の平均で出しているとのこと。
設定項目がない。
collectd-mod-memory
メモリの使用量を取れる。
| 設定 | 内容 | デフォルト |
|---|---|---|
| ValuesAbsolute | 物理メモリ使用量の絶対数で報告するかどうか(つまりどういうこと?) | true |
| ValuesPercentage | メモリ使用量をパーセンテージで報告するかどうか | false |
設定はデフォルトのままで良さそう。
collectd-mod-thermal
デバイスの温度を取れる。
| 設定 | 内容 | デフォルト |
|---|---|---|
| ForceUseProcfs | Linuxインターフェースではなく、procfsから熱源を取得する | false |
| Device | 温度を取得するデバイス名 | |
| IgnoreSelected | trueにするとDeviceで指定したデバイスを集計外にする |
false |
R86S U1の場合、thermal_zone1以外無価値に見えたので、thermal_zone1のみとした。thermal_zone0はマザーボードの温度のようだが、固定値しか出てこない。
LoadPlugin thermal
<Plugin thermal>
Device "thermal_zone1"
</Plugin>
これだけだと余計なグラフが出てくるため、設定後に余計なグラフデータを削除する。
collectd-mod-uptime
公式にマニュアルはなさそうだが、起動時間を見れる。
LoadPlugin uptime
collectd-mod-rrdtool
collectdが取得したメトリクスを保存したり、メトリクスのグラフを書くのに使われている模様。特に設定せずとも勝手に設定されるため設定を気にする必要性はなさそう。
ログは標準では/tmp/rrd/OpenWrt/に保存されているようなのでストレージの摩耗は気にしなくていい。(/tmp/はオンメモリストレージ)
トラブルシューティング
Thermalタブに壊れて表示されていない画像や、集計対象外のグラフが表示される
上図の青枠のように壊れて表示されていない画像や、集計対象外のものが表示されている場合、/tmp/rrd/OpenWrt/配下にある不要なメトリクスを削除することで非表示にできる。
例えば上図にあるthermal-cooling_device*にはまともにデータが入っていないため、画像が壊れて表示されている。rm -Rf thermal-cooling_device*で消すと出てこなくなる。
上図の状態になると、下図のように不要なグラフが表示されなくなる。
但しcollectd.confで以下のようにデバイスを絞っていないと、再び出てくると思われるので、設定で表示したいものだけに絞ってから消した方がよい。
LoadPlugin thermal
<Plugin thermal>
Device "thermal_zone1"
</Plugin>
参考
2025/09/19(金)宅内に10GbE環境を導入してみた
投稿日:
自作ルーターを作っていくのにR86S U1を買ったのもあり、遂にフレッツ光クロス、10Gbps対応に関する覚書で構想した10GbE LAN環境の構築を実行してみた。有線部分のみの対応で無線部分は放置している。
フレッツ光クロスとフレッツ光ネクスト隼のコスト比較をしてみた結果、クロスの導入コストが高すぎたのでLAN内だけ10GbE対応としている。そもそも出先から10GbE接続できるとは思えないのもあり、WANまで10GbE対応にする意味はNAS目的では薄そうだ。
恐らく現状で10G対応WANが活躍するシーンは、BitTorrentみたいに異なる相手から複数ストリームを並列でやり取りするみたいな用途くらいな気はする。
今回揃えたもの
| 分類 | 機器 | 詳細 | 参考価格 |
|---|---|---|---|
| スイッチ | MikroTik CRS305-1G-4S+IN | 10GBASE, SFP+ 4口, 1000BASE-T 1口 | 27,349円 |
| DACケーブル | 10Gtek CAB-10GSFP-P0.5M-30 | 10GBASE, CAT8, 0.5m Twinaxケーブル | 1,999円 |
| DACケーブル | 10Gtek CAB-10GSFP-P1M-30 | 10GBASE, CAT8, 1.0m Twinaxケーブル | 2,199円 |
| DACケーブル | 10Gtek CAB-10GSFP-P2M-30 | 10GBASE, CAT8, 2.0m Twinaxケーブル | 2,419円 |
| Windows用NIC | Mellanox ConnectX-4 Lx | PCIe3.0 x8, SFP28ポート * 2 | 3,359円 |
| Ubuntu用NIC | 同上 | 同上 | 同上 |
スイッチを除くと1GbE用の設備と比べてもそこまで高くない印象で、案外負担にならない印象だ。
特にMellanox ConnectX-4 Lxは中古が安く流通しているので、かなり助かる。このNICはQSFP対応の25GbE対応とオーバースペックだが、SFP28とSFP+には互換性があるため問題ない。
むしろSFP+対応で10GbEのX-3は最新のUbuntuに対応させるのに手間が掛かったり、Windows 11が起動しなくなるなどの問題があると聞くため、これが無難な選択肢だろう。しかし軽く見た感じボードメーカーの記載がなく、どこが作ったものなのかは不明だ。
価格的にも2ポートの方が1ポートより安いなど、SFP+対応NICはジャストスペックを狙うより、オーバースペックの方がコストを抑えられ、将来の拡張性も得られて嬉しいかもしれない。
なお、Windows側はx8に空きがなかったため、PCIe 4.0 x4に挿して使っており、Ubuntu側はCPUの制限によりPCIe 5.0 x16がPCIe 4.0 x4にダウングレードされたスロットを使っている。
リンク速度はWindowsはHWiNFOで確認した限り「バージョン: 3.0」「現在のリンク幅: x4」「現在のリンク速度: 8.0GT/s」で、Ubuntuはsudo lspci -vvで確認した限りSpeed 8GT/s, Width x4だった。これだけを見ると10Gbps出ない気もするが、実際のところはどうなのか、この後計測してゆく。
速度ベンチ
iperf3でWindowsとUbuntu間を計測した結果。
変更前(1GbE環境)
確認環境
NICやルーターは2.5GbEに対応しているが、1GbEスイッチを挟んでいる関係で1Gbpsが上限となる。接続はすべてCAT6のLANケーブル。
Windows→Ubuntu
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.01 sec 119 MBytes 981 Mbits/sec
[ 5] 1.01-2.01 sec 112 MBytes 949 Mbits/sec
[ 5] 2.01-3.00 sec 113 MBytes 950 Mbits/sec
[ 5] 3.00-4.00 sec 113 MBytes 949 Mbits/sec
[ 5] 4.00-5.01 sec 115 MBytes 950 Mbits/sec
[ 5] 5.01-6.01 sec 112 MBytes 949 Mbits/sec
[ 5] 6.01-7.00 sec 113 MBytes 949 Mbits/sec
[ 5] 7.00-8.02 sec 114 MBytes 950 Mbits/sec
[ 5] 8.02-9.01 sec 113 MBytes 949 Mbits/sec
[ 5] 9.01-10.01 sec 113 MBytes 950 Mbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.01 sec 1.11 GBytes 953 Mbits/sec sender
[ 5] 0.00-10.03 sec 1.11 GBytes 949 Mbits/sec receiver
Ubuntu→Windows
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 115 MBytes 962 Mbits/sec 0 471 KBytes
[ 5] 1.00-2.00 sec 112 MBytes 938 Mbits/sec 0 494 KBytes
[ 5] 2.00-3.00 sec 112 MBytes 942 Mbits/sec 0 520 KBytes
[ 5] 3.00-4.00 sec 113 MBytes 946 Mbits/sec 0 549 KBytes
[ 5] 4.00-5.00 sec 112 MBytes 942 Mbits/sec 0 577 KBytes
[ 5] 5.00-6.00 sec 112 MBytes 938 Mbits/sec 0 577 KBytes
[ 5] 6.00-7.00 sec 113 MBytes 946 Mbits/sec 0 577 KBytes
[ 5] 7.00-8.00 sec 112 MBytes 939 Mbits/sec 0 577 KBytes
[ 5] 8.00-9.00 sec 113 MBytes 946 Mbits/sec 0 617 KBytes
[ 5] 9.00-10.00 sec 112 MBytes 942 Mbits/sec 0 646 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 1.10 GBytes 944 Mbits/sec 0 sender
[ 5] 0.00-10.00 sec 1.10 GBytes 941 Mbits/sec receiver
変更後(10GbE環境)
確認環境
Windows側はPCIe 4.0 x4、Ubuntu側は
1GbE環境とルーターが同じだが、これはR86Sが10GbEと2.5GbEの二種類のポートを持っているためだ。
R86SはSFP+ポートが10GbE、RJ45ポートが2.5GbE対応になっている。
Windowsにドライバ入れる前
Windows→Ubuntu
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.01 sec 1.08 GBytes 9.22 Gbits/sec
[ 5] 1.01-2.01 sec 1.10 GBytes 9.36 Gbits/sec
[ 5] 2.01-3.00 sec 1.08 GBytes 9.36 Gbits/sec
[ 5] 3.00-4.01 sec 1.09 GBytes 9.36 Gbits/sec
[ 5] 4.01-5.00 sec 1.08 GBytes 9.36 Gbits/sec
[ 5] 5.00-6.01 sec 1.10 GBytes 9.36 Gbits/sec
[ 5] 6.01-7.01 sec 1.10 GBytes 9.36 Gbits/sec
[ 5] 7.01-8.01 sec 1.08 GBytes 9.36 Gbits/sec
[ 5] 8.01-9.01 sec 1.10 GBytes 9.36 Gbits/sec
[ 5] 9.01-10.02 sec 1.09 GBytes 9.36 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.02 sec 10.9 GBytes 9.35 Gbits/sec sender
[ 5] 0.00-10.02 sec 10.9 GBytes 9.34 Gbits/sec receiver
Ubuntu→Windows
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 256 KBytes 2.09 Mbits/sec 2 1.41 KBytes
[ 5] 1.00-2.00 sec 0.00 Bytes 0.00 bits/sec 1 1.41 KBytes
[ 5] 2.00-3.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 5] 3.00-4.00 sec 0.00 Bytes 0.00 bits/sec 1 1.41 KBytes
[ 5] 4.00-5.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 5] 5.00-6.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 5] 6.00-7.00 sec 0.00 Bytes 0.00 bits/sec 1 1.41 KBytes
[ 5] 7.00-8.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 5] 8.00-9.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
[ 5] 9.00-10.00 sec 0.00 Bytes 0.00 bits/sec 0 1.41 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 256 KBytes 210 Kbits/sec 5 sender
[ 5] 0.00-10.00 sec 0.00 Bytes 0.00 bits/sec receiver
Windowsにドライバ入れた後
Windows→Ubuntu
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.01 sec 1.11 GBytes 9.51 Gbits/sec
[ 5] 1.01-2.01 sec 1.11 GBytes 9.50 Gbits/sec
[ 5] 2.01-3.01 sec 1.10 GBytes 9.49 Gbits/sec
[ 5] 3.01-4.00 sec 1.10 GBytes 9.49 Gbits/sec
[ 5] 4.00-5.01 sec 1.11 GBytes 9.50 Gbits/sec
[ 5] 5.01-6.01 sec 1.11 GBytes 9.50 Gbits/sec
[ 5] 6.01-7.01 sec 1.11 GBytes 9.49 Gbits/sec
[ 5] 7.01-8.01 sec 1.10 GBytes 9.49 Gbits/sec
[ 5] 8.01-9.00 sec 1.10 GBytes 9.49 Gbits/sec
[ 5] 9.00-10.01 sec 1.11 GBytes 9.49 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.01 sec 11.1 GBytes 9.49 Gbits/sec sender
[ 5] 0.00-10.01 sec 11.1 GBytes 9.49 Gbits/sec receiver
Ubuntu→Windows
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 1.10 GBytes 9.43 Gbits/sec 0 1.33 MBytes
[ 5] 1.00-2.00 sec 1.10 GBytes 9.42 Gbits/sec 0 1.33 MBytes
[ 5] 2.00-3.00 sec 1.10 GBytes 9.42 Gbits/sec 0 1.33 MBytes
[ 5] 3.00-4.00 sec 1.09 GBytes 9.41 Gbits/sec 0 1.33 MBytes
[ 5] 4.00-5.00 sec 1.10 GBytes 9.42 Gbits/sec 0 1.54 MBytes
[ 5] 5.00-6.00 sec 1.10 GBytes 9.42 Gbits/sec 0 1.54 MBytes
[ 5] 6.00-7.00 sec 1.09 GBytes 9.41 Gbits/sec 0 1.54 MBytes
[ 5] 7.00-8.00 sec 1.10 GBytes 9.42 Gbits/sec 0 1.54 MBytes
[ 5] 8.00-9.00 sec 1.10 GBytes 9.41 Gbits/sec 0 1.54 MBytes
[ 5] 9.00-10.00 sec 1.10 GBytes 9.42 Gbits/sec 0 1.54 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 11.0 GBytes 9.42 Gbits/sec 0 sender
[ 5] 0.00-10.00 sec 11.0 GBytes 9.41 Gbits/sec receiver
まとめ
| 回線状況 | Windows→Ubuntu(上り) | Windows→Ubuntu(下り) | Ubuntu→Windows(上り) | Ubuntu→Windows(下り) |
|---|---|---|---|---|
| 1GbE | 953 Mbps | 949 Mbps | 944 Mbps | 941 Mbps |
| 10GbE(Windowsドライバなし) | 9.35 Gbps | 9.34 Gbps | 210 Kbps | 0 bps |
| 10GbE(Windowsドライバあり) | 9.49 Gbps | 9.49 Gbps | 9.42 Gbps | 9.41 Gbps |
Windowsにドライバがない状況だとiperf3では何故かまともに疎通できない状態だった。何故かは不明。SFTPを使ったファイル転送は出来たのでiperf3との相性が悪かった可能性もあるが、ドライバを入れて改善したところから、ドライバレスでは何かしら不都合がある可能性がある。
またWindowsよりUbuntuの方が若干速度が落ちる傾向があることも分かった。
やったこと
デフォルトではIB(InfiniBand)だからETH(Ethernet)にモード変更が必要というのをネットで見ていたが、私の場合そんなことはなかった。ひょっとしたら中古なので設定が書き換えられたままだったのかもしれない。
Ubuntu
Ubuntu 24.04.3 LTSではNICを挿すだけで動いたので特に何もしていない。デフォルトでETH動作だった。
Windows
こちらもデフォルトでETH動作で、挿すだけでも動いた。
しかしConnectX-4用のドライバを入れることで性能が改善した。具体的にはiperf3で受信速度が0bpsだったのが9.5Gbpsくらいになった。
開封の儀
NIC
メーカー不詳のMellanox ConnectX-4 Lxボードだ。PCIe3.0 x8でSFP28ポートが二つ付いている。
Windows用とUbuntu用で二つ買っている。2ポートあるのは2ポートの方が安かったから。
ヒートシンクが付いてたり、SFP+用の長いソケットがついていたり、放熱用なのか穴が開いていたり、中々厳つい。
SFP+対応NICはショートブラケットが多く、ロングブラケットがないという話も聞くが、安心のロングブラケット入りを買ったので、ロングブラケットがちゃんと付いていた。
中身を取り出したところ。
ショートブラケットとロングブラケットでネジが異なるのだが、ロングの用のネジもちゃんと付いていて嬉しかった。というのも、このボードは中古なので不必要なパーツは紛失していても不思議がないからだ。
NIC装着(Ubuntu)
このNICをあてがう為だけに存在するようなPCIeレーンを解き放つ時が来た。見た目はx16だが、CPUが貧弱なのでx4しか出せない。
差し込んでみると中々いい感じだ。
いつも思うのだが、PCIeカードの窪みはケーブルを通すためにあるのだろうか?私はよくケーブルを通すのに使っていて、この写真でもケーブルを通している。
SFP+ジャックがいい感じに光る見た目になった。
スイッチ
MikroTik CRS305-1G-4S+INという、Amazonで売られている10GbE対応SFP+ジャック付きのイーサネットスイッチだ。Cloud Switch seriesとあるので、データセンター向け製品なのかもしれない。そもそもSFP+端子そのものがコンシューマー向けではないというのもある気はするが…w
こちらは新品で、中には簡単なマニュアルと本体、ACアダプタが入っていた。
外観はこんな感じ。ファンレスでパンチホールが沢山空いている。特に発熱のあるSFP+周りに穴が多い。PoE給電にも対応しているようだが、我が家には対応設備がなかった。
背中にはアースとAC入力が二つあった。どうやら電源を多重化し、片方が死んでも死なないようにするための仕組みらしい。RTX830にはなかった気がするので、こちらの方がよりハイグレードな設計といえるだろう。
裏面には壁にぶら下げる穴みたいなのもあった。
側面にはインジゲーターがあり、疎通状況などが確認できる仕組みになっていた。いかにも熱くなりそうなマークも目を引くポイントだ。10GbEは発熱が凄いと聞くので、恐らくその関係だろう。
なお今のところそんなに熱くなってはいない。
起動するとめっちゃ青く光る。
SFP+DACケーブル(Twinaxケーブル)
10GtekのDACケーブル。両端がSFP+端子になっているものをTwinaxケーブルというらしい。
こんな感じの袋に入っている。
中身はこんな感じ。端子がごつく、中の基板がむき出しで見えるのが面白い。
因みにこれは30cmのケーブルで、ケーブル延長が30cmだと思ったら、端子部分まで含めて30cmだったので使い物にならなかったやつだ。短すぎるケーブルを買う場合は注意した方がいいだろう。
マシンに差し込んだところ。金属端子がカッコいい感じだ。
NIC装着(Windows)
まずは元々使っていた玄人志向 GBE2.5-PCIE(Realtek RTL8125BG)を抜く。これはマザボ側のインターフェースが不安定なので使っていたカードだ。WindowsとIntelのネットワークインターフェースはここ数年相性が最悪レベルなのが困りものだ。
次に今回買ったNICを挿す。買う前から解ってはいたが、見事にスロットからはみ出ている。
こちらは抜き取ったRJ45端子のNIC(2.5GbE)。
配線状況
大まかな外観はこんな感じになった。逸般の誤家庭には程遠いが、それっぽさはあり、個人的には満足している。
しかしR86Sのファンはお世辞にも長生きしそうにない上に、凄い勢いでファンに埃が詰まっていっているのもあり、このまま使っていくのならば、ちゃんとしたクーラーを用意した方がいい気配がしている。
配線状況を図にするとこんな感じ。WiFi APを2.5GbEや10GbEに対応させることも考えたが、SFP+に対応したものは巨大すぎるので置き場所に困るし、SFP+とRJ45の変換は端子が90度に達するとも聞くので、運用できる気がしない。2.5GbEに絞ってみても高い端末や、やけにでかい端末しか見つからなかったので諦めた。
特に関係ないが、おまけで物理ネットワーク全体と言う事で、現在のデスク風景も残しておく。
感想
機材コストはそこそこしたものの、思ったよりトラブルなく移行できたのは良かった。
PCIeのリンク速度が8GT/sだったため、10Gbps出るかどうか懐疑的だったが、実効速度としては9.5Gbps出ており、1Gbps時代も950Mbpsだったことを考えればフルで出ていると考えて支障ない数値だ。8GT/sとは一体何なのかという感じだが、深く考えないでおこう。
ファイル転送速度も爆発的に上がり、LAN内でNASを運用する場合にも支障がだいぶ減った。とはいえ、流石にローカルのNVMeと比較すると全然物足りない速度ではある。
ストレージ面ではSATA IIIの速度が6Gbpsであるため、10Gbpsになったことにより、LAN内でSATAを扱う場合に遅延が無くなったと言える。NVMeSSDは7GByte/sとかなので、全く足りないがSATAを扱う場合は十分な速度といえるだろう。NVMeSSDをネットワーク越しに扱う場合には100GbEクラスが必要になってくると思われるが、ここまで来るとHPC(High Performance Computing)クラスになると思われるので、流石にやりすぎだとは思う。
但し実現自体は不可能ではなさそうで、アリエクでは100GbE対応NICであるMellanox MCX455A-ECAT ConnectX-4 EDR+100GbEが1.3万程度で売られているし、10Gtekも4~5000円で100GBASEのDACを売っているので、その気になれば構築は不可能ではなさそうだ。但しスイッチはMikroTik CRS504-4XQ-INでは13万円ほどし、ルーターは見つけることが出来なかったので、100GBASE対応NICを挿した適当なマシンでルーターPCを組む必要があると思われる。
今回の対応ではルーターまでが10Gbpsとなったため、宅内にボトルネックが仮にあればWANの速度も増えるかと思ったが、そんなことはなく、普通に据え置きで終わった。正直平均以上出てるので、ないとは思っていたが、まぁ、そうだよねという…w
それはさておきとして、一旦機材面では整ってきたと思うので、次はネットワーク機器やサーバーの監視体制を整えていきたいところだ。
関連記事
2025/09/03(水)R86S U1のスペックを調べた
Amazonや公式サイトにある情報が本当に正しいとは限らないので実地検分。
やり方
# これでCPUの情報が取れる
cat /proc/cpuinfo
# これでメモリの情報が取れる
opkg install dmidecode
dmidecode -t 17
# これでCPU, NICの情報が取れる
opkg install hwinfo
hwinfo
# これでeMMCのベンダ情報が取れる
cat /sys/class/mmc_host/mmc0/mmc0:0001/name
cat /sys/class/mmc_host/mmc0/mmc0:0001/manfid
調査ログ
CPU
cat /proc/cpuinfoの結果から取得した情報。
model name : Intel(R) Celeron(R) N5105 @ 2.00GHz
メモリ
dmidecode -t 17の結果から取得した情報。
MicronのLPDDR4でDDR4-3200相当であるとわかる。
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: None
Maximum Capacity: 8 GB
Error Information Handle: Not Provided
Number Of Devices: 2Memory Device
Array Handle: 0x003A
Size: 4 GB
Form Factor: Row Of Chips
Locator: Controller0-ChannelA
Type: LPDDR4
Speed: 3200 MT/s
Manufacturer: Micron Technology
NIC(RJ45)
hwinfoの結果から取得した情報。
pci 0x125cはI226-VなのでIntel Ethernet controller I226-V
Hardware Class: network
Model: "Intel Ethernet controller"
Vendor: pci 0x8086 "Intel Corporation"
Device: pci 0x125c
SubVendor: pci 0x8086 "Intel Corporation"
SubDevice: pci 0x0000
Revision: 0x04
Driver: "igc"
Driver Modules: "igc"
Device File: eth2
NIC(SPF+)
以前分解したときのラベルと、hwinfoの結果から取得した以下の情報と突き合わせるとMellanox ConnectX-3 En10*2 Gigabit Ethernet CX341Aであることが分かる。
Hardware Class: network
Model: "Mellanox MT27500 Family [ConnectX-3]"
Vendor: pci 0x15b3 "Mellanox Technologies"
Device: pci 0x1003 "MT27500 Family [ConnectX-3]"
SubVendor: pci 0x15b3 "Mellanox Technologies"
SubDevice: pci 0x0113
Driver: "mlx4_core"
Driver Modules: "mlx4_core"
Device File: eth3
ストレージ(eMMC)
以下の結果から、name: SCA128, manfid: 0x0000dfであることから、メーカー不詳のSCA128という製品であることが分かる。ググってもメーカー情報は不明だった。
cat /sys/class/mmc_host/mmc0/mmc0:0001/name
cat /sys/class/mmc_host/mmc0/mmc0:0001/manfid
まとめ
公式サイト?の情報やAmazonの情報と比べると微妙に差異があり、また、書いてない情報も取れたので調べてよかったなと思った。
| 構成 | 製品 | 備考 |
|---|---|---|
| CPU | Intel Celeron N5105 | 6T6C, 2.00GHz, TDP10W |
| MEM | Micron | LPDDR4-3200 4GB * 2 |
| Storage | SCA128 | 128G EMMC |
| NIC | Intel Ethernet controller I226-V | RJ45 2.5GbE * 3 |
| NIC | Mellanox ConnectX-3 En10*2 Gigabit Ethernet CX341A | SPF+ 10GbE * 2 |
2025/09/01(月)サーバー機を更新した
投稿日:
前回2024/01/25に更新したサーバー機(サブマシン)だったが、今回サーバーとして運用することになったのと、将来的に10GbEを導入した時の投資としてネットワークスペックを上げるなどを目的とし、更新を実施した。
更新前後の構成
POST時にメモリエラーが出るので近日中にメモリは交換予定だ。幸い相性保険に入っていたので追加費用は出ない見込み。
| 構成 | 製品 | 更新後 |
|---|---|---|
| OS | Ubuntu 24.04.3 LTS | 変更なし |
| CPU | AMD Ryzen 5 5600G | AMD Ryzen 5 8500G |
| MEM | CFD W4U2666CS-16G | crucial CP2K16G60C36U5W |
| M/B | ASRock A520M-ITX/ac | ASRock B850I Lightning WiFi |
| CPU Cooler | Cooler Master Hyper H412R | Cooler Master Hyper 411 Nano RR-H410-25PK-R1 |
| PSU | SILVERSTONE SST-ST30SF-V2 | 変更なし |
| Primary SSD | Crucial P1 CT500P1SSD8JP | 変更なし |
| Case | Thermaltake Core V1 | 変更なし |
| Front Fan | Thermaltake Pure 20 | 変更なし |
主な更新理由
- マザボ更新によるNICの高速化
- 1Gbpsを2.5Gbpsに上げることにより将来の高速化に備える
- メインマシンが2.5GbpsなのでLAN内速度の向上
- SocketAM5への移行
- 今後新たにCPUを買うときに発生するコストの痛みを余裕のある今のうちに吸収
- DDR5への移行
- もうDDR4とかオワコンですしお寿司…
開封の儀
買ったもの。全部神戸市内で購入。というかメインマシン更新時と同じくソフマップで買ってきた。ここにしかITXマザーがなさそうだったのが理由だ。
メモリがやけにゲーミングだが、他が売り切れていたので仕方がなくこれにした。
この時はまだCPUクーラーが適合しないとは夢にも思っていなかった。何故ならAM4とAM5はCPUブラケットに互換性があるとされていたからだ。
マザボ
箱の中身。WiFiのアンテナや、温度センサ、M2SSDネジ、ケーブルバンド、SATAケーブル辺りがあった。写真には写っていないがASRockのデカいシールも入っていた。
表面。CPUソケットの主張が激しい。
AM5からはLGAに変わっているためマザボ側にトゲが生えている。ピン折れリスクの観点からPGAの方が好きだったので残念だ。
とはいえ、PGAは面積当たりのピン数の制約が強いのでスペックアップのためには仕方ないだろう。面積当たりのピン数はLGAの方が有利だろうし。
裏面。裏面NVMeスロットが復活していた。これはA320M-ITXにはあったけどA520M-ITX/acではなくなっていた要素だ。
恐らくNVMeスロットを2つにする上で仕方がなかったのだろう。確かASUSも裏面に実装していたと思う。
CPUバックプレートを差し込もうとしたところ、なんと入らなかった。寸法は同じだったが穴のサイズが合っていなかった。
更に言うとバックプレートが剥がせなくなっていた。マザーボードに完全に貼り付けてあった。
側面。2.5Gの文字がまぶしい。今回最大の目的はこれである。
CPU
右が今回買った方で、左が今まで使ってた方。なんか見た目がかっこよくなっていた。
PGAからLGAに変わった関係で背が低くなっている。ソケットアサイン用の窪みが出来た関係もあると思うが、接点の密度は左程増えていないようにも見える。むしろ減っていても不思議がない。
CPUクーラー
まさか手持ちのが使えないとは思ってなかったので、組み立て作業はこれが届くまで一時停止する。
こちらは入手困難であったため、Amazonで調達した。17時ごろに見たら翌朝配送と書かれており、私はこの時、映画を見るスケジュールで埋まっていて当日中に手に入れる手立てがなかったからだ。
翌日12時半に到着して、無事パーツを組むことが出来るようになった。エアフローをサイドフロー型向けに最適化しておきたいので、このパーツは外せなかった。なんか微妙な奴ならソフマップにもあったのだが、微妙なのは使いたくなかった。こういうものには納得が必要だ。
付属品はファンとヒートシンクにIntel用のバックパネルとリテンションキット、CPUグリス、マニュアルなどだった。
AMDのバックパネルがないのが気になったが、そのまま挿すことが出来た。これは賢いなぁと思ったが、メーカーごとに自由なバックプレートを作れないのは差別化要素を失わさせる要因にもなるため、Intelの方が多様性に資するなとは思った。
ファンの新旧比較。左が新しい方、右が古い方。新しい方が風量があり、やや五月蠅かった。古い方は風量がやや少ない代わりに静かだった。
ヒートシンクの新旧比較。銀色が古い方、黒色が新しい方。
違いとしては、まず色が違うほか、台座のヒートシンクが小さくなっているのと、台座の高さも減っていた。
また、若干ヒートシンクの角が削れており、これはドライバーでネジを占めるときのクリアランスとして便利だった。以前はヒートシンクが削れていたのでイマイチだった。
グリスはCoolerMasterのコーポレートカラーだったが、なんかキモいので拭き取って忘れることにした。実際にはNoctuaのグリスを塗った。
組み立て後
中身。ヒートシンク付きのごついゲーミングメモリが目立つが、以前と比べ黒くなった。大体CPUクーラーのせい。
外観。ぶっちゃけ変わる要素がないので、ほぼ変わっていない。変化としてはシールが増えているところだ。しかし今回はRADEONのシールがなかったので、Ryzenのシールのみとなり、シールの枚数が奇数になってしまった。
左から右にシールを増やしているが、Athlonのシールがあるマシンもそうそうなさそうなので、結構独特な存在だと思っている。
あとがき
今回の更新作業は予期せぬトラブルで自宅サーバーが予想外長時間止まってしまった。本来は16時開始17時終了でサーバーを再開する予定が、CPUクーラー手配の関係などで翌日15時まで、ずれ込んでしまった。まぁ、こういうのも、また自宅サーバーの醍醐味だろうという気はするので、特に気にしてはいないし、むしろ停止中にメンテ画面に切り替えるためのDNS変更スクリプトとかは作っておいた方がいいだろうなという気付きを得られたりもした。
ひとまず本質的なスペックとしてはさして上がっていないと思われるが、拡張性で言えばマザボのスペックが最新鋭になり、ストレージスロットがやや増えているのもあり、将来的な拡張には耐えてくれるだろうし、この規模の更新は当面しなくて済むだろう。このベーススペックで5年、あるいはそれ以上持つことを期待したいところだ。
ただ、このマザーボードを使ってCPU(Ryzen 7 9800X3D)が壊れたとか、不具合系の話もまことしやかに聞くのでやや心配だが、そこは見守っていきたい。
2025/08/22(金)OCNバーチャルコネクト環境でIPoE・PPPoE併用のIPv4、IPv6デュアルスタックでサーバーを公開する
投稿日:
OCNバーチャルコネクト環境でIPv6サーバーをポート443で公開した時にやったことを派生させて更にIPv4にも対応させるプラン。
OCNバーチャルコネクトのIPoEでIPv4 over IPv6のMAP-E環境だと、IPv4ではWell-known portsが開けないが、PPPoEを使って取得したIPv4であれば開けるので、これとIPoE側のIPv6の併用でデュアルスタックでWell-known portsの開放を行い、サーバーを運用できるようにするのが目的だ。
確認環境
| 環境 | 内容 |
|---|---|
| ISP | OCN光 |
| ISP契約 | OCN 光 with フレッツ マンション・スーパーハイスピード 隼・プラン1・西日本 |
| ISP接続方式 | OCNバーチャルコネクト(IPoE, MAP-E) |
| RouterOS | OpenWrt 24.10.0 |
| ServerOS | Ubuntu 24.04.3 LTS |
| HTTPD | nginx 1.26.1 |
| ドメインレジストラ | Value Domain |
今回の要件
- OCNバーチャルコネクト環境でIPv6サーバーを公開した時にやったことに追加でIPv4も開通させる
- IPv4はPPPoEで取得できるものを使う
- サーバーマシン以外の端末に影響を与えない
やり方
サーバー側の準備
ufwではv4にも穴が開いている状態とする
- nginxの設定を開きIPv4向けに
listen 443 ssl;を追記して保存する - nginxを再起動する
PPPoEインターフェースの作成
- SSHでOpenWrtに入る
/etc/iproute2/rt_tablesを開き次のようにpppoeの行を追加、保存# # reserved values # 128 prelocal 255 local 254 main 253 default 300 pppoe 0 unspec # # local # #1 inr.ruhep- 反映する
service network restart
- LuCIに入る
- Network→Interfacesを開く
- Add new interfaceから、Nameをwanppp、ProtocolをPPPoEとしたインターフェースを作成する

- General SettingsタブのDeviceにONUと疎通しているポートを指定し、PAP/CHAP usernameとPAP/CHAP passwordにISPの接続情報を入れる

- Advanced Settingsタブを開き、Use DNS servers advertised by peerのチェックを外し、Use gateway metricを
10、Override IPv4 routing tableをpppoe (300)にする

- Saveボタンを押して保存する
- wanインターフェースのEditを押す
- Advanced Settingsタブを開き、Use gateway metricを
1にする - Saveボタンを押して保存する
ファイアーウォールの作成
- 引き続きLuCI上で作業する
- Network→Firewallを開く
- ZonesのAddボタンを押す
- Nameを
wan_pppoeにし、MasqueradingとMSS clampingにチェックを入れ、Covered networksでwanpppを選択し保存する

- lan⇒wanのゾーン設定のEditボタンを押す
- Allow forward to destination zones:に
wan_pppoeを追加し、保存する

- Network→Interfacesを開く
- wanpppインターフェースのEditボタンを押す
- Firewall Settingsタブを開き、Create / Assign firewall-zoneに
wan_pppoeが設定されていることを確認する。設定されていなかったら設定する

サーバーだけをPPPoEのIPv4通信の対象にする
- 引き続きLuCI上で作業する
- Network→Routingを開き、IPv4 Rulesタブを開く
- General SettingsタブのIncoming interfaceを
lanに、SourceをサーバーのIPにする(例:192.168.1.5/32)

- Advanced Settingsタブを開く
- Tableに
pppoe (300)を設定し、保存する

NATを設定する
- 引き続きLuCI上で作業する
- Network→Firewallを開き、Port Forwardsタブを開く
- Addボタンを押す
- Nameに適当な名前を付け、Restrict to address familyを
IPv4 only、Source zoneをwan_pppoe、External portを443、Internal IP addressを転送先のサーバーIP、Internal portを443にして、保存する

- 最後にこれまでの内容をSave & Applyする
疎通確認
- Network→Interfacesを開き、wanpppのIPv4を拾う
- ドメインレジストラの設定でAレコードにこれを登録
- 適当な外部サーバーからcurlを投げて中身が返ってきたらOK
curl -4 -v https://example.com
IP変動対策にDDNSを設定する
/etc/hotplug.d/ifaceに40-pppoeというファイルを755で作り、以下の内容を記述する。
#!/bin/sh
[ -n "$DEVICE" ] || exit 0
[ "$ACTION" = ifup ] || exit 0
[ "$INTERFACE" = wanppp ] || exit 0
vdpw=ここにDDNS更新用のパスワード
pppoeaddr=$(ip -4 addr show pppoe-wanppp | head -2 | tail -1 | awk '{print $2}')
logger -t "DDNS - PPPoE IP" $pppoeaddr
# hoge.example.comに対して更新リクエストを飛ばす例
logger -t "DDNS - DOMAIN: hoge" $(wget -O - "https://dyn.value-domain.com/cgi-bin/dyn.fcg?d=example.com&p=$vdpw$&h=hoge&i=$pppoeaddr")
# When making requests for multiple domains, wait 60 seconds between each request
このスクリプトはhotplugイベントが発生したときにファイルパス順に呼ばれるスクリプトらしい。
ひとまずデバイスでなく、インターフェイスが起動したときで、かつインターフェース名がwanpppの時に実行されるように組んである。
注意点として、このエンドポイントはレートリミットがシビアで、60秒以内に送ると503を返してくるようなので、複数回投げる場合はsleep 61とかして間隔をあけると良さそうだ。数が増えてきたらバリュードメインAPIのDNS設定APIを利用した方が早いだろう。
ただしこのAPIはTTLの制御に難があり、処理方法によっては3600秒に固定される罠が潜んでいるので注意が必要だ。
トラブルシュート
curlで「Connection refused」や「接続が拒絶されました」と出る
/var/log/ufw.logにログがあればufwで穴をあける(まずこれはない)- ファイアーウォールかルーティングかNATの設定のどこかがおかしいので見直す。
同一LANにぶら下がっている端末でDNS解決に失敗する
PPPoEインターフェース(wanppp)の設定を開き、Advanced SettingsからUse DNS servers advertised by peerのチェックを外すと直る。
雑感:やや苦しい
IPv4, v6のデュアルスタックに出来たのはいいが、幾つかの端末で繋いだところIPv4側に流れるケースがあった。メインのv6でなく、オプションのv4に行くという状況はやや残念だ。
構成的にもマルチセッションという微妙な形態で、v4とv6でインターフェースが二系統あり、セキュリティもNATとFWがあり、なかなか複雑な状態になってしまった。
Mastodonにおいてはv4IPのインスタンス(兵庫丼)との疎通はTLレベルでは出来たものの、画像が出なくなるという頭が痛い問題に出会った。
Misskey.ioからは疎通できず、こちらからはユーザープロフィールまではアクセスできるがフォローを押しても音沙汰がない。
結論としてはリッチなアプリケーション通信を伴う用途において、この方式は向かない気がした。恐れくこれはルーターより外側がIPoEとPPPoEで別系統になっている関係で、通信が混乱して上手くいかないパターンがあるのではないかと感じている。
DDNSも制約が厳しいし、Value DomainのAPIはあるだけマシではあるものの、超絶使いづらい問題もあり、この環境においてのデュアルスタックはあきらめようと思った。
まぁいい勉強にはなったので、そのうち何かに活かせるだろう、きっと。
2026-05-23追記:この状態で安定運用しているがv4側が疎通しない相手については諦めた
OpenWrtからValue-Domainに複数サブドメインのDDNSを行うツールを作ったのもあり、IPv4が変わったときも自動で切り替えることでダウンタイムを減らす運用ができたので、今のところ不満はない。
ただFediverseで繋がらないところは繋がらないので諦めることにした。

