買いました

LAN 内の 10GbE 化のためにスイッチと 10G NIC を購入しました。

かったもの - -
MikroTik CRS305-1G-4S+IN * 1 $ 152 (19,904円)
ノーブランド NB-INT-X520DA1-S * 2 13,860円
10Gtek SFP+ DAC ケーブル * 2 5,345円
- 合計 39,109円

CRS305-1G-4S+IN は getic (旧eurodk) で購入しました。

NIC は OLIOSPEC に転がっている互換品を購入。

ケーブルはAmazonで適当に購入。稀に相性問題でハマったりするらしいのでレビューを確認して購入。

構築

環境

  • メイン機
    • Windows 11 Pro
    • $ uname -a
      Linux hikaru-server 5.10.117-1-MANJARO #1 SMP PREEMPT Wed May 18 09:22:50 UTC 2022 x86_64 GNU/Linux
      

設定

  • Windows側はマザボについてる NIC をコンパネのネットワークアダプターから無効化するぐらい。
  • Arch
    • マザボの NIC を無効化
$ sudo ip link set eth0 down

NB-INT-X520DA1-S

  • Windows 11 Pro
    • こちらは挿すだけで認識しました。
$ lspci | grep -i eth
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-V (rev 05)
01:00.0 Ethernet controller: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection (rev 01)
$ hwinfo | grep 520
E: ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-1)
E: ID_MODEL_FROM_DATABASE=82599ES 10-Gigabit SFI/SFP+ Network Connection (Ethernet Server Adapter X520-1)
Model: "Intel Ethernet Server Adapter X520-1"
SubDevice: pci 0x000a "Ethernet Server Adapter X520-1"

CRS305 コンソール設定

  • ログイン
    1. ETH/BOOT とLANケーブルをつなぐ
    2. 192.168.88.1 へ接続
    3. admin / passwordなし でログイン
  • パスワード変更
    • System -> Password から変更
  • SwOS に切り替え (RouterOSほど高級なものは必要ないため)
    • Routerboard -> Settings -> Boot OS
      • RouterOS から SwOS へ変更
      • ここで一旦 System -> Reboot

iperf3 で速度を検証

サーバー側

$ iperf3 -s
-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 192.168.2.41, port 51386
[  5] local 192.168.2.43 port 5201 connected to 192.168.2.41 port 51388
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-1.00   sec   365 MBytes  3.06 Gbits/sec
[  5]   1.00-2.00   sec   366 MBytes  3.07 Gbits/sec
[  5]   2.00-3.00   sec   349 MBytes  2.93 Gbits/sec
[  5]   3.00-4.00   sec   364 MBytes  3.06 Gbits/sec
[  5]   4.00-5.00   sec   367 MBytes  3.08 Gbits/sec
[  5]   5.00-6.00   sec   358 MBytes  3.01 Gbits/sec
[  5]   6.00-7.00   sec   357 MBytes  2.99 Gbits/sec
[  5]   7.00-8.00   sec   352 MBytes  2.96 Gbits/sec
[  5]   8.00-9.00   sec   345 MBytes  2.90 Gbits/sec
[  5]   9.00-10.00  sec   360 MBytes  3.02 Gbits/sec
[  5]  10.00-10.00  sec   387 KBytes  3.03 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate
[  5]   0.00-10.00  sec  3.50 GBytes  3.01 Gbits/sec                  receiver
-----------------------------------------------------------
Server listening on 5201 (test #2)
-----------------------------------------------------------

クライアント側 (WSL2)

$ iperf3 -c 192.168.2.43
Connecting to host 192.168.2.43, port 5201
[  5] local 172.20.43.150 port 57476 connected to 192.168.2.43 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   368 MBytes  3.08 Gbits/sec  462    288 KBytes
[  5]   1.00-2.00   sec   367 MBytes  3.08 Gbits/sec  519    419 KBytes
[  5]   2.00-3.00   sec   349 MBytes  2.93 Gbits/sec  429    411 KBytes
[  5]   3.00-4.00   sec   365 MBytes  3.06 Gbits/sec  535    395 KBytes
[  5]   4.00-5.00   sec   366 MBytes  3.07 Gbits/sec  404    410 KBytes
[  5]   5.00-6.00   sec   359 MBytes  3.01 Gbits/sec  483    409 KBytes
[  5]   6.00-7.00   sec   358 MBytes  3.00 Gbits/sec  587    532 KBytes
[  5]   7.00-8.00   sec   352 MBytes  2.96 Gbits/sec  388    402 KBytes
[  5]   8.00-9.00   sec   345 MBytes  2.89 Gbits/sec  400    395 KBytes
[  5]   9.00-10.00  sec   360 MBytes  3.02 Gbits/sec  484    440 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  3.50 GBytes  3.01 Gbits/sec  4691             sender
[  5]   0.00-10.00  sec  3.50 GBytes  3.01 Gbits/sec                  receiver

iperf Done.

…………速度微妙じゃね? (ライドウ君っぽいツッコミ)

しかも4691回も再送してる……。


試行錯誤していく

  • Flow Control を有効にすることにより再送(Retr)はかなり減った

Untitled

$ iperf3 -c 192.168.1.100
Connecting to host 192.168.1.100, port 5201
[  5] local 172.21.125.16 port 49212 connected to 192.168.1.100 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec   372 MBytes  3.12 Gbits/sec   60   1.33 MBytes
[  5]   1.00-2.00   sec   369 MBytes  3.09 Gbits/sec    4   1.08 MBytes
[  5]   2.00-3.00   sec   368 MBytes  3.08 Gbits/sec    0   1.30 MBytes
[  5]   3.00-4.00   sec   369 MBytes  3.09 Gbits/sec    0   1.49 MBytes
[  5]   4.00-5.00   sec   369 MBytes  3.09 Gbits/sec    1   1.27 MBytes
[  5]   5.00-6.00   sec   369 MBytes  3.09 Gbits/sec    0   1.48 MBytes
[  5]   6.00-7.00   sec   369 MBytes  3.09 Gbits/sec    6   1.26 MBytes
[  5]   7.00-8.00   sec   369 MBytes  3.09 Gbits/sec    0   1.47 MBytes
[  5]   8.00-9.00   sec   369 MBytes  3.09 Gbits/sec    6   1.24 MBytes
[  5]   9.00-10.00  sec   369 MBytes  3.09 Gbits/sec   11   1.42 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  3.60 GBytes  3.10 Gbits/sec   88             sender
[  5]   0.00-10.00  sec  3.60 GBytes  3.09 Gbits/sec                  receiver

iperf Done.

しかし速度は出ない……。

  • M/B のPCIe 動作モードを確認する
    • BIOS を見ると x1 モードになっていたので x4 へ固定する
$ iperf3 -c 192.168.1.100
Connecting to host 192.168.1.100, port 5201
[  5] local 172.20.130.166 port 55744 connected to 192.168.1.100 port 5201
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd
[  5]   0.00-1.00   sec  1.07 GBytes  9.15 Gbits/sec    2   3.00 MBytes
[  5]   1.00-2.00   sec  1.07 GBytes  9.23 Gbits/sec    0   3.00 MBytes
[  5]   2.00-3.00   sec  1.09 GBytes  9.37 Gbits/sec    7   3.00 MBytes
[  5]   3.00-4.00   sec  1.09 GBytes  9.40 Gbits/sec    0   3.00 MBytes
[  5]   4.00-5.00   sec  1.09 GBytes  9.35 Gbits/sec    0   3.00 MBytes
[  5]   5.00-6.00   sec  1.09 GBytes  9.37 Gbits/sec    6   3.00 MBytes
[  5]   6.00-7.00   sec  1.09 GBytes  9.35 Gbits/sec    0   3.00 MBytes
[  5]   7.00-8.00   sec  1.09 GBytes  9.40 Gbits/sec    0   3.02 MBytes
[  5]   8.00-9.00   sec  1.09 GBytes  9.32 Gbits/sec    0   3.02 MBytes
[  5]   9.00-10.00  sec  1.08 GBytes  9.27 Gbits/sec    0   3.02 MBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00  sec  10.9 GBytes  9.32 Gbits/sec   15             sender
[  5]   0.00-10.00  sec  10.8 GBytes  9.32 Gbits/sec                  receiver

iperf Done.

キタ━━━━(゚∀゚)━━━━!!

まだ再送は発生しているものの十分な速度を確認。

どうやら Windows 機で使用してるマザボ(ASUS B550-PLUS) の 2つめの PCIe x16レーンは最大 x4でしか動かないらしい。(NB-INT-X520DA1-S は PCIe Gen2 x8)

検証としてグラボを外してx16レーンにNICを挿してみましたが、Ryzen5 3600には内蔵グラフィックがなく起動すら出来なかったため断念。
まあこのくらいの再送回数であれば許容範囲……。

EPGStation から録画をダウンロードをしてみる

ストレージのスペック

  • サーバー側
    • SAMSUNG SSD 850 EVO (SATA SSD)
      • R/W 最大 500MB/s ほど
  • クライアント側
    • M.2 の速いやつ (R/W 最大 2000MB/s ほど)

テストとしてまちカドまぞく9話のtsファイルをダウンロード。

3.42 GB を 約15秒でダウンロードできました。平均約1.8Gbps。

Untitled2

CRS305 のコンソールから Stats タブを確認すると最大 3.2Gbps ほど出ていました。

サーバー側でSSDを使っている部分がネックになっている雰囲気を感じますがまずまずの結果。

さいごに

再送が発生するなどの課題やI/Oがネックになる部分はあるものの概ね満足です。

今回は録画鯖とメイン機のファイル転送速度を上げることが目的だったのでスイッチのみの導入でしたが、いずれ 10G ポート付きな AP なども生やしたいと思っています。

10G 回線がマンションでも気軽に引けるようになれば WAN 側も……。

おわり