はじめに
アーリーアダプターには普及してきた10Gネットワーク環境ですが、一般の家庭にはほぼ普及しておらずコンシューマー機器の弾数も非常に少ないのが現状です。
さらに、供給数が少ない分コストが非常に高いです。
TP-Linkの5ポートスイッチが3万円強、今私の自宅で使用している、八丁スイッチでお馴染みXikestorの8ポートスイッチでもだいたい3万円程度掛かります。
また、10G通信は従来よりさらに高速な処理が要求され、エラー訂正とA/D変換も加わることでかなりの電力を消費します。
NIC・スイッチともに発熱が大きく、最近はNICの挙動が不安定になってきたので、今回は自宅ネットワークをSFP+と光ファイバーでリプレースしていきます。
パーツ
今回使用するパーツたちです。
NIC
今回使用したNICは、82599ES搭載のX520-DA2互換ボードです。
互換ボードだからか、ベンダーロックはありませんでした。
なぜかリンクランプがついているモデルとついていないモデルが混ざっていました。

SFP+モジュール
ノーブランドのSFP+モジュールです。
SFP-10G-SR互換だと思います。
aliexpressのよりどりで1つ500円だったのでまとめ買いしました。

10G SFP+スイッチ
HORACO?とかいうメーカーの8ポートスイッチを購入しました。
中華製ですがしっかりした作りです。

10GBASE-T <-> SFP+トランシーバ
こちらはルーターとスイッチを接続するために購入しました。
このモジュールだけ異様に発熱します。

OM3 LC-LCケーブル
こちらもかなりしっかりした作りで、個別パッケージでした。
必要そうな本数を適当に注文しました。

SFPクリーナー
あったほうがいいとどこかで見たので一応買いました。
突っ込んでカッチンするとクリーニング完了らしいです。


コスト
今回リプレースに掛かったコストです。
| 品名 | 個数 | 単価 |
|---|---|---|
| X520-DA2互換NIC | 3 | 1689円 |
| SFP-10G-SR互換モジュール | 6 | 500円 |
| HORACO 10Gスイッチ | 1 | 10664円 |
| 10GBASE-T <-> SFP+トランシーバ | 1 | 2751円 |
| OM3 LC-LCケーブル 0.5m | 2 | 676円 |
| OM3 LC-LCケーブル 5m | 1 | 1020円 |
| SFPクリーナー | 1 | 342円 |
| 累計 | 24,196円 |
トータルで2万5千円程度で構築できました。
10GBASE-Tで構築した場合、NICやスイッチが高価なためトータルで5万円程度かかりますが、今回は半額で構築することができました。
これから自宅に10Gネットワークを作りたい場合は、SFP+で構築することをおすすめします。
作業
作業自体はとても簡単です。
SFP+とケーブルを接続
まずはケーブルとモジュールを接続します。
いきなり接続するのではなく、SFPクリーナーでモジュールとケーブル端をクリーニングしてから接続します。
モジュールにクリーナーを突っ込んで、カチッというまで押し込めばOKです。

ケーブル端のクリーニングをする場合は、キャップをつけてから押し込みます。

クリーニングが終わったら、モジュールとケーブルを接続します。

これ以降、ケーブルを最小曲げ径より曲げると折れて断線するので気を付けましょう。
ケーブルが完成したら、NICとスイッチにそれぞれ挿入して終了です。

一番右はルーターから10GBASE-Tで引っ張ってきています。

まとめ
Windows11でX520の互換ボードを使用する場合は、IntelからWindows10用ドライバを落としてzipを展開し、デバイスマネージャーで展開したフォルダを選択してドライバを当ててください。
もしベンダーロックのかかったIntel NICを引いてしまった場合は、EEPROMを書き換えると使えるようになるらしいです。
NIC

# ethtool -m enp2s0f1
Identifier : 0x03 (SFP)
Extended identifier : 0x04 (GBIC/SFP defined by 2-wire interface ID)
Connector : 0x07 (LC)
Transceiver codes : 0x10 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x00
Transceiver type : 10G Ethernet: 10G Base-SR
Transceiver type : Ethernet: 1000BASE-SX
Encoding : 0x06 (64B/66B)
BR, Nominal : 10300MBd
Rate identifier : 0x02 (8/4/2G Rx Rate_Select only)
Length (SMF,km) : 0km
Length (SMF) : 0m
Length (50um) : 80m
Length (62.5um) : 30m
Length (Copper) : 0m
Length (OM3) : 300m
Laser wavelength : 850nm
Vendor name : OEM
Vendor OUI : 00:02:c9
Vendor PN : SFP-10G-SR
Vendor rev : A
Option values : 0x00 0x3a
Option : RX_LOS implemented
Option : TX_FAULT implemented
Option : TX_DISABLE implemented
Option : RATE_SELECT implemented
BR margin, max : 0%
BR margin, min : 0%
Vendor SN : 230705ME1363
Date code : 230705
Optical diagnostics support : Yes
Laser bias current : 5.250 mA
Laser output power : 0.6261 mW / -2.03 dBm
Receiver signal average optical power : 0.5037 mW / -2.98 dBm
Module temperature : 41.81 degrees C / 107.26 degrees F
Module voltage : 3.3468 V
Alarm/warning flags implemented : Yes
Laser bias current high alarm : Off
Laser bias current low alarm : Off
Laser bias current high warning : Off
Laser bias current low warning : Off
Laser output power high alarm : Off
Laser output power low alarm : Off
Laser output power high warning : Off
Laser output power low warning : Off
Module temperature high alarm : Off
Module temperature low alarm : Off
Module temperature high warning : Off
Module temperature low warning : Off
Module voltage high alarm : Off
Module voltage low alarm : Off
Module voltage high warning : Off
Module voltage low warning : Off
Laser rx power high alarm : Off
Laser rx power low alarm : Off
Laser rx power high warning : Off
Laser rx power low warning : Off
Laser bias current high alarm threshold : 12.000 mA
Laser bias current low alarm threshold : 0.000 mA
Laser bias current high warning threshold : 11.000 mA
Laser bias current low warning threshold : 1.000 mA
Laser output power high alarm threshold : 1.2589 mW / 1.00 dBm
Laser output power low alarm threshold : 0.1995 mW / -7.00 dBm
Laser output power high warning threshold : 0.7943 mW / -1.00 dBm
Laser output power low warning threshold : 0.3162 mW / -5.00 dBm
Module temperature high alarm threshold : 80.00 degrees C / 176.00 degrees F
Module temperature low alarm threshold : -10.00 degrees C / 14.00 degrees F
Module temperature high warning threshold : 75.00 degrees C / 167.00 degrees F
Module temperature low warning threshold : -5.00 degrees C / 23.00 degrees F
Module voltage high alarm threshold : 3.6300 V
Module voltage low alarm threshold : 2.9700 V
Module voltage high warning threshold : 3.4700 V
Module voltage low warning threshold : 3.1300 V
Laser rx power high alarm threshold : 1.5848 mW / 2.00 dBm
Laser rx power low alarm threshold : 0.0398 mW / -14.00 dBm
Laser rx power high warning threshold : 1.0000 mW / 0.00 dBm
Laser rx power low warning threshold : 0.0630 mW / -12.01 dBm
iperf3
# iperf3 -s
-----------------------------------------------------------
Server listening on 5201 (test #1)
-----------------------------------------------------------
Accepted connection from 192.168.1.15, port 54118
[ 5] local 192.168.1.100 port 5201 connected to 192.168.1.15 port 54119
[ ID] Interval Transfer Bitrate
[ 5] 0.00-1.00 sec 1.10 GBytes 9.45 Gbits/sec
[ 5] 1.00-2.00 sec 1.10 GBytes 9.49 Gbits/sec
[ 5] 2.00-3.00 sec 1.10 GBytes 9.46 Gbits/sec
[ 5] 3.00-4.00 sec 1.10 GBytes 9.49 Gbits/sec
[ 5] 4.00-5.00 sec 1.10 GBytes 9.49 Gbits/sec
[ 5] 5.00-6.00 sec 1.10 GBytes 9.49 Gbits/sec
[ 5] 6.00-7.00 sec 1.10 GBytes 9.47 Gbits/sec
[ 5] 7.00-8.00 sec 1.10 GBytes 9.48 Gbits/sec
[ 5] 8.00-9.00 sec 1.10 GBytes 9.47 Gbits/sec
[ 5] 9.00-10.00 sec 1.10 GBytes 9.49 Gbits/sec
[ 5] 10.00-10.02 sec 17.5 MBytes 9.46 Gbits/sec
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate
[ 5] 0.00-10.02 sec 11.1 GBytes 9.48 Gbits/sec receiver