10GbE LAN構築
— あずはっく (@awzhak) June 7, 2022
買いました
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
- Intel公式のドライバ で Intel(R) Ethernet Server Adapter X520-1 と認識。流石互換品……。
- 鯖
- こちらは挿すだけで認識しました。
$ 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 コンソール設定
- ログイン
- ETH/BOOT とLANケーブルをつなぐ
- 192.168.88.1 へ接続
- admin / passwordなし でログイン
- パスワード変更
- System -> Password から変更
- SwOS に切り替え (RouterOSほど高級なものは必要ないため)
- Routerboard -> Settings -> Boot OS
- RouterOS から SwOS へ変更
- ここで一旦 System -> Reboot
- Routerboard -> Settings -> Boot OS
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)はかなり減った
$ 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 ほど
- SAMSUNG SSD 850 EVO (SATA SSD)
- クライアント側
- M.2 の速いやつ (R/W 最大 2000MB/s ほど)
テストとしてまちカドまぞく9話のtsファイルをダウンロード。
3.42 GB を 約15秒でダウンロードできました。平均約1.8Gbps。
CRS305 のコンソールから Stats タブを確認すると最大 3.2Gbps ほど出ていました。
サーバー側でSSDを使っている部分がネックになっている雰囲気を感じますがまずまずの結果。
さいごに
再送が発生するなどの課題やI/Oがネックになる部分はあるものの概ね満足です。
今回は録画鯖とメイン機のファイル転送速度を上げることが目的だったのでスイッチのみの導入でしたが、いずれ 10G ポート付きな AP なども生やしたいと思っています。
10G 回線がマンションでも気軽に引けるようになれば WAN 側も……。
おわり